Проблема в сотрудничестве Django с esp 8266

Здравствуйте, мне нужна помощь с моим проектом django. Я хочу запускать программу на ESP 8266 с сайта django. Для тестирования я создал простую программу с мигающим диодом на ESP и я сделал кнопку на моем django сайте и она работает, но я использую "webbrowser()" в views.py и это не выглядит идеально (мне нужно оставаться на этом сайте, сделанном на django, а не открывать новый). Мне нужна помощь, чтобы создать что-то, что будет работать следующим образом: Я нажимаю кнопку на моем сайте django, программа в "views.py" посылает что-то в esp, который запускает программу на нем или изменяет что-то в коде ESP, который только запускает код, и он не открывает веб-браузер.

my views.py:

def espON(request):
    on = On.objects.all()
    off = Off.objects.all()
    menu = menu.objects.all()
    webbrowser.open("http://my_ip/turnOn")
    d = {'on':on, 'off':off, 'menu':menu,}

    return render(request, 'on/index.html', d)



ESP code:
#include <ESP8266WiFi.h>
#include <Ticker.h>
#include <Math.h>

 const char* ssid = "my_ssid"; //nazwa ssid sieci
const char* password = "my_password"; //haslo

#define LED 5

WiFiServer server(80);

void setup() {
 Serial.begin(115200);
  delay(10);
  pinMode(LED, OUTPUT);


  //Laczenie z siecia wifi
  Serial.println();
  Serial.println();
  Serial.print("Laczenie z: ");
  Serial.println(ssid);
 
  IPAddress ip(my_ip); //ip
  IPAddress gateway(my_ip2); 
  IPAddress subnet(my_ip3); 
  WiFi.config(ip, gateway, subnet);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi polaczone");

// Start 
  server.begin();
  Serial.println("Serwer uruchomiony"); 
}

void loop() {
   while (WiFi.status() == WL_CONNECTED){
   
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
 String request = client.readStringUntil('\r');
  client.flush();

 //condition
 if (request.indexOf("/turnOn") > 0)  
  {
    digitalWrite(LED, HIGH); //work
   }
  if (request.indexOf("/turnOff") > 0)  //not 
  {
   digitalWrite(LED, LOW);
  }
 } 
}
Вернуться на верх