Blue Flower

ESP8266

  • Der Einstieg :-)

    Nun liegt das Modul auf meinem Tisch, und es kann losgehen, sobald ich etwas Zeit habe......

     1    Funktionstest

     1.1 Aufbau

    Auf einer kleinen Lochrasterplatine habe ich das Modul mit +3,3 V versorgt und die Pins "PD" und "Reset" auf +3,3V gelegt und die TxD und RxD Leitungen mit meinem seriellen Adapter (RS232-Modul ) verbunden.

    Pinbeelgung vom Modul:

    ESP 8266
    Abb. 1.1 ESP 8266 - Pinbelegung
    Pin-Nr. Name Beschreibung
    GND  Masse
    TxD Transmit (max 3,3V)
    GPIO 2   Ein/Ausgang 2
     PD  PowerDown (low aktiv)
     GPIO 0  Ein/Ausgang 0
     RST  Reset (low aktiv)
    RxD   Receive (max 3,3V)
    8 Vcc Versorgungsspannung 3,3 V (max 3,6 V

     

    1.2 Funktionstest mit dem Terminal

    Beim Anlegen der Versorgungsspannung ging die rote LED ( Power LED) an und die blaue LED (Aktivitä LED) hat kurz geflackert. Beim ersten Start hat das Modul die Daten mit einer Baudrate von 9600 kBaud gesendet. Mit dem Befehl:
    AT+CIOBAUD=115200\r\n 
    und einem anschließenden Reset:
    - AT+RST\r\n
    Habe ich erstmal die die Baudrate auf 115200 kBits umgestellt. 

     Ich habe wohl ein ESP-01 Modul ergatter mit einer neuen Firmware:

    - AT+GMR\r\n
      001800902

    Noch ein kleiner Hinweis am Rande: Sollte eine geänderte Konfiguration nicht direkt übernommen werden, so muss explizit ein Reset durchgeführt werden damit die neue Einstellung übernommen wird.
    Grundsätzlich sind alle Befehle mit einem "\r\n" abzuschließen damit der Befehl korrekt erkannt wird. 

    Nun habe ich diverse Befehle ausgeführt:

    • AT+CWMODE=3  ==> Wifi Bertriebsmodus auf Client und AP gesetzt
    • AT+CIPMUX=1    ==> mehrere Verbindungen
    • AT+CIPMODE=1 ==> Datenmodus
    • AT+CWSAP="<ssid>","<pass>"[,<chan>,<enc>]
      Achtung: Das Passwort muss aus mindestens 8 Zeichen bestehen und nicht vergessen den Reset Befehl im Anschluss zu senden.
      <chan> = Kanal 1...14
      <enc>  3 : WPA2_PSK

    Das Einrichten eines verschlüsselten Access-Points hat problemlos geklappt und das Verbinden des PCs mit dem WLAN Modul hat sofort funktioniert.  Ebenso hat auch der umgekehrte Weg, das sich das ESP-Modul am heimischen WLAN-Netz (Fritz-Box) angemeldet hat problemlos geklappt. 

    1.3 TCP-Server starten z.B. Port 80

    Bis auf CIPMUX und CIPMODE bleiben die Einstellungen im Modul gespeichert. Somit muss nach einem Spannungsreset nur noch folgendes ausgeführt werden:

    • AT+CIPMUX=1
    • AT+CIPMODE=1
    • AT+CIPSERVER=1,80 ==> startet nun den TCP-Server auf den Port 80 mit AT+CIPCLOSE=0 wird der Server wieder beendet.
    • Nun kann z.B. mit dem Browser eine Anfrage an das Modul gesendet werden:
      http://192.168.4.1/Testanfrage

      D
      as Modul quittiert dies Anfrage dann mit:

      Link

      +IPD,1,400:GET /Testanfrage HTTP/1.1
      Host: 192.168.4.1
      Connection: keep-alive
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
      User-Agent: Mozilla/5.0 (Linux; Android 4.4.2; GT-N7100 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.109 Mobile Safari/537.36
      Accept-Encoding: gzip, deflate, sdch
      Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4


      OK


      Sobald sich ein Client mit dem Modul verbindet, wird dies mit "Link\r\n" bestätgt.
      Empfangene Daten werden dann mit:
      \r\n+IPD,x,y:Datenbytes\r\nOK\r\n

      angezeigt.
       - +IPD:  ist die Startkennung
       -  x: Verbindungsnummer (also welcher Client die Daten angefragt hat)
       -  : Anzahl der Datenbytes 

    • AT+CIFSR : Zeigt die  aktuelle IP-Adresse vom ESP-Modul an. Die Antwort auf die Anfrag sieht folgendermaßen aus:

      AT+CIFSR

      192.168.4.1
      0.0.0.0

      OK

     

     

    2 Firmware Update

    2.1 serielle Schnittstelle

    ..... muss ich mal probieren

    2.2 WLAN

    Da ich ein aktuelles Modul habe wollte ich mal diese Variante probieren:

    • AT+CWMODE=3\r\n
    • AT+RST\r\n
    • AT+CWJAP="ssid","yourpasswd"\r\n   ==> Modul mit dem heimischen WLAN verbunden
    • AT+CIFSR\r\n  ==> zugewiesene IP-Adresse vom Router kontrolliert
    • AT+CIUPDATE\r\n  ==> Update Vorgang gesartet

    Die Update Prozedur wurde gestartet und der Ablauf sah auch erst gut aus, aber dann wurde bloß noch Müll im Terminal Fenster ausgegeben.  Nach ca. 15. Minuten habe ich dann die Spannung abgeschaltet. Nach dem erneuten Einschalten kommt jetzt  auch nur noch Müll im Terminal an. 
    Ich habe absolut keine Ahnung was da schief gelaufen ist, auf jeden Fall habe ich wohl mein erstes Modul gekillt. Zum Glück habe ich noch ein paar :-)

     

  • WLAN-Funkmodul von Espressif


    Inspiriert von dem Artikel auf Mikrocontroller.net : ESP8266 Artikel

    Habe ich mir jetzt ein paar Module aus China bezogen.

    Bei dem Modul handelt es um ein sehr kompaktes und preiswertes ( ca. 3€)  WLAN-Modul welches über eine UART-Schnittstelle für die Anbindung an einen Mikrocontroller verfügt und somit und somit relativ einfach mit einer MCU zu verbinden ist.

    Hier noch ein paar Kenndaten in Kurzform:

    • 3,3 V Versorgungsspannung
    • Eingänge sind nicht mit 5V kompatible ==>  Uff passe !
    • 802.11 b/g/n
    • Wi-Fi Direct (P2P), soft-AP
    • Integrated TCP/IP protocol stack
    • +19.5dBm output power in 802.11b mode
    • Power down leakage current of <10uA
    • SDIO 1.1/2.0, SPI, UART
    • STBC, 1×1 MIMO, 2×1 MIMO
    • Wake up and transmit packets in < 2ms
    • Standby power consumption of < 1.0mW (DTIM3)


    Ich werde mich hier auf meiner Seite nur meine Erfahrungen mit dem Einstieg mit diesem Modul beschreiben und diverse kleine Testprojekte vorstellen.

    Wer mehr über das Teil wissen will, soll sich bitte den Artikel von Mikrocontroller.net (s.o.) durchlesen, bzw. mal hier: ESP8266 - Wiki vorbeischauen.

    Jetzt muss ich mir erst noch überlegen, ob ich meine Testes mit dem ATMEGA oder STM32 Prozessor durchführe.
    Mein Endziel wird wohl sein, das dieses Modul auf mein STM32-CAN Interface draufkommt um CAN-Traces direkt auf meine Android-Phome darzustellen.