Përmbajtje:
- Hapi 1: Krijimi i një mjedisi të ndërtuar
- Hapi 2: Merrni Kodin Burimor, Konfiguroni dhe Ndërtoni
- Hapi 3: Lidhni Komponentët e Hardware
- Hapi 4: Flash dhe Run
- Hapi 5: Ndërveprimi
- Hapi 6: Detajet e zbatimit
Video: WiFi LED Rrip + Sensor Temperature Me ESP8266: 6 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
Ky tutorial përshkruan hapat për të ngritur një ESP8266 dhe për ta bërë atë të flasë si me një sensor të temperaturës ashtu edhe me shiritin LED, ndërsa gjithashtu të jetë në gjendje të marrë hyrje dhe të dërgojë dalje me MQTT përmes WiFi. Projekti u krijua për një kurs të marrë në Cal Poly San Luis Obispo në Vjeshtë 2016- CPE 439: Sistemet e Integruara në Kohë Reale. Qëllimi i përgjithshëm ishte të demonstronte lehtësinë e krijimit të një "gjëje" të lidhur me internetin me pajisje të lira.
Furnizimet/Pajisjet e kërkuara:
- NodeMCU ESP8266 bordi dev
- Shirit LED WS2812B
- MAX31820 Sensori i temperaturës
- Breadboard
- Rezistencë 4.7K Ohm
- Rezistencë 220 ohm
- telat e kërcyesit
- kabllo mikro-usb
- PC (ose VM) që punon me Linux (p.sh. Ubuntu)
Supozimet/Parakushtet:
- përvojë me përdorimin e mjeteve të linjës komanduese dhe instalimin e paketave në një shpërndarje me bazë debian
- të kuptuarit bazë të sintaksës Makefile
- telat lidhës
Hapi 1: Krijimi i një mjedisi të ndërtuar
Për të ndërtuar projektin, do t'ju duhet esp-open-sdk i instaluar në kompjuterin tuaj. Ndiqni lidhjen dhe lexoni udhëzimet e krijimit. Shkurtimisht do të bëni disa komanda sudo apt-get për të instaluar varësitë, një klon git-rekursiv për të klonuar/shkarkuar esp-open-sdk, dhe së fundi një komandë make për të ndërtuar esp-open-sdk.
Me shiko
Hapi 2: Merrni Kodin Burimor, Konfiguroni dhe Ndërtoni
Tani që esp-open-sdk është ndërtuar, klononi depon e projektit.
git klon
Ndryshoni në drejtorinë e projektit, krijoni një dosje.local dhe kopjoni cilësimet e shembullit.
cd esp-rtos-teste
mkdir -p. cilësimet e cp lokale. shembull.mk. lokal/settings.mk
Tani hapni.local/settings.mk me çdo redaktues teksti dhe ndryshoni cilësimet e mëposhtme:
- OPENSDK_ROOT: Rruga absolute për vendndodhjen e esp-open-sdk që keni ndërtuar në hapin 1
- WIFI_SSID: SSID -i i rrjetit tuaj WiFi
- WIFI_PASS: Fjalëkalimi i rrjetit tuaj WiFi
- PIXEL_COUNT: Numri i pikselëve në shiritin tuaj LED WS2812B
Shënim: Meqenëse ky projekt përdor SPI për të drejtuar LED -të dhe përdor NodeMCU 3.3v për t'i furnizuar ato, ndoshta nuk do të jeni në gjendje të drejtoni më shumë se LED 60 LED.
Shënim: Cilësimet e tjera nuk kanë nevojë të ndryshohen, por mund të ndryshojnë sipas dëshirës. Rekomandohet të mbani rendin e përparësive të detyrës. Sa më i ulët numri i përparësisë, aq më i ulët është përparësia e detyrës.
Tani ndërtoni projektin:
bëj -C shembuj/cpe439
Nëse gjithçka është vendosur si duhet, duhet të fillojë përpilimin. Në fund duhet të shihni:
Krijuar me sukses 'firmware/cpe439.bin'
Me shiko
Hapi 3: Lidhni Komponentët e Hardware
Tani që kodi është përpiluar, është koha për të lidhur pajisjet tona periferike.
Së pari, ngjiteni NodeMCU në tabelën e bukës, pastaj përdorni telat e kërcyesit për të bërë lidhjet siç tregohet në diagram.
Disa gjëra që duhet të keni parasysh:
- E rëndësishme: Linja e të dhënave WS2812B nuk është dy-drejtimëshe. Nëse shikoni nga afër shenjat në anën LED të shiritit, duhet të shihni shigjeta të vogla që tregojnë një drejtim. Dalja nga D7 e NodeMCU duhet të drejtohet në WS2812B në të njëjtën mënyrë si shënuesi i drejtimit, të cilin mund ta shihni në diagram nëse shikoni nga afër.
- Në varësi të llojit të lidhësve që vjen WS2812B juaj, mund t'ju duhet të bëni disa modifikime për t'i bërë ato të lidhen në mënyrë të sigurtë në tabelën e bukës. Ju gjithashtu mund të përdorni kapësa aligatori për t'i lidhur ato me kabllot e kërcyesit të aftë për bukë.
- Kunjat MAX31820 kanë një lartësi më të vogël dhe janë më të hollë se kërcyesit standard 0.1 "/2.54 mm, duke i bërë ato të ndërlikuara për t'u lidhur. Një mënyrë për këtë është përdorimi i telave të bluzave nga femra në meshkuj, heqja e kutisë plastike nga ana e femrës, pastaj përdorni disa pincë për të shtypur skajet e kërcyesit femër fort rreth kunjave më të vegjël MAX31820.
Kontrolloni dy herë lidhjet para se të ndizni NodeMCU në mënyrë që të mos dëmtoni përbërësit.
Hapi 4: Flash dhe Run
Ndezje
Me të gjithë pajisjet e lidhura, futni NodeMCU -në tuaj dhe ndizni me komandën e mëposhtme:
bëni flash -C shembuj/cpe439 ESPPORT =/dev/ttyUSB0
/dev/ttyUSB0 është komi serik nën të cilin NodeMCU duhet të shfaqet. Nëse keni pajisje të tjera serike të lidhura, mund të shfaqet si /dev /ttyUSB1 ose ndonjë numër tjetër. Për të kontrolluar, mund ta ekzekutoni këtë komandë dy herë, një herë me NodeMCU të shkyçur, dhe një herë me të në prizë, dhe krahasoni ndryshimin:
ls /dev /ttyUSB*
Një çështje tjetër që mund të hasni është të mos keni leje për të hyrë në pajisje. Dy mënyra për ta rregulluar këtë janë:
-
Shtoni përdoruesin tuaj në grupin e dialout:
sudo adduser $ (whoami) dialout
- chmod ose chown pajisjen:
sudo chmod 666 /dev /ttyUSB0 sudo chown $ (whoami): $ (whoami) /dev /ttyUSB0Metoda e parë preferohet pasi është një zgjidhje e përhershme.
Duke vrapuar
Pasi të keni ekzekutuar me sukses komandën flash, pajisja do të fillojë menjëherë dhe do të fillojë të ekzekutojë kodin e përpiluar. Në çdo moment pas ndezjes mund të ekzekutoni komandën e mëposhtme për të parë daljen serike:
python3 -m serial.tools.miniterm --eol CRLF --exit -char 003 /dev /ttyUSB0 500000 --raw -q
Për të kursyer kohë, mund ta shtoni këtë në skedarin tuaj ~/.bashrc:
alias nodemcu = 'python3 -m serial.tools.miniterm --eol CRLF --exit -char 003 /dev /ttyUSB0 500000 --raw -q'
..që ju lejon të shkruani thjesht "nodemcu" si alias për atë komandë.
Nëse gjithçka është konfiguruar si duhet, shiriti juaj LED duhet të ndizet jeshil dhe në serial duhet të shihni lidhjen WiFi, marrjen e një adrese IP, lidhjen me MQTT dhe mesazhet që të dhënat e temperaturës po nxirren jashtë.
i lidhur me MyWiFiSSID, fillimi i klientit të kanalit 1dhcp… wifi_task: status = 1wifi_task: status = 1ip: 192.168.2.23, maskë: 255.255.255.0, gw: 192.168.2.1ws2812_spi_init okRequest temp OKwifi_tasktttw: (Ri) lidhja me serverin MQTT test.mosquitto.org… xQueueReceive +25.50xQueueDërgo në rregullDërgo MQTT lidh… MQTTv311donexQueueReceive +25.56 xQueueSend në rregull
Hapi 5: Ndërveprimi
Duke supozuar se pajisja juaj është lidhur me WiFi dhe ndërmjetësi MQTT me sukses, do të jeni në gjendje të dërgoni dhe merrni të dhëna nga NodeMCU me MQTT. Nëse nuk e keni bërë ende, instaloni paketën e klientëve të mushkonjave:
sudo apt-get install mushkonja-klientë
Tani duhet të jeni në gjendje të përdorni programet mosquitto_pub dhe mosquitto_sub nga guaska juaj.
Marrja e përditësimeve të temperaturës
Për të marrë të dhënat e temperaturës, ne do të duam të përdorim komandën mosquitto_sub për t'u abonuar në temën të cilës NodeMCU po i publikon.
mosquitto_sub -h test.mosquitto.org -t /cpe439 /temp
Ju duhet të shihni të dhënat e temperaturës (në Celsius), që mbërrijnë në terminal.
+25.87+25.93+25.68…
Vendosja e ngjyrës së shiritit LED nga distanca
Një format i thjeshtë mesazhi përdoret për të dërguar vlera RGB në NodeMCU mbi MQTT. Formati i komandës duket kështu:
r: RRRg: GGGb: BBB
Aty ku RRR, GGG, BBB korrespondojnë me vlerat RGB (0-255) të ngjyrës që dëshironi të dërgoni. Për të dërguar komandën tonë, ne do të përdorim komandën mosquitto_pub. Ketu jane disa shembuj:
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 # ' # blu
Nëse doni të bëheni krijues, gjeni një zgjedhës ngjyrash në internet si ky dhe modifikoni komandën me çfarëdo vlere RGB që zgjidhni.
Kujdes
Temat në këtë projekt janë vendosur në /cpe439 /rgb dhe /cpe439 /temp në një ndërmjetës publik MQTT, që do të thotë se nuk ka asgjë që pengon dikë tjetër të botojë ose të regjistrohet në të njëjtat tema si ju. Për të provuar gjërat, përdorimi i një ndërmjetësi publik është mirë, por për projekte më serioze do të dëshironi të lidheni me një ndërmjetës me mbrojtje me fjalëkalim, ose të drejtoni ndërmjetësin tuaj në server.
Hapi 6: Detajet e zbatimit
Njëra -tjetra
ESP8266 ka vetëm 1 bërthamë, aq gjatë, duke bllokuar detyra të tilla si të presësh 750ms që sensori i temperaturës të kryejë një matje të temperaturës normalisht do të rezultonte që WiFi të mos funksiononte mirë, dhe ndoshta edhe një përplasje. Në paradigmën FreeRTOS, ju thërrisni vTaskDelay () për të trajtuar këto pritje të gjata, por ka edhe shumë pritje më të shkurtra që kërkohen midis leximeve dhe shkrimeve që janë më të shkurtra se shënimi i sistemit FreeRTOS, dhe kështu nuk mund të shmangen me vTaskDelay (). Për t'i kapërcyer këto, drejtuesi i njëtrajtshëm në këtë projekt u shkrua për të ikur nga një makinë shtetërore që drejtohet nga kohëmatësi harduerik i ESP8266, i cili mund të shkaktojë ngjarje aq të ulëta sa çdo 10 mikro-sekonda, që ndodh të jetë më i shkurtër. koha e kërkuar midis operacioneve të leximit/shkrimit të një teli. Shumica e zbatimeve të tjera përdorin një thirrje bllokuese për të delay_us () ose të ngjashme për ta trajtuar këtë, por nëse jeni duke marrë vazhdimisht përditësime të temperaturës, të gjitha ato vonesa fillojnë të shtohen, duke rezultuar në një aplikim më pak të përgjegjshëm. Burimi për këtë pjesë të kodit gjendet në dosjen shtesë/onewire.
GJ1812B
ESP8266 nuk ka asnjë mundësi standarde harduerike për PWM aq shpejt sa të drejtojë shirita LED në 800KHz. Për të shmangur këtë, ky projekt përdor kunjin SPI MOSI për të drejtuar LED -të. Duke rregulluar normën e orës së SPI dhe duke ndryshuar ngarkesën e SPI përreth, mund të arrini një kontroll mjaft të besueshëm të secilës LED individuale. Kjo metodë nuk është pa të metat e saj- për njërën LED dritat duhet të mundësohen me një burim 5V dhe një ndërrues niveli duhet shtuar në daljen e kunjit SPI. Por 3.3V funksionon. Së dyti, ka defekte që ndodhin për shkak të kohës së papërsosur duke përdorur metodën SPI. Dhe e treta tani nuk mund të përdorni SPI për asgjë tjetër. Sfond shtesë për këtë metodë mund të gjenden këtu, dhe burimi për këtë pjesë të kodit gjendet në dosjen extras/ws2812.
Një metodë më e besueshme për drejtimin e shiritave LED është përdorimi i2. Sidoqoftë, kjo metodë ka shumë hake specifike për çipet, kështu që SPI dukej të ishte një zgjedhje më e mirë si një ushtrim mësimi.
Recommended:
Ora Alarm Arduino Me Sensor Temperature: 5 Hapa
Ora Alarm Arduino Me Sensor Temperature: Arduino është mikrokontrollues shumë i lehtë dhe i lirë. dhe ndryshojnë lehtë për tu kontrolluar. Pra, çfarë do të prisni në këtë projekt … ne do të përdorim RTC cilësime aq të sakta të alarmit kohor, të cilat janë mjaft të larta për të zgjuar temperaturën e dhomës tuaj, nëse dëshironi të shikoni klikimin e videove
DIY: Mini Sensor i Kufirit të Montuar me Sensor Lëvizjeje të Fokusueshëm: 4 Hapa
DIY: Mini Sensor i Kufirit të Montuar me Sensor Lëvizjeje të Fokusueshëm: Përshëndetje. Disa kohë më parë unë i ndihmova mikut tim me konceptin e shtëpisë së zgjuar dhe krijova një mini kuti me sensorë me një dizajn të personalizuar që mund të montohej në tavan në vrimën 40x65mm. Kjo kuti ndihmon në: • matjen e intensitetit të dritës • matjen e lagështirës
ESP8266 Pika e hyrjes NodeMCU (AP) për Ueb -Server me Sensor Temperature DT11 dhe Temperatura dhe Lagështi Shtypi në Shfletues: 5 Hapa
ESP8266 NodeMCU Access Point (AP) për Web Server Me Sensor Temperature DT11 dhe Temperatura dhe Lagështi Shtypi në Shfletues: Përshëndetje djema në shumicën e projekteve ne përdorim ESP8266 dhe në shumicën e projekteve ne përdorim ESP8266 si një server në internet, kështu që të dhënat mund të arrihen në çdo pajisje mbi wifi duke hyrë në serverin e uebit të pritur nga ESP8266 por problemi i vetëm është se ne kemi nevojë për një ruter pune për
Matrix Led X4 MAX7219 + ESP8266 12E + Sensor DS18b20 (Temperatura): 6 hapa
Matrix Led X4 MAX7219 + ESP8266 12E + Sensor DS18b20 (Temperatura): Në këtë mundësi ne do të kryejmë një test të shpejtë në një matricë të udhëhequr me MAX7219 të integruar me modulin ESP8266 dhe kështu që nuk është shumë e thjeshtë ne do të lexojmë temperaturën e një sensori DS18B20.Në mësimet e ardhshme ne do ta integrojmë atë në pllaka të tjera
Rrip LED i aktivizuar me sensor lëvizjeje me kohëmatës: 6 hapa (me fotografi)
Rrip LED i aktivizuar me sensor lëvizjeje me kohëmatës: Përshëndetje të gjithëve! Jam vërtet i lumtur që po shkruaj një tjetër udhëzues tani. Ky projekt u bë kur unë u kontaktova nga një koleg udhëzues (?!) (David @dducic) disa muaj më parë duke kërkuar ndihmë në dizajn. Pra, këtu ishte specifikimi origjinal: & q