WLAN op de Arduino - verbind de ESP8266-01 met de Arduino en bedien NodeMCU Amica op afstand met uw smartphone
De Arduino is een van de bekendste ontwikkelaarsborden. Helaas hebben de standaardmodellen geen Wi-Fi-chip geïnstalleerd. Deze praktische tip laat zien hoe u een ESP8266-01 WLAN-module verbindt met de Arduino en hoe u de NodeMCU Amica op afstand kunt bedienen met uw smartphone.
Bedien NodeMCU Amica met uw smartphone
De NodeMCU Amica heeft een verscheidenheid aan pinnen, evenals een ingebouwde ESP8266 wifi-chip en een microUSB-aansluiting. Daarom is het zinvol om het apparaat meer als een zelfstandig apparaat te gebruiken. Hoe een "klassiek" ESP8266-bord op de Arduino wordt aangesloten, wordt verderop in het artikel beschreven.
- Om ESP-chips te kunnen programmeren, moet u eerst de stuurprogramma's voor alle CP210er-chips van Silicon Labs downloaden en installeren. Gelukkig gebeurt dit relatief snel.
- Open vervolgens de Arduino IDE en ga naar Instellingen. Voeg de URL "//arduino.esp8266.com/stable/package_esp8266com_index.json" (zonder aanhalingstekens) toe aan de extra URL's van de forumbeheerder. Start vervolgens de forumbeheerder, voer "ESP8266" in en installeer het pakket.
- Ga ook naar bibliotheekbeheer, voer "Blynk" in en installeer de nieuwste versie. Alle benodigde componenten zijn nu geïnstalleerd.
- U hebt de Blynk-app nodig om de NodeMCU met uw smartphone te bedienen. Maak hier een nieuw account aan of log in met een bestaand account als dit nog niet is gebeurd. Maak vervolgens een nieuw project en selecteer de NodeMCU als het bord.
- Met de voorbeeldcodes in de Arduino IDE moet u ook een code voor Blynk (→ "Boards_WiFi") op de NodeMCU vinden. Voer hier eenvoudig het Blynk-token van uw project in, dat u automatisch per e-mail hebt ontvangen. Voer ook uw SSID en wachtwoord in.
- Om de code op het bord te laden, moet u deze natuurlijk selecteren op het tabblad "Extra". In ons geval moest "NodeMCU 1.0 (ESP12E Module)" worden geselecteerd, de frequentie 80 MHz, de geheugengrootte "4M (3M SPIFFS)" en de baudrate 115200. Houd er echter rekening mee dat de informatie afhankelijk van het model kan verschillen.
- U kunt dan eenvoudig de code op het bord laden en deze bedienen met de Blynk-app. Hier kunt u eenvoudig verschillende widgets maken en bijvoorbeeld een LED met een knop bedienen.
Verbind WiFi op de Arduino - ESP8266-01 met de Arduino
Vervolgens willen we de ESP8266-01-module verbinden en gebruiken met de Arduino.
- Als je het bord draait zodat het naar beneden wijst met de gouden antenne, vind je de VCC-pin linksboven, die natuurlijk moet worden ingesteld op HOOG. Rechts bevindt zich de RST-pin, die u meestal niet hoeft te gebruiken. De CH_PD-pin ernaast moet ook opnieuw worden ingesteld op HOOG. Rechts bovenaan hebben we de TXD-pin die signalen uitvoert en linksonder hebben we natuurlijk een RXD-pin die de signalen ontvangt. We hebben ook GPIO0 en GPIO2, evenals de klassieke aardpen, die zich rechts onderaan bevindt.
- Om de module op de Arduino te kunnen gebruiken, is het logisch om SoftwareSerial te gebruiken, omdat HardwareSerial meestal wordt gebruikt voor communicatie tussen de Arduino en de pc. In ons geval gebruikt de module echter 115200 als de baudrate, wat betekent dat communicatie tussen de ESP en de Arduino via SoftwareSerial niet mogelijk is.
- Om de baudrate te wijzigen, flashen veel gebruikers gewoon met nieuwe firmware die een andere baudrate biedt. Dit is echter niet absoluut noodzakelijk omdat de baudrate ook met een opdracht kan worden gewijzigd. Deze opdracht is "AT + UART_DEF". Andere commando's zoals "AT + IPR" of "AT + CIOBAUD" zijn ook te vinden op internet, maar dit is niet aan te raden, omdat met name "AT + IPR" ook de module kan laten crashen.
- Om de opdracht naar de module te sturen, is het aan te bevelen deze aan te sluiten op de pc met een USB-adapter, die meestal gratis wordt meegeleverd of op internet te vinden is voor ongeveer een euro. Als u geen USB-adapter hebt, kunt u er een online bestellen, wat sterk wordt aanbevolen, of een universele FTDI-adapter gebruiken, die vrij complex is en vaak niet goed werkt. Als alternatief is er een andere variant die later zal worden uitgelegd.
- Als u de module met de adapter op de pc hebt aangesloten, kunt u het commando "AT + UART_DEF = 9600, 8, 1, 0, 0" verzenden met de baudrate 115200 en CR + LF. U kunt de module vervolgens opnieuw verbinden en opdrachten verzenden met een baudrate van 9600.
- Vervolgens moet je de Arduino programmeren. De code is relatief eenvoudig. We definiëren eerst een lege string met het commando »String s =" ";«, importeren SoftwareSerial (»#include«) en maken een nieuw SoftwareSerial-object (»SoftwareSerial Serial_ESP (2, 3);«). In de installatiemethode wordt de verbinding met de ESP (»Serial_ESP.begin (9600);«) en de verbinding met de pc (»Serial.begin (9600);«) gestart. Als de ESP een signaal verzendt, wordt dit aan de string toegevoegd en wordt de string vervolgens uitgevoerd in de seriële monitor (»while (Serial_ESP.available ()> 0) {s + = (char) Serial_ESP.read ();} if (s ! = "") {Serial.println (s); s = "";} «). Omgekeerd worden signalen verzonden door de seriële monitor, d.w.z. de pc, ook doorgegeven aan de ESP ("while (Serial.available ()> 0) {Serial_ESP.write (Serial.read ());}"). Het is echter heel belangrijk dat het hele ding wordt omgezet in een teken, omdat de ESP nummers terugstuurt. U kunt de code ook terug vinden in de fotogalerij aan het einde van het artikel.
- Nadat u de code in de Arduino hebt geladen, moet u de ESP aansluiten. Let op! De ESP gebruikt 3, 3 volt in plaats van 5V. 5V breekt dit volledig. Omdat de Arduino echter met 5V-logica werkt, moet de spanning dienovereenkomstig worden aangepast.
- In theorie kun je een spanningsdeler met weerstanden gebruiken, maar in de praktijk is het hele ding vrij onnauwkeurig en kan het gemakkelijk worden verstoord. Daarom moet u een logisch niveau-omzetter schakelen tussen de Arduino en de ESP.
- Sluit de 5V-pin van de Arduino aan op de HV, d.w.z. hoogspanningspen op de converter, en de LV-pin van de converter op de VCC-pin van de ESP. Sluit de LV-pin ook parallel aan de CH_PD-pin van de ESP aan, zodat de chip ook wordt ingeschakeld. Om voldoende stroom te krijgen, moet u ook de 3.3V-pin van de Arduino op de LV-pin van de converter aansluiten, dus bijgevolg op de VCC en CH_PD van de ESP. Verbind nu de TX-pin van SoftwareSerial - in ons geval pin 3 op de Arduino - met HV 1, 2, 3 of 4 en de tegenovergestelde LV-pin met de RXD-pin op de ESP. Herhaal deze stap ook voor de RX-pin van de Arduino.
- Eindelijk moet je de grond verbinden. Sluit hiervoor de aarde van de Arduino aan op de aarde aan de HV-zijde van de converter. Verbind vervolgens de aarde aan de LV-zijde met de aarde van de ESP. Eindelijk moet u de HV-aarde en de LV-aarde verbinden.
- Nu kunt u eenvoudig AT-opdrachten met uw pc naar de ESP verzenden via de Arduino. U kunt de Arduino eenvoudig verbinden met uw WiFi, een webserver maken en nog veel meer. Voeg eenvoudig de respectieve AT-opdrachten toe aan de Arduino-code (in de installatiemethode) die naar de ESP moeten worden verzonden, die u ook kunt vinden in de "AT Instructie Set".
- Als u geen USB-adapter bij de hand hebt, kunt u ook de opdracht verzenden om de baudrate via HardwareSerial te wijzigen met hetzelfde circuit, met behulp van de TX- en RX-pinnen van de Arduino, d.w.z. 0 en 1. Vergeet echter niet de baudrate in de code dienovereenkomstig aan te passen.
In de volgende praktische tip geven we u een inleiding tot de programmeertaal Java.