ESP Easy -laiteohjelmisto ESP8266:lle


Pikku vekottimen eli mikrokontrollerin ohjelmoiminen tekemään jotain hyödyllistä vaatii edelleen ainakin jonkinlaisia ohjelmointitaitoja, vaikka työkalut ovatkin kehittyneet nopeasti viime vuosina.

Onneksi ESP8266:lle on kehitetty avoimen lähdekoodin ESP Easy -laiteohjelmisto (firmware eli suomeksi firmis, jonka asentamalla ESPin saa lukemaan sensoreita ja lähettämään tiedot nettiin ilman minkäänlaisia ohjelmointitaitoja. Projektin wiki-sivulla kerrotaan lähes kaikki tarvittava ESP Easyn asennuksesta asetusten säätämiseen. Tässä Vekotinverstaan kirjoitussarjassa keskitytään säätämään laite lukemaan sensoreita ja lähettämään tiedot nettiin.

Laiteohjelmiston eli firmwaren asentaminen

Micro-USB-kaapeli

Helppo tapa asentaa ESP Easy ESP8266-moduuliin on käyttää tietokonetta (Mac OS X, Windows tai Linux) ja micro-USB-kaapelia. Micro-USB on yleinen latausliitäntä nykyisissä kännyköissä ja monessa kännykkälaturissa on pistokeosasta irrotettava johto, jota voi käyttää ESP Easyn lataamiseen (eli fläshäämiseen) ESP8266:een.

Windows-koneille käyttökelpoinen ohje löytyy projektin ESPEasy Firmware Upload -sivulta ja alla on kuvattu sama prosessi Mac OS X -järjestelmässä. Molemmissa tapauksissa kannattaa ladata ESP Easyn uusin 2.0-kehitysversio täältä https://github.com/letscontrolit/ESPEasy/releases. Tätä kirjoitettaessa se on ESPEasy_v2.0.0-dev10.zip.

Zip-paketista purkautuu hakemisto, jossa on paljon ESPEasy_v2.0.0-alkuisia ja .bin-päätteisiä tiedostoja. Test-versio on niistä monipuolisin ja test_4096 toiminee useimmissa ESP8266-kehitysmoduuleissa (development board). Paketista löytyy myös Windows-komentorivityökalu esptool.exe, joka vastaa tässä kirjoituksessa käytettyä esptool.py:tä ja uudempi FlashESP8266.exe. Näitä en ole päässyt kokeilemaan, mutta jälkimmäinen lienee perinteinen graafinen Windows-ohjelma, jolla ESPEasy_v2.0.0-dev10_test_4096.bin-tiedoston (tai vastaavan firmiksen) voi ladata ESPiin hiirellä kliksauttelemalla.

Mac OS X

Normaalikäyttäjän Macissa ei yleensä ole kehitystyökaluja asennettuna, mutta esptoolin asennus ei vaadi kuin järjestelmästä jo valmiiksi löytyvän terminaalin ja Python-tulkin sekä mahdollisesti sopivan USB-ajurin asennuksen. Asennus vaatii pääkäyttäjän oikeudet eli jos olet kirjautuneena normaalioikeuksilla varustettuna käyttäjänä vaihda käyttäjä sellaiseksi, jolla on pääkäyttäjän oikeudet.

Mac OS X 10.12:n terminaali-ikkuna

Seuraavaksi avaa Pääte (englanninkielisessä käyttöjärjestemässä Terminal). Pääte tarjoaa komentorivikehotteen, jossa tietokoneelle voi syöttää tekstimuotoisia komentoja. Kopioi pääteikkunaan alla olevat korostetut komennot järjestyksessä ja noudata niiden ohessa olevia lisäohjeita.

  1. Asenna esptool komennolla
    sudo /usr/bin/easy_install esptool
    Komento tulostanee ”Password:”, jolloin kirjoitetaan näppäimistöltä kyseisen käyttäjän salasana. Tämän jälkeen päätteeseen tulostuu paljon tekstiä, joka toivottavasti päättyy riviin
    Finished processing dependencies for esptool
  2. Tarkista onnistuiko asennus komennolla
    esptool.py version
    Tämän pitäisi tulostaa jotain tämänkaltaista:
    esptool.py v2.0.1
    2.0.1
  3. Kytke ESP8266 USB-kaapelilla kiinni Macciin ja selvitä sen käyttämä sarjaportti. Sen nimi voi olla esimerkiksi /dev/cu.SLAB_USBtoUART tai /dev/cu.wchusbserial1410 tai jotain muuta /dev/cu.-alkuista. Komento
    ls -lgrt /dev/cu.*
    tulostaa jotain tämänkaltaista:
    crw-rw-rw- 1 wheel 20, 1 14 Jun 07:49 /dev/cu.Bluetooth-Incoming-Port
    crw-rw-rw- 1 wheel 20, 0x0000012b 5 Jul 12:54 /dev/cu.SLAB_USBtoUART
    Oikean portin nimen voi päätellä siitä, että sen päiväys ja kellonaika on lähellä sitä hetkeä, kun liitit USB-kaapeli ESPiin. Tässä tapauksessa se on /dev/cu.SLAB_USBtoUART.Jos uutta sarjaporttia ei näy, voi olla että ensin täytyy asentaa sopiva USB-ajuri. Tässä esimerkissä on käytetty Wemos D1 Mini Pro ESP8266-moduulia ja siinä käytetylle USB-piirille ja SLAB_USBtoUART-sarjaportille löytyy Mac OS X -ajuri tältä sivulta:
    https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
    Asenna dmg-paketista löytyvä pkg-tiedosto ja käynnistä Mac uudestaan.
  4. Fläshää firmis ESPiin muodostamalla oikea komento. bin-pääteisen tiedoston täytyy olla sellaisessa paikassa, josta se löytyy komentoriviltä helposti. Tämä voi olla esimerkiksi Työpöytä tai Desktop. Kopioi siis tiedosto sinne esimerkiksi Finderilla raahaamalla se zip-tiedostosta tulleesta kansiosta.
    Raahaa bin-tiedosto työpöydälle Finderissä

    Alla olevaa komentoa et välttämättä voi suoraan kopioida pääteikkunaan, koska portti voi olla eri kuin tässä esimerkissä. Kopioi komento siis ensin johonkin ohjelmaan, jossa voi muokata tekstiä ja korjaa portti ja mahdollisesti bin-tiedoston nimi vastaamaan omaa ympäristöäsi.

    esptool.py --port /dev/cu.SLAB_USBtoUART --baud 115200 write_flash -fm dio -fs 4MB 0x00000 Desktop/ESPEasy_v2.0.0-dev10_test_4096.bin 

    Ohjelman pitäisi tulostaa jotain tämänkaltaista, jos kaikki meni kuten pitää:

    esptool.py v2.0.1
    Connecting........_
    Detecting chip type... ESP8266
    Chip is ESP8266
    Uploading stub...
    Running stub...
    Stub running...
    Configuring flash size...
    Compressed 580256 bytes to 381323...
    Wrote 580256 bytes (381323 compressed) at 0x00000000 in 33.6 seconds (effective 138.3 kbit/s)...
    Hash of data verified.

    Leaving...
    Hard resetting...

Jos olet päässyt tähän asti, on aika siirtyä liittämään ESP8266 WiFi-verkkoon ja säätämään ESP Easyn asetuksia!

Jos taas homma ei tunnu onnistuvan, niin alla on vinkkejä, joita voi kokeilla ennen kuin siirtyy etsimään verkosta lisäohjeita.

  • Jos USB-sarjaporttia ei löydy, yritä löytää ESP8266-moduulin nimen perusteella oikeat ajurit ja asenna ne.
  • Jos ESP8266 ei ”herää” ESP Easyn asennuksen jälkeen, kokeile tyhjentää ESP8266:n muisti ja asentaa ESP Easy uudestaan, tarvittaessa parikin kertaa. Tyhjennys onnistuu esptoolilla komentamalla
    esptool.py --port /dev/cu.SLAB_USBtoUART erase_flash
  • Lista jatkuu tarvittaessa…