Tartalomjegyzék:
- 1. lépés: Építési környezet létrehozása
- 2. lépés: Forráskód beszerzése, konfigurálása és létrehozása
- 3. lépés: Csatlakoztassa a hardverkomponenseket
- 4. lépés: Villanás és futtatás
- 5. lépés: Interakció
- 6. lépés: A megvalósítás részletei
Videó: WiFi LED szalag + hőmérséklet -érzékelő ESP8266 -tal: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ez az oktatóanyag leírja az ESP8266 beállításának lépéseit, és a hőmérséklet -érzékelővel és a LED -szalaggal való beszélgetést, miközben képes bemenetet fogadni és kimenetet küldeni MQTT -vel WiFi -n keresztül. A projekt a Cal Poly San Luis Obispo-ban 2016 őszén tartott tanfolyamra készült- CPE 439: Valós idejű beágyazott rendszerek. Az általános cél az volt, hogy bemutassák az internethez csatlakoztatott "dolog" egyszerű létrehozását olcsó hardverrel.
Szükséges kellékek/felszerelések:
- NodeMCU ESP8266 dev tábla
- WS2812B LED szalag
- MAX31820 Hőmérséklet -érzékelő
- Kenyeretábla
- 4.7K ohmos ellenállás
- 220 ohmos ellenállás
- jumper vezetékek
- mikro-usb kábel
- Linuxot futtató számítógép (vagy virtuális gép) (pl. Ubuntu)
Feltételezések/előfeltételek:
- tapasztalat a parancssori eszközök használatában és a csomagok telepítésében egy debian alapú disztróban
- a Makefile szintaxisának alapvető megértése
- összekötő vezetékek
1. lépés: Építési környezet létrehozása
A projekt felépítéséhez az esp-open-sdk telepítése szükséges a gépre. Kövesse a linket, és olvassa el az építési utasításokat. Röviden, néhány sudo apt-get parancsot kell végrehajtania a függőségek telepítéséhez, egy git klónt-az esp-open-sdk klónozásához/letöltéséhez, végül egy make parancsot az esp-open-sdk létrehozásához.
Nézz engem
2. lépés: Forráskód beszerzése, konfigurálása és létrehozása
Most, hogy az esp-open-sdk felépült, klónozza a projekt lerakatát.
git klón
Váltson át a projektkönyvtárba, hozzon létre egy.local mappát, és másolja a példa beállításait.
cd esp-rtos-tesztek
mkdir -p.local cp settings.example.mk.local/settings.mk
Most nyissa meg a.local/settings.mk fájlt bármilyen szövegszerkesztővel, és módosítsa a következő beállításokat:
- OPENSDK_ROOT: Az 1. lépésben felépített abszolút útvonal az esp-open-sdk helyéhez
- WIFI_SSID: A WiFi hálózat SSID -je
- WIFI_PASS: A WiFi hálózat jelszava
- PIXEL_COUNT: A képpontok száma a WS2812B LED szalagon
Megjegyzés: Mivel ez a projekt SPI -t használ a LED -ek meghajtására, és a NodeMCU 3.3v -t használja azok ellátására, valószínűleg nem lesz képes ~ 60 LED -nél többet meghajtani.
Megjegyzés: A többi beállítást nem kell megváltoztatni, de szükség esetén megteheti. Ajánlott a feladat prioritások sorrendjének betartása. Minél alacsonyabb a prioritási szám, annál alacsonyabb a feladat prioritása.
Most építse fel a projektet:
készíts -C példákat/cpe439
Ha minden megfelelően van beállítva, akkor el kell kezdeni a fordítást. A végén látni kell:
Sikeresen létrehozta a firmware/cpe439.bin fájlt
Nézz engem
3. lépés: Csatlakoztassa a hardverkomponenseket
Most, hogy a kód össze van állítva, ideje csatlakoztatni a perifériáinkat.
Először ragassza fel a NodeMCU -t a kenyértáblára, majd az áthidaló huzalokkal kösse össze a csatlakozásokat az ábrán látható módon.
Pár dolog, amit tudnia kell:
- Fontos: A WS2812B adatvonal nem kétirányú. Ha alaposan megnézi a szalag LED oldalán lévő jelöléseket, akkor egy kis nyilakat kell látnia, amelyek egy irányba mutatnak. A NodeMCU D7 kimenetének ugyanúgy kell a WS2812B irányába haladnia, mint az irányjelzőnek, amelyet a diagramon láthat, ha alaposan megnézi.
- Attól függően, hogy a WS2812B milyen csatlakozókat tartalmaz, szükség lehet bizonyos módosítások elvégzésére, hogy biztonságosan csatlakozzanak a kenyértáblához. Alligátorcsipeszeket is használhat, hogy összekapcsolja őket a kenyérlapon használható áthidaló kábelekkel.
- A MAX31820 csapok kisebb dőlésszögűek, és vékonyabbak, mint a szabványos 0,1 "/2,54 mm-es áthidalók, ezért bonyolult a csatlakoztatásuk. Ennek egyik módja a női-férfi áthidaló vezetékek használata, a műanyag tok eltávolítása a hüvely oldaláról, majd néhány fogó segítségével szorítsa meg szorosan a női jumper végét a kisebb MAX31820 csapok körül.
A NodeMCU bekapcsolása előtt ellenőrizze újra a csatlakozásokat, nehogy megsérüljenek az alkatrészek.
4. lépés: Villanás és futtatás
Villog
Ha minden hardver csatlakoztatva van, csatlakoztassa a NodeMCU -t és villanjon a következő paranccsal:
készíts flash -példákat/cpe439 ESPPORT =/dev/ttyUSB0
A/dev/ttyUSB0 a soros com, amely alatt a NodeMCU -nak meg kell jelennie. Ha más soros eszközt is csatlakoztatott, akkor az /dev /ttyUSB1 vagy más számként jelenik meg. Ellenőrizze, hogy kétszer futtathatja -e ezt a parancsot, egyszer a NodeMCU kihúzva, egyszer pedig csatlakoztatva, és hasonlítsa össze a különbséget:
ls /dev /ttyUSB*
Egy másik probléma, amellyel találkozhat, nem rendelkezik hozzáféréssel az eszközhöz. Ennek két módja van:
-
Adja hozzá felhasználóját a tárcsázási csoporthoz:
sudo adduser $ (whoami) tárcsázás
- chmod vagy válassza ki az eszközt:
sudo chmod 666 /dev /ttyUSB0 sudo chown $ (whoami): $ (whoami) /dev /ttyUSB0Az első módszer előnyös, mivel állandó megoldás.
Futás
A flash parancs sikeres futtatása után az eszköz azonnal elindul, és elkezdi futtatni a lefordított kódot. A villogás után bármikor futtathatja a következő parancsot a soros kimenet megtekintéséhez:
python3 -m serial.tools.miniterm --eol CRLF --exit -char 003 /dev /ttyUSB0 500000 --raw -q
Idő megtakarítása érdekében hozzáadhatja ezt a ~/.bashrc fájlhoz:
alias nodemcu = 'python3 -m serial.tools.miniterm --eol CRLF -exit -char 003 /dev /ttyUSB0 500000 --raw -q'
.. amely lehetővé teszi, hogy egyszerűen írja be a "nodemcu" parancsot a parancs aliasaként.
Ha minden megfelelően van konfigurálva, akkor a LED -szalagnak zölden kell világítania, és a soros képernyőn látnia kell a WiFi -csatlakozást, az IP -cím beszerzését, az MQTT -hez való csatlakozást és a hőmérséklet -adatok kiszorítását.
csatlakozik a MyWiFiSSID -hez, az 1dhcp csatornaindító elindul… wifi_task: status = 1wifi_task: status = 1ip: 192.168.2.23, maszk: 255.255.255.0, gw: 192.168.2.1ws2812_spi_init okKéréshivatkozás: (Újra) csatlakozás az MQTT szerverhez test.mosquitto.org… xQueueReceived +25.50xQueueSend ok done
5. lépés: Interakció
Feltéve, hogy eszköze sikeresen csatlakozott a WiFi -hez és az MQTT -brókerhez, adatokat küldhet és fogadhat a NodeMCU -tól az MQTT segítségével. Ha még nem tette meg, telepítse a mosquitto client csomagot:
sudo apt-get install mosquitto-client
Most már használnia kell a mosquitto_pub és a mosquitto_sub programokat a héjából.
Hőmérséklet frissítések fogadása
A hőmérsékleti adatok fogadásához a mosquitto_sub paranccsal szeretnénk feliratkozni a témára, amelyhez a NodeMCU közzéteszi.
mosquitto_sub -h test.mosquitto.org -t /cpe439 /temp
Látnia kell a terminálra érkező hőmérsékleti adatokat (Celsius -ban).
+25.87+25.93+25.68…
A LED szalag színének távoli beállítása
Egy egyszerű üzenetformátumot használnak az RGB értékek elküldésére a NodeMCU -ra MQTT -n keresztül. A parancs formátuma így néz ki:
r: RRRg: GGGb: BBB ~
Ahol az RRR, GGG, BBB a küldeni kívánt szín RGB értékeinek (0-255) felel meg. A parancs elküldéséhez a mosquitto_pub parancsot használjuk. Íme néhány példa:
mosquitto_pub -h test.mosquitto.org -t /cpe439 /rgb -m 'r: 255g: 0b: 0 ~' # redmosquitto_pub -h test.mosquitto.org -t /cpe439 /rgb -m 'r: 0g: 255b: 0 ~ ' # greenmosquitto_pub -h test.mosquitto.org -t /cpe439 /rgb -m' r: 0g: 0b: 255 ~ ' # blue
Ha kreatív akar lenni, keressen egy online színválasztót, mint ez, és szerkessze a parancsot az Ön által választott RGB-értékkel.
Vigyázz
A projekt témái a /cpe439 /rgb és /cpe439 /temp értékre vannak állítva egy nyilvános MQTT brókeren, ami azt jelenti, hogy semmi sem akadályozza meg, hogy valaki más közzétegye vagy feliratkozzon ugyanazokra a témákra, mint te. Ha kipróbálja a dolgokat, nyilvános közvetítő használata jó, de komolyabb projektek esetén csatlakoznia kell egy jelszóvédett brókerhez, vagy saját brókerét kell futtatnia a szerveren.
6. lépés: A megvalósítás részletei
Onewire
Az ESP8266 csak 1 maggal rendelkezik, így a hosszú blokkoló feladatok, mint például a 750 ms -os várakozás a hőmérséklet -érzékelőre a hőmérsékletmérés elvégzéséhez, általában azt eredményezik, hogy a WiFi nem működik megfelelően, és esetleg összeomlik. A FreeRTOS paradigmában a vTaskDelay () hívja ezeket a hosszú várakozásokat, de sok rövidebb várakozási időre is szükség van, amelyek rövidebbek, mint a FreeRTOS rendszer kullancsai, és így nem kerülhetők el a vTaskDelay () használatával. Ezek elkerülése érdekében a projekt egyhuzalos illesztőprogramját úgy írták le, hogy lefusson egy állapot-gépről, amelyet az ESP8266 hardver időzítő hajt, amely akár 10 mikroszekundumonként is eseményeket válthat ki, ami történetesen a legrövidebb szükséges idő az egyhuzalos olvasási/írási műveletek között. A legtöbb más megvalósítás blokkoló hívást használ a delay_us () vagy hasonló kezeléséhez, de ha folyamatosan frissíti a hőmérsékletet, akkor ezek a késések összeadódnak, ami kevésbé reagáló alkalmazást eredményez. A kód ezen részének forrása az extras/onewire mappában található.
WS2812B
Az ESP8266 nem rendelkezik olyan szabványos hardver opciókkal a PWM számára, amelyek elég gyorsak ahhoz, hogy 800 kHz -es LED -csíkokat vezessenek. Ennek elkerülése érdekében ez a projekt az SPI MOSI tűt használja a LED -ek meghajtására. Az SPI órajelének beállításával és az SPI hasznos terhelésének megváltoztatásával meglehetősen megbízható vezérlést érhet el az egyes LED -ekről. Ez a módszer nem hibátlan- egy esetben a LED-eket 5 V-os áramforrásról kell táplálni, és egy szintváltót kell hozzáadni az SPI érintkező kimenetéhez. De a 3.3V működik. Másodszor, vannak hibák, amelyek az SPI módszerrel történő tökéletlen időzítés miatt következnek be. A harmadik pedig az, hogy az SPI -t semmi másra nem használhatja. A módszer további háttere itt található, és a kód ezen részének forrása az extras/ws2812 mappában található.
Megbízhatóbb módszer a LED szalagok meghajtására az i2 -k használata. Ez a módszer azonban sok chip-specifikus hack-et tartalmaz, így az SPI jobb választásnak tűnt tanulási gyakorlatként.
Ajánlott:
NodeMCU Lua Olcsó 6 $ kártya MicroPython hőmérséklet- és páratartalom -naplózással, Wifi és mobil statisztika: 4 lépés
NodeMCU Lua Olcsó 6 dolláros tábla MicroPython hőmérséklet- és páratartalom -naplózással, Wifi és mobil statisztikák: Ez alapvetően felhőjárás -állomás, ellenőrizheti a telefonon lévő adatokat, vagy használhat néhány telefont élő kijelzőként , a szobában, üvegházban, laborban, hűtőtérben vagy más helyeken
MicroPython olcsón 3 dollárért ESP8266 WeMos D1 Mini 2x hőmérséklet naplózáshoz, Wifi és mobil statisztikákhoz: 4 lépés
MicroPython olcsón 3 dollárért ESP8266 WeMos D1 Mini 2x hőmérséklet -naplózáshoz, Wifi -hez és mobil statisztikákhoz: Az apró, olcsó ESP8266 chip / eszköz segítségével teljesen ingyen naplózhatja a hőmérséklet adatait kint, szobában, üvegházban, laborban, hűtőhelyiségben vagy bármely más helyen. Ezt a példát használjuk a hűtési helyiség hőmérsékletének naplózására, kívül és belül. Az eszköz
ESP8266 NodeMCU hozzáférési pont (AP) webszerverhez DT11 hőmérséklet -érzékelővel és nyomtatási hőmérséklet és páratartalom a böngészőben: 5 lépés
ESP8266 NodeMCU hozzáférési pont (AP) webszerverhez DT11 hőmérséklet -érzékelővel és nyomtatási hőmérséklet és páratartalom a böngészőben: Sziasztok srácok, a legtöbb projektben ESP8266 -ot használunk, és a legtöbb projektben ESP8266 -ot használunk webszerverként, így az adatok hozzáférhetők bármilyen eszköz wifi -n keresztül az ESP8266 által üzemeltetett webszerver elérésével, de az egyetlen probléma az, hogy működő útválasztóra van szükségünk
ESP32 NTP hőmérséklet szonda főzési hőmérő Steinhart-Hart korrekcióval és hőmérséklet riasztással: 7 lépés (képekkel)
ESP32 NTP hőmérséklet szonda főzési hőmérő Steinhart-Hart korrekcióval és hőmérséklet riasztással: Még mindig úton van egy "közelgő projekt" befejezéséhez, "ESP32 NTP hőmérséklet szonda főzési hőmérő Steinhart-Hart korrekcióval és hőmérséklet riasztással" egy utasítás, amely bemutatja, hogyan adhatok hozzá NTP hőmérséklet -szondát, piezo b
WiFi hőmérséklet naplózó (ESP8266 esetén): 11 lépés (képekkel)
WiFi hőmérséklet -naplózó (ESP8266 -mal): Üdvözlöm, örülök, hogy itt láthatom. Remélem, hogy ebben az oktatóanyagban hasznos információkat talál. Bátran küldjön nekem javaslatokat, kérdéseket, … Íme néhány alapvető adat és a projekt gyors áttekintése. Mobil felhasználóknak: Videó. Tudassa velem, hogy