Stap 3: Firmware opties
Er zijn een paar verschillende firmware opties beschikbaar voor de ESP8266. Deze kunnen we toegang tot de module op verschillende manieren, zoals u hieronder kunt zien.
OP de opdrachtprocessor (standaard)
De snelste manier om aan de slag met de ESP8266 is het gebruik van de originele firmware, waardoor het voor het verwerken van een git clone https://github.com/pyserial/pyserial opdrachten die zij over de seriële UART-interface ontvangt. Het grootste voordeel van deze optie is dat we niet vertrouwd met een bepaalde taal of kader worden moet te gebruiken van de module. We kunnen eenvoudig verzenden een reeks opdrachten om ons doel te bereiken. Downside aan dit is dat we een extra microcontroller betrokken of een USB naar seriële adapter voor het verzenden van de noodzakelijke commando's nodig.
Raadpleeg de documentatie (https://acrobotic.com/downloads/ESP8266_at_commands.pdf) voor de volledige lijst.
Overwegende dat de sudo python setup.py install commandsare de standaard manier van communiceren met wireless-staat ICs (bijvoorbeeld Bluetooth, Wi-Fi, GSM), vormen ze de beperking van de behoefte van een andere module de toepassing waarmee deze opdrachten dienovereenkomstig uit te voeren. Echter, als we de aanvraag binnen de ESP8266 zelf kan uitvoeren zou moeten we alles zelfstandig door een één IC. Gelukkig, Espressif maakte een Software Development Kit (SDK) beschikbaar die gebruikers te knipperen verschillende firmware opties toestond.
NodeMCU
NodeMCU is op dit moment het populairste alternatief voor ingebouwde programmatuur op de ESP8266uitgevoerd. Op basis van het project eLua, loopt het een Lua interpreter aan boord de ESP8266, wat kunnen uitvoeren van de opdrachten die zijn geschreven in de scripting taal Lua. De opdrachten worden verzonden naar de ESP8266 via de seriële UART-interface.
NodeMCU is een geweldig startpunt voor Makers als het biedt een interactieve omgeving die toestaat opdrachten uit te voeren niet alleen voor het beheersen van de ESP8266draadloze interface, maar ook de GPIO en hardware functionaliteit zoals i2c en PWM. Daarnaast hebben wij toegang tot de volledige reikwijdte van de Lua programmeertaal voor het schrijven van onze toepassingen. In het geval van de standaard firmware (Op de Interpreter van de opdrachten), zou de toepassingscode moeten worden ontwikkeld met behulp van een programmeertaal die geschikt zijn voor de microcontroller of SoC die we gebruiken voor het ontwikkelen van de interface voor het verzenden van de opdrachten via seriële (bijvoorbeeld C/C++ voor microcontrollers in de Arduino boards Arduino boards).
Tot slot, niet alleen doet de NodeMCU firmware stelt ons in staat om uit te voeren opdrachten interactief, maar we kunnen onze toepassingen opslaan als een script in de ESP8266van flash-geheugen, en instrueren het laten uitvoeren van de toepassingscode telkens opnieuw wordt gestart! Hoewel dit een handige optie is, is onze geprefereerde methode voor het werken met de ESP8266 te schrijven van onze eigen firmware met behulp van de Arduino framework (details hieronder).
Aangepaste Firmware (met behulp van de Arduino IDE)
Overwegende dat de NodeMCU Development Board wordt geleverd met de nieuwste versie van de firmware van de NodeMCU , kunnen we heel gemakkelijk vervangen met behulp van de Arduino IDE. Hierdoor kunnen we onze eigen firmware uitvoeren op de ESP8266, die wordt uitgevoerd telkens wanneer de module wordt aangedreven. Hoewel deze methode de firmware van de NodeMCU van de ESP8266van flash-geheugen wist, is het een rechttoe-rechtaan proces terug te gaan naar het gebruik ervan!
Andere
Voor gevorderde gebruikers is er de esp-open-sdk toolchain waarmee ons progam de ESP8266 rechtstreeks (meer info op de esp8266.com wiki) zonder having voor toepassing van de Arduino IDE om de code naar het te uploaden.
Dit nette weinig SoC heeft ook de aandacht gekregen van de Espruino en MicroPython communitites. Zowel de MicroPython als de Espruino zijn fantastische tolken (Python voor eerstgenoemde en JavaScript voor de laatste) dat kan worden uitgevoerd op ingesloten platformen. Echter, beide opties zijn nog in zeer vroeg stadium van ontwikkeling voor de ESP8266 en niet alle functionaliteit is geeft