Sisällysluettelo:
- Vaihe 1: Rakennusympäristön luominen
- Vaihe 2: Hanki lähdekoodi, määritä ja rakenna
- Vaihe 3: Liitä laitteistokomponentit
- Vaihe 4: Flash ja Run
- Vaihe 5: Vuorovaikutus
- Vaihe 6: Toteutustiedot
Video: WiFi LED -nauha + lämpötila -anturi ESP8266: 6 askelta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tässä opetusohjelmassa kuvataan vaiheet ESP8266: n määrittämiseksi ja sen saamiseksi puhumaan sekä lämpötila -anturille että LED -nauhalle, samalla kun se voi myös vastaanottaa tuloja ja lähettää lähtöä MQTT: n kautta WiFi: n kautta. Hanke tehtiin Cal Poly San Luis Obispossa syksyllä 2016 pidetylle kurssille- CPE 439: Real Time Embedded Systems. Yleisenä tavoitteena oli osoittaa, kuinka helppoa on luoda Internetiin yhdistetty "asia" halvalla laitteistolla.
Tarvittavat tarvikkeet/laitteet:
- NodeMCU ESP8266 dev -levy
- WS2812B LED -nauha
- MAX31820 Lämpötila -anturi
- Leipälauta
- 4,7 K ohmin vastus
- 220 ohmin vastus
- hyppyjohtimet
- mikro-usb-kaapeli
- PC (tai virtuaalikone), jossa on linux (esim. Ubuntu)
Oletukset/edellytykset:
- kokemusta komentorivityökalujen käytöstä ja pakettien asentamisesta debian-pohjaiseen distroon
- perustiedot Makefile -syntaksista
- liitäntäjohdot
Vaihe 1: Rakennusympäristön luominen
Projektin luomiseksi sinun on asennettava koneellesi esp-open-sdk. Seuraa linkkiä ja lue asennusohjeet. Lyhyesti sanottuna teet joitain sudo apt-get -komentoja riippuvuuksien asentamiseksi, git-klooni-toistuva esp-open-sdk-kloonaukseen/lataamiseen ja lopuksi make-komento esp-open-sdk: n luomiseksi.
Katso minua
Vaihe 2: Hanki lähdekoodi, määritä ja rakenna
Nyt kun esp-open-sdk on rakennettu, kloonaa projektivarasto.
git-klooni
Vaihda projektihakemistoon, luo.local -kansio ja kopioi esimerkkiasetukset.
cd esp-rtos-testit
mkdir -p.local cp settings.example.mk.local/settings.mk
Avaa nyt.local/settings.mk millä tahansa tekstieditorilla ja muuta seuraavia asetuksia:
- OPENSDK_ROOT: Absoluuttinen polku vaiheessa 1 rakentamasi esp-open-sdk: n sijainnille
- WIFI_SSID: WiFi -verkon SSID
- WIFI_PASS: WiFi -verkon salasana
- PIXEL_COUNT: WS2812B -LED -nauhan pikselimäärä
Huomautus: Koska tässä projektissa käytetään SPI: tä LEDien ohjaamiseen ja NodeMCU 3.3v: n toimittamiseen, luultavasti et pysty käyttämään enempää kuin ~ 60 LEDiä.
Huomautus: Muita asetuksia ei tarvitse muuttaa, mutta ne voidaan haluttaessa muuttaa. On suositeltavaa pitää tehtäväprioriteettien järjestys. Mitä pienempi prioriteettinumero, sitä pienempi tehtävän prioriteetti.
Rakenna nyt projekti:
tee -C esimerkkejä/cpe439
Jos kaikki on asetettu oikein, sen pitäisi alkaa kääntää. Lopussa sinun pitäisi nähdä:
Laiteohjelmisto/cpe439.bin luotu
Katso minua
Vaihe 3: Liitä laitteistokomponentit
Nyt kun koodi on koottu, on aika yhdistää oheislaitteemme.
Kiinnitä ensin NodeMCU leipälevylle ja tee sitten liitännät kaavion mukaisesti hyppyjohtimilla.
Pari asiaa on otettava huomioon:
- Tärkeää: WS2812B-tietolinja ei ole kaksisuuntainen. Jos tarkastelet tarkasti nauhan LED -puolen merkintöjä, näet pieniä nuolia, jotka osoittavat yhteen suuntaan. NodeMCU: n D7: n lähdön on oltava suunnassa WS2812B: hen samalla tavalla kuin suuntamerkki, jonka näet kaaviosta tarkasti.
- WS2812B: n mukana tulevien liittimien mukaan saatat joutua tekemään joitain muutoksia, jotta ne voidaan liittää turvallisesti leipälevyyn. Voit myös käyttää alligaattoripidikkeitä liittääksesi ne leipälevyyn sopiviin hyppyjohtoihin.
- MAX31820-nastoilla on pienempi nousu ja ne ovat ohuempia kuin tavalliset 0,1 "/2,54 mm: n puserot, joten niiden yhdistäminen on hankalaa. Yksi tapa kiertää tämä on käyttää naaras-uros-hyppyjohtimia, irrota muovikotelo naaraspuolelta, purista sitten pihdeillä naarasliitinten päät tiukasti pienempien MAX31820 -nastojen ympärille.
Tarkista liitännät ennen NodeMCU: n käynnistämistä, jotta osat eivät vahingoitu.
Vaihe 4: Flash ja Run
Vilkkuu
Kun kaikki laitteistot on kytketty, kytke NodeMCU -virtalähde ja salama seuraavalla komennolla:
tee flash -C esimerkkejä/cpe439 ESPPORT =/dev/ttyUSB0
/dev/ttyUSB0 on sarjakomponentti, jonka alla NodeMCU: n pitäisi näkyä. Jos sinulla on kytketty muita sarjalaitteita, se saattaa näkyä muodossa /dev /ttyUSB1 tai jokin muu numero. Voit tarkistaa tämän komennon suorittamisen kahdesti, kerran NodeMCU: n irrotettuna ja kerran sen ollessa kytkettynä, ja vertailla eroa:
ls /dev /ttyUSB*
Toinen ongelma, jonka saatat kohdata, on se, ettei sinulla ole lupaa käyttää laitetta. Kaksi tapaa korjata tämä on:
-
Lisää käyttäjä soittoryhmään:
sudo adduser $ (whoami) -valinta
- chmod tai chown the device:
sudo chmod 666 /dev /ttyUSB0 sudo chown $ (whoami): $ (whoami) /dev /ttyUSB0Ensimmäinen menetelmä on edullinen, koska se on pysyvä ratkaisu.
Juoksu
Kun flash -komento on suoritettu onnistuneesti, laite käynnistyy välittömästi ja alkaa suorittaa käännettyä koodia. Voit milloin tahansa vilkkumisen jälkeen suorittaa seuraavan komennon katsellaksesi sarjalähtöä:
python3 -m serial.tools.miniterm --eol CRLF --exit -char 003 /dev /ttyUSB0 500000 --raw -q
Voit säästää aikaa lisäämällä tämän ~/.bashrc -tiedostoosi:
alias nodemcu = 'python3 -m serial.tools.miniterm --eol CRLF -exit -char 003 /dev /ttyUSB0 500000 --raw -q'
.. jonka avulla voit yksinkertaisesti kirjoittaa "nodemcu" kyseisen komennon aliakseksi.
Jos kaikki on määritetty oikein, LED -nauhan pitäisi syttyä vihreänä, ja sarjassa sinun pitäisi nähdä WiFi -yhteys, saada IP -osoite, muodostaa yhteys MQTT: hen ja viestit, että lämpötilatietoja työnnetään ulos.
yhdistetty MyWiFiSSID, kanava 1dhcp client start… 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_task: status = 5xQueueQuet: (Uudelleen) yhdistäminen MQTT -palvelimeen test.mosquitto.org… xQueueReception +25.50xQueueSend ok done
Vaihe 5: Vuorovaikutus
Olettaen, että laitteesi on muodostanut yhteyden WiFi -verkkoon ja MQTT -välittäjään, voit lähettää ja vastaanottaa tietoja NodeMCU: sta MQTT: n avulla. Asenna mosquitto -asiakaspaketti, jos et ole jo tehnyt niin:
sudo apt-get install mosquitto-clientit
Sinun pitäisi nyt pystyä käyttämään mosquitto_pub- ja mosquitto_sub -ohjelmia kuoristasi.
Lämpötilapäivitysten vastaanottaminen
Saadaksemme lämpötilatietoja haluamme käyttää mosquitto_sub -komentoa tilataksemme aiheen, johon NodeMCU julkaisee.
mosquitto_sub -h test.mosquitto.org -t /cpe439 /temp
Sinun pitäisi nähdä lämpötilatiedot (celsiusasteina), jotka saapuvat terminaaliin.
+25.87+25.93+25.68…
LED -nauhan värin asettaminen etänä
Yksinkertaista sanomamuotoa käytetään lähettämään RGB -arvot NodeMCU: lle MQTT: n kautta. Komennomuoto näyttää tältä:
r: RRRg: GGGb: BBB ~
Jos RRR, GGG, BBB vastaavat lähetettävän värin RGB-arvoja (0-255). Käytämme komennon lähettämiseen komentoa mosquitto_pub. Tässä muutamia esimerkkejä:
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
Jos haluat olla luova, etsi verkosta tällainen värinvalitsin ja muokkaa komentoa valitsemallasi RGB-arvolla.
Varo
Tämän projektin aiheiksi on asetettu /cpe439 /rgb ja /cpe439 /temp julkisessa MQTT -välittäjässä, mikä tarkoittaa, että mikään ei estä jotakuta muuta julkaisemasta tai tilaamasta samoja aiheita kuin sinä. Jos haluat kokeilla asioita, julkisen välittäjän käyttäminen on hyvä asia, mutta vakavammissa projekteissa haluat muodostaa yhteyden välittäjään salasanasuojauksella tai käyttää omaa välittäjääsi palvelimella.
Vaihe 6: Toteutustiedot
Onewire
ESP8266 -laitteessa on vain yksi ydin, joten pitkät, estävät tehtävät, kuten odottaminen 750 ms, ennen kuin lämpötila -anturi suorittaa lämpötilamittauksen, johtavat normaalisti siihen, että WiFi ei toimi kunnolla ja ehkä jopa kaatuu. FreeRTOS -paradigmassa kutsut vTaskDelay (): tä käsittelemään nämä pitkät odotukset, mutta lukemisten ja kirjoitusten välillä tarvitaan myös paljon lyhyempiä odotuksia, jotka ovat lyhyempiä kuin FreeRTOS -järjestelmän rasti, joten niitä ei voida välttää vTaskDelay (): n avulla. Näiden kiertämiseksi myös tämän projektin onewire-ohjain on kirjoitettu ajamaan pois tilakoneelta, jota ohjaa ESP8266: n laitteistoajastin, joka voi laukaista tapahtumia jopa 10 mikrosekunnin välein, mikä on lyhyin tarvittava aika yhden langan luku-/kirjoitustoimintojen välillä. Useimmat muut toteutukset käyttävät estävää kutsua delay_us () tai vastaavaa käsittelemään tätä, mutta jos käytät jatkuvasti lämpötilapäivityksiä, kaikki nämä viiveet alkavat kasvaa, mikä johtaa vähemmän reagoivaan sovellukseen. Tämän koodin osan lähde sijaitsee extras/onewire -kansiossa.
WS2812B
ESP8266 -laitteessa ei ole vakiolaitteistovaihtoehtoja PWM: lle riittävän nopeasti LED -nauhojen ajamiseen 800 kHz: n taajuudella. Tässä projektissa käytetään SPI MOSI -tappia LEDien ohjaamiseen. Säätämällä SPI: n kellotaajuutta ja muuttamalla SPI: n hyötykuormaa voit saavuttaa melko luotettavan ohjauksen jokaisesta yksittäisestä LEDistä. Tämä menetelmä ei ole ilman virheitä- yhden LED-valon tulee olla 5 V: n virtalähteellä ja tasonvaihtaja on lisättävä SPI-nastan lähtöön. Mutta 3.3V toimii. Toiseksi on virheitä, jotka johtuvat epätäydellisestä ajoituksesta SPI -menetelmän avulla. Ja kolmanneksi, nyt et voi käyttää SPI: tä mihinkään muuhun. Lisätietoja tästä menetelmästä löytyy täältä, ja tämän koodin osan lähde sijaitsee extras/ws2812 -kansiossa.
Luotettavampi tapa LED -nauhojen ajamiseen on käyttää i2: ita. Tällä menetelmällä on kuitenkin paljon sirukohtaisia hakkereita, joten SPI näytti olevan parempi vaihtoehto oppimisharjoituksena.
Suositeltava:
Huoneen lämpötila Internetin kautta BLYNK ESP8266 & DHT11: 5 vaihetta (kuvilla)
Huonelämpötila Internetin välityksellä BLYNK ESP8266 & DHT11: Hei kaverit, tänään teemme huonelämpötilamittarin, jonka avulla voimme valvoa huoneitamme kaikkialta maailmasta ja käyttää tätä varten BLYNK IoT -levymuotoa ja käytämme DHT11 huonelämpötilan lukemiseen, käytämme ESP8266: a
Korkeus, paine ja lämpötila Raspberry Pi: n avulla MPL3115A2: 6 askelta
Korkeus, paine ja lämpötila Raspberry Pi: n avulla MPL3115A2: n kanssa: Kuulostaa mielenkiintoiselta. Se on täysin mahdollista tänä aikana, kun me kaikki olemme siirtymässä IoT -sukupolveen. Elektroniikkafriikina olemme leikkineet Raspberry Pi: n kanssa ja päätimme tehdä mielenkiintoisia projekteja tämän tiedon avulla. Tässä projektissa aiomme
Lämpötila CubeSat Ben & Kaiti & Q Tunti 1: 8 askelta
Lämpötila CubeSat Ben & Kaiti & Q Tunti 1: Oletko koskaan halunnut tehdä itse jotain, joka voidaan lähettää avaruuteen ja mitata toisen planeetan lämpötila? Lukion fysiikan luokalla meidät määrättiin rakentamaan CubeSat, jossa on toimiva arduino, ja pääkysymys Kuinka voimme
ESP32 -pohjainen M5Stack M5stick C -säämonitori, jossa DHT11 - M5stick-C: n lämpötila- ja kosteusindeksin seuranta DHT11: 6 askelta
ESP32 -pohjainen M5Stack M5stick C -säämonitori, jossa DHT11 | M5stick-C: n lämpötilan kosteus- ja lämpöindeksin seuranta DHT11: llä: Hei kaverit, tässä ohjeessa opimme liittämään DHT11-lämpötila-anturin m5stick-C: hen (m5stackin kehityskortti) ja näyttämään sen m5stick-C: n näytöllä. Joten tässä opetusohjelmassa luemme lämpötilan, kosteuden ja amp; lämmitän
WiFi IoT lämpötila- ja kosteusanturi. Osa: 8 IoT, koti -automaatio: 9 vaihetta
WiFi IoT lämpötila- ja kosteusanturi. Osa: 8 IoT, kotiautomaatio: johdanto Tämä artikkeli dokumentoi aikaisemman Instructable: Pimping -palvelun käytännön kestävyyden ja kehityksen eteenpäin. Osa 4: IoT, kotiautomaatio, mukaan lukien kaikki tarvittavat ohjelmistotoiminnot onnistumisen mahdollistamiseksi