ESP32 Mikrokontroller

ESP32 Mikrokontroller

ESP32 - Bluetooth BLE bicikli lámpa kapcsolgatás projekt

2018. január 14. - MrJoci

Kimaradt egy hét, de sebaj, újra tudtam kicsit ESP32-zni. Sikerült haladni a saját kis projectemben, amiről igazából még nem mondtam el, hogy miaz. Végeredményben a biciklimen szeretném megoldani, hogy automatikusan kapcsoljanak ki/be a lámpák, ha a telefonommal, vagy az okoskarkötőmmel a közelébe megyek.

A dolog nagyot lépett előre a hétvégén, de mielőtt belemennék hol tartok, kicsit összeszedem magamnak is mit kell megoldani a tökéletesnek tekintett állapotig:

  • ESP32 legyen alkalmas a környezetében jelen lévő Bluetooth eszközeimnek a felismerésére
  • ha felismeri valamelyik eszközömet, akkor változtassa meg az állapotát az egyik GPIO lábnak
  • a GPIO lábra legyen egy relé kötve és az kapcsolgassa a 11.1V-os akksira kötött lámpákat
  • ne legyen túl ideges. Akár 1 perc is telhessen el úgy, hogy elvesztette a kapcsolatot velem
  • a telefonom és az okos-karkötőm is azonosítson
  • az ESP32-nek vagy a lámpákat vezérlő akksiról, vagy egy saját 100mAh akksiról kell működnie és legalább 1 napig kell bírnia
  • 3D nyomtatni valamilyen kasztnit

Jelenleg ez az állás:

  • sikerült az ESP32 felőli scannelést megoldani. Az alap File/Examples/ESP32 BLE Arduino/BLE scan mintából indultam ki
  • a telefonom is látható az ESP32 scan eredményei között. Ehhez a Beacon Simulator nevű appot kellett telepíteni https://play.google.com/store/apps/details?id=net.alea.beaconsimulator&hl=hu
  • jelenleg a GPIO2-es lábat és ezzel együtt az ESP32-re épített LED-et kapcsolgatom így
  • 1 órát bír a 105mAh-s akksiról. Ez nem elég, de jelenleg a kód folyamatosan aktívan keresi az eszközöket. Ha ezt megritkítanám 30-60 másodpercre, akkor valószínűleg tovább bírná. Pláne ha nem zabálná az energiát a kék LED
  • a biciklimre már fel van szerelve 2 éve a LED világítás és a 11.1V-os akksi. Ezt kell majd átrendezni

Későbbi cikkben jobban belemegyek majd a részletekbe, addigis pár kép és videó:

ESP32 - Arduino IDE konfigurálás és az első build

Innét merítettem:
- https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/windows.md
- https://www.youtube.com/watch?v=jhjZZkKupk8&index=1&list=PL3XBzmAj53RnZPeWe799F-uoXERBldhn9

Ebben a lírásban 3 komponens telepítését végezzük el:

- Arduino IDE: az IDE jelentése Integrated Development Environment. Ez és az ehhez hasonló eszközök általában egy szövegszerkesztőkhöz hasonlóak, de azoknál sokkal összetettebbek. Rengeteg féle beépített funkcióval gyorsítják meg a fejlesztést az adott nyelvre, valamint a kód lefordítása a mikrokontroller számára is egy parancssori varázslás lenne Arduino IDE nélkül
- GIT: a GIT egy verziókövetésre szolgáló környezet. Segítségével lehet nyomonkövetni milyen módosítások történtek egy fájl belsejében az egyes fejlesztési szakaszok során. Két fő parancsa a checkout és a commit. Utóbbival lehet feltölteni az új fejlesztést a felhőbe, előbbivel pedig letölteni a legfrissebb verziót (vagy akármelyiket). Most az ESP32 legújabb szoftverének a letöltésére használjuk
- Python: egy programozási nyelv, C alapú. Az ESP-hez kapcsolódó scriptek futtatására kellhet

A telepítésnek két módja is van. Az egyik GIT-et se igényel, cserében később manuális meló lesz az új verziókra frissíteni az ESP32 librarykat. Ezt az eljárást itt nézhetitek meg: https://youtu.be/mJcxnaR08Dg?t=5m36s

A klasszikus GIT-es telepítés pedig így néz ki:

  1. etöltöttem és telepítettem az Arduino IDE legújabb verzióját (1.8.5 a cikk írásakor). Link: https://www.arduino.cc/en/Main/Software
  2. Next-Next finnish telepítése az Arduino IDE-nek. Engedélyezd a driverek telepítését is ha kérdezi
  3. GIT install (2.15.1 a cikk írásakor)
  4. Telepítsd is fel egyből. Ez nem annyira next-next finnish, bár ha nem érted a feltett kérdéseket, akkor jók lesznek az alapbeállítások. Aki érdekel, levideóztam, hogy én miként telepítettem:
    git_install.gif
  5. Start Git GUI és a Clone existing Repo-t válaszd

    1. Source: https://github.com/espressif/arduino-esp32.git
      Target: C:/Users/[usernamév]/Documents/Arduino/hardware/espressif/esp32 ahol a [usernév] a te windowsos login neved
    2. És nyomhatod a Clone gombot. Ha végzett egy üres ablak marad, ekkor bezárhatod a GIT GUI-t
  6. Menj el a c:\Users\xyz\Documents\Arduino\hardware\espressif\esp32\tools\ mappába és indítsd el a get.exe-t:
  7. Ezt fogod látni:

    Itt nincs más tennivaló, a letöltés végén bezáródik az ablak
  8. Csatlakoztasd az ESP32-t valamelyik szabad USB portodhoz
  9. Indítsd el az Arduino IDE-t. A Tools menü Board almenüjében válaszd ki azt a típust amit vettél. Az enyémnek a hátoldalára van felfestve a NodeMCU ESP32S felirat

    Így a Node32s -t választottam:
  10. A következő a COM port beállítása. Ehhez először tudnod kell melyik COM port állítódott be. A legegyszerűbben a Device Managerből olvashatod ki:

    Ha több is van és nem tudok melyik az, akkor húzd ki/dugd be és az újonnan megjelenő lesz az
  11. Az én esetemben COM5 lett. Állítsuk be Arduino IDE-ben:
  12. Végül az Upload Speed-et is lejjebb vettem 115200-ra. Ennek az oka, hogy bizonyos felhasználók kommunikációs gondokkal kűzdöttek, hogy ha ennél gyorsabb tempóra váltottak. A magam részéről egy percet se pazarolnék ilyen jellegű szívással :)
  13. Küldjük rá az első mintakódot (amit alapból benne volt az Arduino IDE ablakában)


    Aminek a hatására ilyesmit kell majd látnunk. Fontos, hogy az ESP32-n nyomva kell tartani a BOOT vagy az én esetemben IOO feliratú gombot, jobb a microUSB-től. Ha ezt nem tesszük meg, akkor egyszerűen nem fog feltöltődni a program.
    esp32_build.gif

Hát ennyi, jöhet a fejlesztés!

Opcionális: szükségünk lehet esetlegesen Pythonra.  Ha felmerül az igény, akkor mindenképp maradjunk 3.0 alatt, legalábbis ezt javasolják az okosok:

Python 2.7 letöltése innét: https://www.python.org/downloads/release/python-2714/
A cikk írásakor a 2.7.14 a legújabb. Az x64-est válaszd:

ESP32 - hol mennyi

Én alig 1 napja jutottam tudomására a létezéséről az egész ESP32 témakörnek, viszont nem volt kedvem túl sokat várni míg a kezem közé kaparinthatok egy példányt, ezért nekiálltam a netet túrni magyarországi forrásokért. Boség zavara? Na az nem volt. Az Espressif ezen vezérlője elég új darab, valamikor 2016 végén jelenhetett meg és itthon úgy tűnik még közel sem olyan népszerű, mint az Arduino.

Ennek ellenére két helyet is találtam online. Az egyik a shop.TavIR.hu a másik a RpiBolt.hu. A két bolt két eléggé külömböző felépítésű ESP32 variánst árul. Én a TávIR-est választottam, egyrészt mert olcsóbb (bruttó 3350Ft vs 8990Ft) másrészt eleve van rajta beforrasztott tüskesor, ami játszós fázisban nagy segítség.

TavIR 

 

RpiBolt

Mint úgy általában mindig, ezt is belehet szerezni ebay-ről. Ha van időnk kivárni, akkor már 1800Ft-ért lecsaphatunk a TavIR-es változatra:

Persze így nehezebb lesz reklamálni és őszintén szólva tök segítőkész volt Cseh Róbert, a TavIR tulajdonosa, átvételkor gyorsan segített letisztázni egy-két felmerült kérdésemet, utólag is köszönöm!

A kezdet

Ha kilyukadtál erre az oldalra, nos az nem véletlenül történt. Senki se írja csak úgy be a googleba, hogy ESP32 :) Szóval valószínűleg már legalább alapszinten tudod mi is az a Espressif ESP32 vagy ESP32S.

Egy IOT mikrokontroller (Internet Of Things), ami egy ujjbegynyi csipbe integrálva tartalmazza a proci mellett a WiFi és a Bluetooth modult is.

esp32_1_1.jpg

A blog az én útkeresésemet mutatja meg. Alap Arduinos ismeretekkel próbálok összehozni projekteket az ESP32-vel. Jelenleg egy ilyen ötletem van amit mindenképp megakarok csinálni, de erről majd később.

süti beállítások módosítása