lauantai 11. kesäkuuta 2016

NodeMCU WiFi-moduuli tulla tupsahti postilaatikkoon

Mitä kaikkea saakaan neljällä eurolla? Riippuu mistä ostaa. Sillä saa joko hampurilaisen ilman ranskiksia ja juomaa, tai sitten täysverisen 32-bittisen dev boardin 80 MHz suorittimella, WiFi-yhteydellä ja USB-liitännällä.

Nätti kuin mikrokontrolleri pienenä

Minulla oli jo yksi ESP8266 -moduuli sääasemaprojektia varten, mutta se siirtyi paikkaan X, joka on tunnetusti, varsinkin minun tapauksessani, melko yleinen tavaroiden säilytyspaikka. Se oli lisäksi vielä karvahattumalli, jonka ohjelmoimiseen olisi tarvinnut Arduinon tai USB - Serial konvertterin, joten päätin tilata NodeMCU v3:n (kuvassa) jonka voi kytkeä suoraan tietokoneeseen, ja jossa on paljon GPIO-pinnejä prototyyppausystävällisessä formaatissa.

Käyttöönotto

En ole aiemmin puuhastellut muiden kuin kasibittisten AVR-kontrollereiden kanssa Arduino-ympäristössä, joten ensimmäiseksi piti asentaa koneelle tarvittavat työkalut firmwaren päivitykseen ja koodin lataamiseen:
Ensimmäinen öö-hetki tuli heti vastaan. Esptool eli firmwaren päivitykseen käytettävä softa toimii pelkästään vanhemman Python 2.7.x, mutta ei uuden 3.x version kanssa. Downgreidattuani Pythonin aiempaan versioon sainkin esptoolin toimimaan ja komentokehotteen kautta pingattua laitetta. Se palautti kuuliaisesti chip id:n ja muutaman muun datanpätkän. Success, laite toimii!


Seuraavaksi avasin terminaalin (miniterm.py) ja yritin komentaa laitetta Lua-tulkin välityksellä. Näppäimistön naputtelu antoi ruudulle lähinnä Matrixista tuttuja merkkejä. Neuronit aivoissani yrittivät kovasti kehittää jonkunlaisen idean, ja pian se tulikin ahaa-elämyksen muodossa: Tämähän on tuttua myös Arduinon sarjaportin kanssa; baud-rate eli portin tiedonsiirtonopeus on väärin. CTRL+T ja b, ja pääsin vaihtamaan nopeudeksi ESP8266:n vakioasetuksen 115 200. Kivaa, nyt ruudulle ilmestyi sentään oikea kirjain oikeassa kohtaa.

Lua-kielen komennot eivät antaneet minkäänlaista lopputulosta, josta päättelin että muistissa on joku ihan muu firmware kuin NodeMCU tai todennäköisemmin ei firmwarea ollenkaan. NodeMCU:ta tukevan hardwaren määrä on räjähtänyt siinä määrin käsiin, että valmiiksi käännettyjä binääritiedostoja ei enää jaella projektin GitHubissa. Tosi hardcore koodi_äiä kääntäisi firmwarensa itse lähdekoodista, mutta kuten sanottua tämä on minulle uusi juttu, joten käytin 100x kätevämpää pilvipalvelua binäärin tekemiseen. Laitoin rastin ruutuun muutamaan kirjastoon jota ajattelin ensi alkuun tarviavani (wifi, http, mqtt, ws2812)

Firmwaren päivitys onnistui ihan ekalla kertaa.

Mukavata! Uusi firmware sisällä. Pikaisen sarjaporttiyhteyden jälkeen totesin sen myös toimivaksi. Tässä kohtaa minua alkoi nyppimään käyttää miniterm-skriptiä mm. merkistökoodauksen sekoilun takia ja latasin vielä yhden työkalun: ESPlorerin, jolla voi hoitaa moninaisia ESP-perheen siruihin liittyviä hommia varsin vaivattomasti.

ESPlorer oli erittäin pätevä, siitä huolimatta että Javalla koodattu.

Kaikki toimii, eikä mennyt edes kovin monesti sormi suuhun. Pystyn liittymään wifi-verkkoihin ja luomaan uuden yhteyspisteen muutamalla koodinpätkällä. Rakastan Luaa ja NodeMCU:ta jo nyt. Seuraavaksi vuorossa jotain vähän jännempää kuten esim. vilkkuvia valoja, joten ensi kertaan!

Ei kommentteja:

Lähetä kommentti