Ich kann es nicht lassen und habe mir mal dieses ESP8266-Modul gekauft und einem Arduiono MEGA2560 :
http://esp8266-server.de/" target="_blank
Das ESP8266 ist ein WI-FI-Modul mit 512KB Speicher und kann über die Arduino IDE programmiert werden und arbeitet als eigenständiger Computer. Ich habe ein Purebasicprogramm geschrieben und möchte damit 8 Verschiedene Dinge ansteuern über den MEGA2560 (on/off). Das Purebasicprogramm schaltet den ESP8266 und der leitet die Daten Seriell weiter an den MEGA2560 um damit etwas beim Zusi zu steuern.
Ich habe die Daten die am MEGA2560 ankommen zur Kontrolle über TX1 an den PC gesendet ob es funktioniert.
Es geht auch ohne den MEGA2560 um zu kontrollieren, man geht dann mit dem TX vom ESP8266 zum USB-Serialwandler zum PC.
Dieses Programm kommt in den ESP8266 :
Code: Alles auswählen
#include <ESP8266WiFi.h>
const char* ssid = "......";
const char* password = "......";
WiFiServer server(80);
void setup() {
Serial.begin(9600);
delay(10);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
server.begin();
Serial.println("Server started");
Serial.println(WiFi.localIP());
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
while(!client.available()){
delay(1);
}
String req = client.readStringUntil('\r');
// Serial.println(req);
client.flush();
if (req.indexOf("0ON") != -1)
Serial.println("0=on");
else if (req.indexOf("0OFF") != -1)
Serial.println("0=off");
else if (req.indexOf("1ON") != -1)
Serial.println("1=on");
else if (req.indexOf("1OFF") != -1)
Serial.println("1=off");
else if (req.indexOf("2ON") != -1)
Serial.println("2=on");
else if (req.indexOf("2OFF") != -1)
Serial.println("2=off");
else if (req.indexOf("3ON") != -1)
Serial.println("3=on");
else if (req.indexOf("3OFF") != -1)
Serial.println("3=off");
else if (req.indexOf("4ON") != -1)
Serial.println("4=on");
else if (req.indexOf("4OFF") != -1)
Serial.println("4=off");
else if (req.indexOf("5ON") != -1)
Serial.println("5=on");
else if (req.indexOf("5OFF") != -1)
Serial.println("5=off");
else if (req.indexOf("6ON") != -1)
Serial.println("6=on");
else if (req.indexOf("6OFF") != -1)
Serial.println("6=off");
else if (req.indexOf("7ON") != -1)
Serial.println("7=on");
else if (req.indexOf("7OFF") != -1)
Serial.println("7=off");
else {
Serial.println("invalid request");
client.stop();
return;
}
client.flush();
delay(1);
}
Code: Alles auswählen
Global buffer.l, text_e.s, url.s
Enumeration
#Window_0
#Editor_0
#z0_an
#z0_aus
#z1_an
#z1_aus
#z2_an
#z2_aus
#z3_an
#z3_aus
#z4_an
#z4_aus
#z5_an
#z5_aus
#z6_an
#z6_aus
#z7_an
#z7_aus
EndEnumeration
InitNetwork()
url= "http://192.168.2.102/?pin=1ON"
OpenWindow(#Window_0,1000,200,420,500,"esp-webserver-http", #PB_Window_SystemMenu)
EditorGadget(#Editor_0, 10, 180, 300,280)
ButtonGadget(#z0_an, 10,60, 40, 25, "0 an")
ButtonGadget(#z0_aus, 10,85, 40, 25, "0 aus")
ButtonGadget(#z1_an, 50,60, 40, 25, "1 an")
ButtonGadget(#z1_aus,50,85, 40, 25, "1 aus")
ButtonGadget(#z2_an, 90,60, 40, 25, "2 an")
ButtonGadget(#z2_aus, 90,85, 40, 25, "2 aus")
ButtonGadget(#z3_an, 130,60, 40, 25, "3 an")
ButtonGadget(#z3_aus,130,85, 40, 25, "3 aus")
ButtonGadget(#z4_an, 170,60, 40, 25, "4 an")
ButtonGadget(#z4_aus,170,85, 40, 25, "4 aus")
ButtonGadget(#z5_an, 210,60, 40, 25, "5 an")
ButtonGadget(#z5_aus,210,85, 40, 25, "5 aus")
ButtonGadget(#z6_an, 250,60, 40, 25, "6 an")
ButtonGadget(#z6_aus,250,85, 40, 25, "6 aus")
ButtonGadget(#z7_an, 290,60, 40, 25, "7 an")
ButtonGadget(#z7_aus,290,85, 40, 25, "7 aus")
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #z0_an
URL = SetURLPart(URL, "pin", "0ON")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z0_aus
URL = SetURLPart(URL, "pin", "0OFF")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z1_an
URL = SetURLPart(URL, "pin", "1ON")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z1_aus
URL = SetURLPart(URL, "pin", "1OFF")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z2_an
URL = SetURLPart(URL, "pin", "2ON")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z2_aus
URL = SetURLPart(URL, "pin", "2OFF")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z3_an
URL = SetURLPart(URL, "pin", "3ON")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z3_aus
URL = SetURLPart(URL, "pin", "3OFF")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z4_an
URL = SetURLPart(URL, "pin", "4ON")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z4_aus
URL = SetURLPart(URL, "pin", "4OFF")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z5_an
URL = SetURLPart(URL, "pin", "5ON")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z5_aus
URL = SetURLPart(URL, "pin", "5OFF")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z6_an
URL = SetURLPart(URL, "pin", "6ON")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z6_aus
URL = SetURLPart(URL, "pin", "6OFF")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z7_an
URL = SetURLPart(URL, "pin", "7ON")
Buffer = ReceiveHTTPMemory(url)
EndIf
If EventGadget = #z7_aus
URL = SetURLPart(URL, "pin", "7OFF")
Buffer = ReceiveHTTPMemory(url)
EndIf
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
ForEver