Rainer-Rebhan

Die WiFi/WLan Controller ESP 8266

5V kompatible Varianten des ESP8266 WLan (WiFi) Controller


Die Programmierung mit dem ESP8266

Die SW für den ESP8266 ist bei allen o.g. Shields oder Module gleich und relativ einfach. Ich empfehle diese Biblothek WiFiEsp-2.1.2 zu verwenden, sie steht hier zum Download bereit (https://github.com/bportaluri/WiFiEsp). Die Verwendung (Prog.Klassen und Methoden ) entspricht der Arduino Ethernet-Library bzw. der Arduino WiFI Library mit einigen wenigen Ausnahmen. Der serielle Anschluss (UART) zum ESP hat die Baudrate von 115200. Bei Verwendung der SW-Serial-Ports den ESP auf 9600 oder 19200 Baud umstellen. Sketch für einen Test des ESP8266 an einem WLan / Router
/* WiFiEsp Test: BasicTest ---- Basis Test ESP8266 Arduino IDE 1.6.4 */ #include "WiFiEsp.h" char ssid[] = "xxxxxxxxxxxxxx"; // your network SSID (name) <------- eigene Werte einsetzen char passw[] = "yyyyyyyyyyyyy"; // your network password <------- eigene Werte einsetzen int status = WL_IDLE_STATUS; // the Wifi status char pwdErr[] = "xxxx"; // wrong password void setup() { Serial.begin(19200); Serial3.begin(115200); // initialize serial for ESP module WiFi.init(&Serial3); // initialize ESP module } void loop() { assertEquals("Firmware version", WiFi.firmwareVersion(), "1.5.2"); assertEquals("Status is (WL_DISCONNECTED)", WiFi.status(), WL_DISCONNECTED); assertEquals("Connect", WiFi.begin(ssid, passw), WL_CONNECTED); assertEquals("Check status (WL_CONNECTED)", WiFi.status(), WL_CONNECTED); assertEquals("Check SSID", WiFi.SSID(), ssid); IPAddress ip = WiFi.localIP(); assertNotEquals("Check IP Address", ip[0], 0); Serial.print("IP Address: "); Serial.println(ip); byte mac[6]={0,0,0,0,0,0}; WiFi.macAddress(mac); Serial.print("MAC: "); Serial.print(mac[5], HEX); Serial.print(":"); Serial.print(mac[4], HEX); Serial.print(":"); Serial.print(mac[3], HEX); Serial.print(":"); Serial.print(mac[2], HEX); Serial.print(":"); Serial.print(mac[1], HEX); Serial.print(":"); Serial.println(mac[0], HEX); assertEquals("Disconnect", WiFi.disconnect(), WL_DISCONNECTED); assertEquals("Check status (WL_DISCONNECTED)", WiFi.status(), WL_DISCONNECTED); assertEquals("IP Address", WiFi.localIP(), 0); assertEquals("Check SSID", WiFi.SSID(), ""); assertEquals("Wrong pwd", WiFi.begin(ssid, pwdErr), WL_CONNECT_FAILED); IPAddress localIp(192, 168, xxx, yyy); //<------- eigene Werte einsetzen WiFi.config(localIp); assertEquals("Connect", WiFi.begin(ssid, passw), WL_CONNECTED); assertEquals("Check status (WL_CONNECTED)", WiFi.status(), WL_CONNECTED); ip = WiFi.localIP(); assertNotEquals("Check IP Address", ip[0], 0); Serial.println("END OF TESTS"); Serial.println("------------------------------"); while(1); } //////////////////////////////////////////////////////////////////////////////////// void assertNotEquals(const char* test, int actual, int expected) { if(actual!=expected) pass(test); else fail(test, actual, expected); } void assertEquals(const char* test, int actual, int expected) { if(actual==expected) pass(test); else fail(test, actual, expected); } void assertEquals(const char* test, char* actual, char* expected) { if(strcmp(actual, expected) == 0) pass(test); else fail(test, actual, expected); } void pass(const char* test) { Serial.print(test); Serial.println(" > PASSED"); } void fail(const char* test, char* actual, char* expected) { Serial.print(test); Serial.print(" > FAILED"); Serial.print(" (actual=\""); Serial.print(actual); Serial.print("\", expected=\""); Serial.print(expected); Serial.println("\")"); delay(5000); } void fail(const char* test, int actual, int expected) { Serial.print(test); Serial.print(" > FAILED"); Serial.print(" (actual="); Serial.print(actual); Serial.print(", expected="); Serial.print(expected); Serial.println(")"); delay(5000); }
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environment
nach oben zurueck weiter