ESP8266

From RevSpace
Revision as of 14:16, 23 January 2016 by Bas (talk | contribs)
Jump to navigation Jump to search
ESP12E

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

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

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

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
    • 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