Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Mijn doel hier is om mijn ervaring met de ESP8266 te delen via de ESP-01-, ESP-12- en NodeMCU-modules.
Ik zal het uitleggen:
1. Hoe ESP-01 op uw computer aan te sluiten?
2. Laad de AT-firmware opnieuw
3. Gebruik Arduino IDE om de chip te programmeren
4. Node MCU-ervaring
5. DeepSleep of voed uw module met batterij
6. Pure ESP12 - Sluit hem aan op je computer en bereid je voor op embedded projecten
Stap 1: ESP-01 - Communicatietest
Jij hebt nodig:
- ESP-01-module natuurlijk
- Seriële USB-adapter
- Een 3.3V regelaar, ik gebruikte een LE33CZ (max 100mA), het werkt maar ik raad een model aan met 1A Max.
Volg het schema.
Opmerking: CH_PD moet worden aangesloten op +VCC, zoals vermeld in de datasheet van ESP8266.
Communiceer met de ESP:
Normaal gesproken wanneer u een dergelijke module koopt:
- de AT-firmware zit al in het geheugen
- de standaard seriële snelheid is 115200 bps
Theoretisch mag u alle software voor seriële communicatie gebruiken. Zorg ervoor dat u New Line & Carriage Return na elke opdracht toevoegt.
Ik heb geprobeerd om PutTTY te gebruiken om AT-commando's te verzenden, maar zonder succes, vanwege deze New Line & Carriage Return-tekens. Ik vond de manier niet om het te doen
Dus ik heb de seriële monitor van ARDUINO gebruikt, zorg ervoor dat je "Beide NL&CR" instelt, anders werkt het niet
Zodra je klaar bent:
- Probeer te typen: AT
- ESP zou moeten antwoorden: OK
Nu bent u binnen. Raadpleeg de Espressif-documentatie voor AT-opdrachten.
Met AT-commando's kunt u verbinding maken met WiFi en een HTTP-server maken. Maar je kunt GPIO niet bevelen.
Stap 2: ESP-01 - Laad de AT-firmware opnieuw
In het geval dat wanneer u de module ontvangt, er geen software in zit (maar normaal gesproken wel), leg ik hier uit hoe u deze opnieuw kunt laden met een multi-platformtool.
U kunt deze stap overslaan als de vorige goed voor u was.
Het eerste dat u moet weten:
- Om in de programmeermodus te komen, moet je GPIO0 op 0V zetten en een RESET uitvoeren terwijl GPIO0 nog steeds op 0V staat.
- Dan is de module klaar om firmware in het flashgeheugen te laden
Ga naar Espressif.com om de SDK te downloaden:
In de map bin/at, zal het README-bestand u vertellen welke bestanden in het geheugen moeten worden geladen en de startadressen
Voorbeeld:
# NIET-BOOTMODUS## downloaden
eagle.flash.bin 0x00000
eagle.irom0text.bin 0x10000
blanco.bin
Flitsgrootte 8 Mbit: 0x7e000 & 0xfe000
Flitsformaat 16Mbit: 0x7e000 & 0x1fe000
Flitsformaat 16Mbit-C1: 0xfe000 & 0x1fe000
Flitsformaat 32Mbit: 0x7e000 & 0x3fe000
Flitsformaat 32Mbit-C1: 0xfe000 & 0x3fe000
esp_init_data_default.bin (optioneel)
Flitsgrootte 8 Mbit: 0xfc000
Flitsgrootte 16 Mbit: 0x1fc000
Flitsformaat 16Mbit-C1: 0x1fc000
Flitsgrootte 32Mbit: 0x3fc000
Flitsformaat 32Mbit-C1: 0x3fc000
Opmerking: u moet de grootte en het type geheugen weten dat u in uw module hebt. Dat is een punt dat we in een paar seconden zullen behandelen…
Gebruik esptool.py om de firmware te laden:
- Espressif raadt aan om hun eigen software te gebruiken, maar het is op Windows
- Dus https://github.com/espressif/esptool is een goed alternatief
- python esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash 0x00000./at/noboot/eagle.flash.bin
- python esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash 0x10000./at/noboot/eagle.irom0text.bin
- python esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash 0x7e000./bin/blank.bin
- python esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash 0xfc000./bin/esp_init_data_default.bin
- …
Belangrijke notitie:
U kunt deze dingen niet doen als u niet weet wat voor soort geheugen u in uw module heeft.
Ik geef je een tip:
python esptool.py --port /dev/ttyUSB0 --baud 115200 flash_id
Bekijk dan de combo op
fabrikant c8 is GigaDevice en apparaat 4013 is GD25Q40, wat een 4Mbit=512KByte-apparaat is
fabrikant ef is Winbond (ex Nexcom) en apparaat 4016 is W25Q32, wat een 32Mbit=4MByte-apparaat is
Stap 3: Gebruik ARDUINO IDE
Voeg in de voorkeursinstellingen deze URL toe aan "Extra Boards Manager-URL's":
arduino.esp8266.com/stable/package_esp8266c…
Start ARDUINO daarna opnieuw op. Vervolgens kunt u in "TOOL->BOARD" de generieke ESP8266-module selecteren.
In Bestand->Voorbeelden vindt u voorbeelden van schetsen die u helpen om te beginnen met programmeren met ARDUINO.
Opmerkingen:
- Wanneer u uw programma downloadt, vergeet dan niet om naar de programmeermodus te gaan (GPIO0=0V en RESET).
- Zodra je een arduino-programma op de ESP hebt gedownload, is de AT-firmware niet meer beschikbaar, dus AT-commando's zijn dat ook niet.
- Gebruik de optie: schets + wifi-instellingen
Stap 4: Knooppunt MCU
Als je zo'n module koopt, is dat erg handig:
- ESP-12 binnen
- Je hebt een flash + reset-knop om gemakkelijk in de programmeermodus te komen
- Pinnen
- Een geïntegreerde USB-poort…
Maar als je het in een project wilt integreren, is het misschien niet de beste. We zullen de "pure" ESP12 aan het einde van deze instructable zien.
Stap 5: DeepSleep of voed uw module met batterij
Het is cool om wifi te hebben, maar het kost stroom. Als u de module AAN laat staan, weet u niet zeker of u deze voor een lange tijd kunt inbedden in een batterijenproject.
Gelukkig kan de ESP in diepe slaapstand gaan. Het verbruikt dan weinig micro-ampères.
Het is mogelijk om dat te doen met AT-commando's.
Maar ik zal het laten zien door middel van arduino-programmering.
Verbind eerst WakeUpPin=GPIO16 met de RESET van de ESP. Want wanneer de ESP in de diepe slaapmodus gaat, wordt hij wakker door zichzelf te resetten via de GPIO16-pin.
Gebruik de code: ESP.deepSleep(, WAKE_RF_DEFAULT);
is in microseconden. De ESP slaapt tijdens ons voordat hij wordt gereset.
Stap 6: Pure ESP12 - sluit het aan op uw computer en bereid u voor op geïntegreerde projecten
Wees niet bang om de pure ESP12-module te kopen. Het is goedkoop, licht en klein.
Sluit het op dezelfde manier aan als de ESP-01-module, met een seriële USB-adapter.
Vergeet niet dat CH_PD op Vcc moet staan.
Dan kun je embedded projecten maken, op batterijen, met wifi en een krachtige microcontroller!!