Bár jómagam elégedett vagyok az ESPEasy és az ESP8266 által nyújtott lehetőségekkel, de nem kerülte el a figyelmemet, hogy sokan viszolyognak a WiFi-s DIY megoldásoktól. És mivel én is el tudok képzelni olyan megoldást, ahol egy LAN kábel közelsége praktikusabbá tenne egy vezetékes eszközt, így hát elkezdtem nézelődni.
Így akadtam az ArduinoEasy nevű variánsára az ESPEasy-nek, ami a korábbi stabil változat portolása AVR rendszerre. A mérete jóval kisebb, valamint a menüje is egyszerűbb a manapság megszokottnál, de működik.
Az eredeti Arduino Mega 2560-ra készült egy LAN fejlesztői panellal kiegészítve, ami így együtt nemcsak, hogy se nem olcsó, de se nem kisfogyasztású, nem is gyors, hely is alig van rajta: mind flash tárhely, mind memória tekintetében szűkös a platform. (különösen a 8KB RAM kevéske egy ESPEasy jellegű programnak, ami bizony instabilitáshoz vezet, erre fordításnál az Arduino IDE fel is hívja a figyelmet, aki nem hiszi, próbálja ki nyugodtan)
Így nézne ki az eredeti, ósdi szörnyeteg, ha valaki meg akarná vásárolni:
És hogy ne csak a levegőbe beszéljek, íme pár összehasonlító paraméter a szóban forgó eszközökről, és az általam helyettesítő-eszközként talált STM32 panelekről:
Arduino Mega 2560 | ESP8266-01S | ESP8266-12 „D1 Mini” | ESP32 | STM32F103CBT6 „Maple Mini” | STM32F103RCT6 „Generic Board – Blue Button” | |
Órajel | 16MHz | 80/160 MHz | 80/160 MHz | 160/240MHz | 72MHz | 72MHz |
Flash | 256KB | 1MB | 1/4MB | 2/4MB | 128 KB | 256KB |
RAM | 8KB | 32KB +80KB | 32KB +80KB | 520KB | 20KB | 48KB |
Digital IO | 54 | 4 | 11 | 22 (+4 input only) | 34 | 51 |
PWM | 15 | 4 | 9 | 16 | 12 | bármelyik láb |
Analog in | 16 | 0 | 1 | 18 | 9 | 21 |
Ár | 2 000 Ft | 400 Ft | 700 Ft | 1 200 Ft | 1 000 Ft | 1 800 Ft |
Hálózati illesztés | +1500 Ft (W5100 Ethernet Shield) | Beépített WiFi 2.4Ghz | Beépített WiFi 2.4Ghz | Beépített WiFi 2.4Ghz | +1000 Ft (W5500 LAN) | +1000 Ft (W5500 LAN) |
Firmware | ArduinoEasy | ESPEasy | ESPEasy | ESPEasy32 / uPyEasy | ArduinoEasy-STM32fix | ArduinoEasy-STM32fix |
Erős volt a kísértés, hogy az 1000Mhz-es és 512MB RAM-al rendelkező Raspberry Pi Zero W-t is szerepeltessem a táblázatban (hiszen az RPIEasy-vel gyakorlatilag bármire használható, amire a fentiek), de nem lett volna sportszerű.
Aki azt gondolná, hogy oké, az Arduino egy lassú eszköz, de biztos kevesebbet fogyaszt, részben igaza van. Maga az Arduino az elhanyagolható teljesítményével valóban elhanyagolható fogyasztású, viszont ha a W5100 modult rákötjük ez máris 5V 180mA-re ugrik!
Csak tájékoztatásképpen: egy ESP8266 5V/40mA körül fogyaszt, egy RPI Zero W pedig 5V/80mA átlagban.. és hasonló a helyzet persze az STM32+W5500 kombinációval, ami az alapértelmezett 100M LAN kapcsolaton 5V140mA körül fogyaszt, ha pedig azt lejjebb állítjuk 10M sebességre, úgy a fogyasztás is lemegy az RPI 80mA-es szintjére.
Persze a kábeles eszközöknek a tápellátása is kábelen jön, így a fogyasztás ritkán kritikus szempont, ennek előnye inkább a WiFi-vel szemben a rádiós lehallgatás és hatótávon belülről történő hálózati feltörések elleni védelem.
Aki nem érzi késznek magát belevetni az Arduino IDE rejtelmes világába, inkább vegyen egy LAN Controller 3.0-át, amit mellesleg szintén STM32 alapú és MQTT-t is tud, bár az egész zárt forrású, ám kész megoldás.. a többiek folytassák az olvasást, ha kíváncsiak milyen mély a nyúl ürege.
A szükséges lépések:
- Arduino IDE telepítése
- STM32 Arduino core telepítése (több is létezik, csak EZ a fajta támogatja az USB feltöltést, és az RCT, RET alaplapokat)
- STM32-re patchelt ArduinoEasy letöltés, fordítás, majd feltöltés a lapra (miniUSB kábellel Arduino-ból, feltételezve a bootloader meglétét)
Ahogy a táblázatból is látható, a Maple Mini-nek azért a 128k flash tárhelye nem túl tágas, főleg aki követi a kurrens ESPEasy kiadásokat, tudja, hogy bőven túl vannak a 600KB méreten.. a régebbi ArduinoEasy viszont, mivel eleve kisebb kapacitású eszközökhöz készült, nagyjából 160KB méretű binárisra fordul, amit különböző huszárvágásokkal (DEFINE feature sorok módosítása fordítás előtt a kódban) le lehet minimalizálni 110KB méretre, ami már felfér a Maple Mini-re.. ha minden opciót engedélyezünk, a módosított STM32-es ArduinoEasy 200KB helyet kér. STM32F103-nál számolni kell azzal is, hogy a könnyű, USB-n keresztüli feltöltést biztosító, úgynevezett "bootloader" gyárilag 20KB méretű, amit lecserélve a 8KB-s bootloader 2.0-ra értékes kódhelyet nyerhetünk! (elméletileg a bootloader el is hagyható, ez esetben az USB-s feltöltést nem tudjuk használni persze utána, csak külső UART-USB programozóval)
Kell még az adatok tárolására úgynevezett adatpartíció is, Arduino Mega 2560 esetében ez az Ethernet Shield-be helyezett SD kártyán tárolódik, ami bár nem rossz ötlet, de én személy szerint kihagynám az extra alkatrészeket, meg a LAN kártyával osztott használatú SPI-t.
Normál ESPEasy esetében 128KB-ot foglal az adatpartíció a flash tárhely végén (SPIFFS). STM32-nél hasonló módon faék egyszerűségű megoldással a flash tárhely végén tárolhatjuk a 4-12KB méretű (erősen csökkentett) adatpartíciót. Vagyis maximálisan a fordított kód mérete Maple Mini esetében 128-4-8=116KB lehet. Ebbe példának okáért a Domoticz MQTT controller plugin a maga 48KB méretével semmiképpen nem fog beleférni, ne is számítsunk ilyesmire. (a sima HTTP viszont igen)
Ha minden opciót lefordítunk, akkor a kb 200KB-os kód után a 12KB-os (16 eszköz felvételére elegendő) adatpartíció nagyon szépen elfér a nagyobbik, "Blue Button" STM32F103RCT6 256K flash tárhelyén.. hát még az attól alig eltérő, 512K flash tárhellyel szerelt STM32F103RET6-on, ami cirka 50Ft-al kerül többe! (érdekes módon nekem mind a kettő nevezett eszköz egyaránt 512K flash-el érkezett)
Az STM32 "Maple Mini" és az STM32 "Blue Button"-ra történő Arduino fordítás és feltöltés részleteiről egy következő cikkben fogok kitérni. (természetesen, ahogy mindig, kizárólag Linux operációs rendszer segédletével)
Fontos infó: Mivel az STM32-n nincs ugye LAN csatlakozás, a külső W5500 modult SPI1-re (4,5,6,7 pinek) kell kötni fixen, ez nem változtatható.
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
Kommentezéshez lépj be, vagy regisztrálj! ‐ Belépés Facebookkal