ESP8266: Eine Revolution in der Welt des Internets der Dinge



    In nicht allzu ferner Zeit war die Unterstützung einer Wi-Fi-Verbindung durch ein Gerät teuer, umständlich und nicht energieeffizient. Entwickler waren gezwungen, Funkschnittstellen zu verwenden, die auf verschiedenen konkurrierenden Lösungen basierten. Erfand ihre "Fahrräder" auf Protokollebene. Und sie stiegen nur mit der Verwendung zusätzlicher Geräte, die die Funktionalität der Bridge implementieren, in das begehrte WLAN ein. Sehr auffälliges Geld wert.

    Aber das Leben geht weiter. Die Technologie entwickelt sich rasant. Der Begriff "Internet der Dinge" wird zunehmend gehört. Viele große und nicht sehr große Chiphersteller haben endlich die dringende Aufgabe, das ewige Problem der Integration von Wi-Fi in kleine und kostengünstige Geräte zu lösen. Um sie direkt an die Infrastruktur anschließen zu können, die bereits in fast jedem Haus vorhanden ist. So viel wie möglich von dem aufkommenden neuen Markt einfacher Geräte zu essen, die mit dem Netzwerk verbunden sind.

    Im Jahr 2014 gaben mehrere Hersteller die Veröffentlichung der entsprechenden Chipsätze bekannt. Heute sprechen wir über den ESP8266-Chip der chinesischen Firma Espressif. UART-WIFI-Module, die auf diesem Chip basieren, haben bereits ganz China überflutet und kosten nur 4,5 US-Dollar (mit kostenlosem internationalen Versand).



    UART-WIFI-Brücke auf ESP8266


    Das Modul kann bereits auf Taobao, AliExpress und an vielen anderen Orten gekauft werden. Es ist nicht viel Dokumentation verfügbar, aber das Handbuch zur Bearbeitung von AT-Befehlen kann kostenlos heruntergeladen werden, auch nicht nur auf Chinesisch. Beispiele für die Arbeit mit dem Modul für Arduino werden im Netzwerk angezeigt :



     #include 
       #define SSID "xxxxxxxx"
       #define PASS "xxxxxxxx"
       #define DST_IP "220.181.111.85" //baidu.com
       SoftwareSerial dbgSerial(10, 11); // RX, TX
       void setup()
       {
         // Open serial communications and wait for port to open:
         Serial.begin(57600);
         Serial.setTimeout(5000);
         dbgSerial.begin(9600); //can't be faster than 19200 for softserial
         dbgSerial.println("ESP8266 Demo");
         //test if the module is ready
         Serial.println("AT+RST");
         delay(1000);
         if(Serial.find("ready"))
         {
           dbgSerial.println("Module is ready");
         }
         else
         {
           dbgSerial.println("Module have no response.");
           while(1);
         }
         delay(1000);
         //connect to the wifi
         boolean connected=false;
         for(int i=0;i<5;i++)
         {
           if(connectWiFi())
           {
             connected = true;
             break;
           }
         }
         if (!connected){while(1);}
         delay(5000);
         //print the ip addr
         /*Serial.println("AT+CIFSR");
         dbgSerial.println("ip address:");
         while (Serial.available())
         dbgSerial.write(Serial.read());*/
         //set the single connection mode
         Serial.println("AT+CIPMUX=0");
       }
       void loop()
       {
         String cmd = "AT+CIPSTART=\"TCP\",\"";
         cmd += DST_IP;
         cmd += "\",80";
         Serial.println(cmd);
         dbgSerial.println(cmd);
         if(Serial.find("Error")) return;
         cmd = "GET / HTTP/1.0\r\n\r\n";
         Serial.print("AT+CIPSEND=");
         Serial.println(cmd.length());
         if(Serial.find(">"))
         {
           dbgSerial.print(">");
           }else
           {
             Serial.println("AT+CIPCLOSE");
             dbgSerial.println("connect timeout");
             delay(1000);
             return;
           }
           Serial.print(cmd);
           delay(2000);
           //Serial.find("+IPD");
           while (Serial.available())
           {
             char c = Serial.read();
             dbgSerial.write(c);
             if(c=='\r') dbgSerial.print('\n');
           }
           dbgSerial.println("====");
           delay(1000);
         }
         boolean connectWiFi()
         {
           Serial.println("AT+CWMODE=1");
           String cmd="AT+CWJAP=\"";
           cmd+=SSID;
           cmd+="\",\"";
           cmd+=PASS;
           cmd+="\"";
           dbgSerial.println(cmd);
           Serial.println(cmd);
           delay(2000);
           if(Serial.find("OK"))
           {
             dbgSerial.println("OK, Connected to WiFi.");
             return true;
             }else
             {
               dbgSerial.println("Can not connect to the WiFi.");
               return false;
             }
           }
    




    Interessante Schaltung, Vergleich mit Mitbewerbern


    Aus den Espressif-Pressemitteilungen geht hervor, dass der Hersteller stolz auf den Integrationsgrad seiner Chip-Komponenten ist. Tatsächlich besteht ein typisches Chip-Umreifen nur aus sieben Elementen. Die Modulplatine ist fast leer, die Bauteile sind spärlich. All dies wirkt sich natürlich auf die Kosten der Endgeräte in Richtung billiger aus.

    Betrachtet man die Produkte der Wettbewerber, wird der Gewinn bei der Minimierung des Personals noch deutlicher. Dies ist ein typisches Modul, das auf MT7681 basiert, einer konkurrierenden Lösung von Mediatek:



    Hier ist ein Modul, das auf dem Chipsatz von Marvell basiert:


    Was ist die Revolution?


    Mit dem Aufkommen solcher kostengünstiger Lösungen haben auch Heimentwickler verschiedener Arduino-Lösungen von „Smart Homes“ die Möglichkeit, ihre Geräte mit Wi-Fi-Netzwerken zu verbinden, auf die immer noch nicht zugegriffen werden kann. ESP8266 wird im Internet bereits als "NRF24LE1-Killer" bezeichnet. Module, die auf dem ESP8266 basieren, versprechen bei noch geringeren Kosten viel mehr Funktionen. Jetzt wird es in Geräten auf Arduino möglich sein, einfach und kostengünstig sowohl ein vollwertiges Webinterface als auch eine komfortable JSON-API zu implementieren.

    Fortgeschrittene Entwickler können den Chip als Hauptprozessor in ihren Lösungen mit drahtlosen Sensoren, Steuergeräten für Licht, Wasser und anderen „Dingen“ verwenden, die jeden Menschen in seinem täglichen Leben umgeben.

    Jetzt auch beliebt: