WLAN på Arduino - tilslut ESP8266-01 til Arduino og kontroller NodeMCU Amica eksternt med din smartphone
Arduino er et af de mest kendte udviklertavler. Desværre har standardmodellerne ikke en Wi-Fi-chip installeret. Dette praktiske tip viser dig, hvordan du forbinder et ESP8266-01 WLAN-modul til Arduino, og hvordan du fjernbetjener NodeMCU Amica med din smartphone.
Kontroller NodeMCU Amica med din smartphone
NodeMCU Amica har en række stifter samt en indbygget ESP8266 Wi-Fi-chip og et microUSB-stik. Derfor giver det mening at bruge enheden mere som en enkeltstående enhed. Sådan forbindes et "klassisk" ESP8266-kort til Arduino beskrives senere i artiklen.
- For at kunne programmere ESP-chips skal du først downloade og installere driverne til alle CP210er-chips fra Silicon Labs. Heldigvis sker dette relativt hurtigt.
- Åbn derefter Arduino IDE og gå til Indstillinger. Tilføj URL "//arduino.esp8266.com/stable/package_esp8266com_index.json" (uden anførselstegn) til de ekstra kortadministrator-URL'er. Start derefter bordadministratoren, indtast "ESP8266" og installer pakken.
- Gå også til biblioteksadministratoren, indtast "Blynk" og installer den nyeste version. Alle de nødvendige komponenter er nu installeret.
- Du har brug for Blynk-appen for at kontrollere NodeMCU med din smartphone. Hvis det ikke allerede er gjort, skal du oprette en ny konto her eller logge ind med en eksisterende. Opret derefter et nyt projekt, og vælg NodeMCU som tavlen.
- Med prøvekoderne i Arduino IDE skal du også finde en kode til Blynk (→ "Boards_WiFi") på NodeMCU. Indtast blot Blynk-tokenet for dit projekt her, som du automatisk er blevet sendt via e-mail. Indtast også din SSID og adgangskode.
- For at indlæse koden på tavlen skal du naturligvis vælge den fra fanen "Værktøjer". I vores tilfælde måtte "NodeMCU 1.0 (ESP12E-modul)" vælges, frekvensen 80 MHz, hukommelsesstørrelsen "4M (3M SPIFFS)" og baudhastigheden 115200. Bemærk dog, at oplysningerne kan variere afhængigt af modellen.
- Du kan derefter blot indlæse koden på tavlen og kontrollere den med Blynk-appen. Her kan du nemt oprette forskellige widgets og for eksempel styre en LED med en knap.
Tilslut WiFi på Arduino - ESP8266-01 til Arduino
Dernæst ønsker vi at oprette forbindelse og bruge ESP8266-01-modulet med Arduino.
- Hvis du drejer brættet, så det peger nedad med den gyldne antenne, kan du finde VCC-stiften øverst til venstre, som naturligvis skal indstilles til HØJ. Til højre er RST-stiften, som du normalt ikke har brug for. CH_PD-nålen ved siden af skal også indstilles til HØJT igen. Øverst til højre har vi TXD-stiften, der udsender signaler, og nederst til venstre har vi en RXD-pin, der naturligvis modtager signalerne. Vi har også GPIO0 og GPIO2 såvel som den klassiske jordstift, som er placeret nederst til højre.
- For at kunne bruge modulet på Arduino er det fornuftigt at bruge SoftwareSerial, da HardwareSerial mest bruges til kommunikation mellem Arduino og PC. I vores tilfælde bruger modulet imidlertid 115200 som baud-hastighed, hvilket betyder, at kommunikation mellem ESP og Arduino via SoftwareSerial ikke er mulig.
- For at ændre baudhastigheden blinker mange brugere simpelthen ny firmware, der giver en anden baudhastighed. Dette er dog ikke absolut nødvendigt, da baudhastigheden også kan ændres ved hjælp af en kommando. Denne kommando er "AT + UART_DEF". Andre kommandoer som "AT + IPR" eller "AT + CIOBAUD" kan også findes på Internettet, men dette anbefales ikke, da "AT + IPR" især også kan ødelægge modulet.
- For at sende kommandoen til modulet anbefales det at tilslutte det til pc'en med en USB-adapter, som normalt leveres gratis eller kan findes på Internettet for omkring en euro. Hvis du ikke har en USB-adapter, kan du enten bestille en online, som anbefales stærkt, eller bruge en universal FTDI-adapter, som er ret kompliceret og ofte ikke fungerer korrekt. Alternativt er der en anden variant, der vil blive forklaret senere.
- Hvis du har tilsluttet modulet med adapteren til pc'en, kan du sende kommandoen "AT + UART_DEF = 9600, 8, 1, 0, 0" med baud rate 115200 og CR + LF. Du kan derefter tilslutte modulet igen og sende kommandoer til baud rate 9600.
- Derefter skal du programmere Arduino. Koden er relativt enkel. Vi definerer først en tom streng med kommandoen »String s =" ";«, importerer SoftwareSerial (»#include«) og opretter et nyt SoftwareSerial-objekt (»SoftwareSerial Serial_ESP (2, 3);«). I installationsmetoden startes forbindelsen til ESP (»Serial_ESP.begin (9600);«) og forbindelsen til pc'en (»Serial.begin (9600);«). Hvis ESP sender et signal, tilføjes dette til strengen, og strengen udsendes derefter i den serielle skærm (»mens (Serial_ESP.tilgængelig ()> 0) {s + = (char) Serial_ESP.read ();} if (s ! = "") {Serial.println (s); s = "";} «). Omvendt overføres signaler, der sendes af den serielle skærm, dvs. pc'en, også til ESP ("mens (Serial.available ()> 0) {Serial_ESP.write (Serial.read ());}"). Det er dog meget vigtigt, at det hele omdannes til en char, da ESP sender numre tilbage. Du kan også finde koden igen i billedgalleriet i slutningen af artiklen.
- Når du har indlæst koden på Arduino, skal du tilslutte ESP. Forsigtig! ESP bruger 3, 3 volt i stedet for 5V. 5V bryder dette helt. Da Arduino arbejder med 5V-logik, skal spændingen imidlertid justeres i overensstemmelse hermed.
- I teorien kan du bruge en spændingsdeler med modstande, men i praksis er det hele ganske upræcist og kan let forstyrres. Derfor er du nødt til at skifte en logisk niveaukonverter mellem Arduino og ESP.
- Forbind 5V-stiften på Arduino til HV, dvs. højspændingsnål på konverteren, og LV-stiften på konverteren til VCC-stiften på ESP. Tilslut også LV-stiften parallelt med CH_PD-stiften på ESP, så chippen også er tændt. For at få tilstrækkelig strøm skal du også slutte 3, 3V-stiften på Arduino til LV-stiften på konverteren, og dermed til VCC og CH_PD på ESP. Tilslut nu TX-stiften fra SoftwareSerial - i vores tilfælde pin 3 på Arduino - med HV 1, 2, 3 eller 4 og den modsatte LV-pin med RXD-stiften på ESP. Gentag dette trin for RX-stiften på Arduino også.
- Endelig skal du forbinde jorden. For at gøre dette skal du slutte Arduino-jorden til jorden på HV-siden af konverteren. Tilslut derefter jorden på LV-siden til jorden af ESP. Endelig skal du forbinde HV-jorden og LV-jorden.
- Nu kan du nemt sende AT-kommandoer med din pc til ESP via Arduino. Du kan nemt forbinde Arduino til din WiFi, oprette en webserver og meget mere. Føj blot de respektive AT-kommandoer til Arduino-koden (i installationsmetoden), der skal sendes til ESP, som du også kan finde i "AT-instruktionssæt".
- Hvis du ikke har en USB-adapter klar, kan du også sende kommandoen til at ændre baudhastigheden via HardwareSerial ved hjælp af det samme kredsløb ved hjælp af Arduino's TX- og RX-stifter, dvs. 0 og 1. Glem dog ikke at justere baudhastigheden i koden i overensstemmelse hermed.
I det næste praktiske tip giver vi dig en introduktion til Java-programmeringssprog.