ESP8266
Inleiding
De ESP8266 is een kleine, krachtige 32bits microcontroller. Het heeft een paar zeer uitnodigende features zoals een hoge kloksnelheid, WiFi, een flinke sloot geheugen, PWM op elke pin én een hele lage prijs!
Tegenwoordig is het heel eenvoudig om deze chip van software te voorzien via de Arduino programmeeromgeving.
Hardware
ESP12E
De 12E is de meest standaard ESP module die er te krijgen is. Voor ongeveer 2 euro uit China te krijgen met een flink flashgeheugen, bijna alle pins naar buiten gebracht, dus genoeg aansluitmogelijkheden en een lekker compact model.
Nadeel is de relatief kleine pitch tussen de pads, je zult vaak naar een adapterboardje moeten grijpen of een eigen printje layouten. Adapterboardjes zijn al vanaf 20 cent te krijgen.
ESP12F
De 12F is een doorontwikkeling van de 12E. De grote verbetering zit in het WiFi bereik, de antenne is namelijk iets aangepast. Mensen rapporteren significant beter signaal. De modules zijn op het moment van schrijven wel duurder dan de 12E.
NodeMCU v3
Een ESP12E op een adapterboardje met een aantal luxe features. 3.3volt regulator, USB-Serial dmv een CH340G, alle knopjes voor flashen zitten er al op. Is voor ongeveer 3,50 te krijgen vanuit China. Heeft als nadeel dat het bordje niet echt compact is en dat je mogelijk GPIO's niet/lastig kunt gebruiken omdat daar al knopjes/weerstanden aan hangen.
Aansluiten
Er zijn een paar belangrijke zaken om in acht te nemen bij het ontwerp van hardware met de ESP boards (met name de 'losse' ESP boards, de NodeMCU heeft al een hoop aan boord.
- 3.3volt, voor enkel de ESP minimaal 500mA begroten. Stabiliteit van de voeding beïnvloed de stabiliteit van de ESP
- Condensatoren. Op VCC/GND moet minimaal een 10uF en een 100nF geplaatst worden, zo dicht mogelijk op de VCC
- Pullups en Pulldowns. Bij Boot kijkt de ESP naar de volgende pinnen:
- GPIO 0 laag = boot from UART (Programmeren), hoog = boot from SPI flash (plaats 10k pullup naar 3.3v en switch naar gnd
- GPIO 2 moet hoog zijn, dus pullup naar 3.3v
- GPIO 15 laag = boot from UART/SPI, hoog = boot from SDIO (plaats 10k pulldown naar GND)
- CH_PD laag = ESP uit, hoog = ESP aan. Pullup 10k naar 3.3v
- RST laag = ESP reset, hoog = ESP aan. Pullup 10k naar 3.3v (plus resetknop naar GND)
Als je wilt programmeren moet je GPIO0 laag maken, en de ESP van stroom voorzien of resetten. Zodra de bootloader actief is kun je GPIO loslaten.
Software
Arduino
De Arduino boardmanager op Github is een goed startpunt voor software. Je volgt de handleiding hoe je de boards installeert en je kunt aan de slag.
Veel libraries van bv Adafruit zijn al aangepast op de ESP8266.
Voorbeelden
Er zijn binnen de space al diverse projecten met de ESP8266:
- Wifiskip
- De Neopixel klok
- De 15segmentsdisplay-klok