Orodha ya maudhui:
- Hatua ya 1: Kuunda Mazingira ya Kuunda
- Hatua ya 2: Pata Nambari ya Chanzo, Sanidi, na Ujenge
- Hatua ya 3: Unganisha vifaa vya vifaa
- Hatua ya 4: Flash na Run
- Hatua ya 5: Kuingiliana
- Hatua ya 6: Maelezo ya Utekelezaji
Video: Ukanda wa LED ya WiFi + Sensorer ya Joto Na ESP8266: Hatua 6
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:52
Mafunzo haya yanaelezea hatua za kuanzisha ESP8266 na kuifanya izungumze na sensorer ya joto na ukanda wa LED, wakati pia ikiweza kupokea pembejeo na kutuma pato na MQTT juu ya WiFi. Mradi huo ulifanywa kwa kozi iliyochukuliwa huko Cal Poly San Luis Obispo mnamo Fall 2016- CPE 439: Mifumo Iliyoingizwa ya Real Time. Lengo la jumla lilikuwa kuonyesha urahisi wa kuunda "kitu" kilichounganishwa na mtandao na vifaa vya bei rahisi.
Ugavi / Vifaa vinahitajika:
- NodeMCU ESP8266 bodi ya dev
- Ukanda wa LED wa WS2812B
- Sensor ya joto ya MAX31820
- Bodi ya mkate
- Kinga ya 4.7K ohm
- Kinga ya 220 ohm
- waya za kuruka
- kebo ndogo ya usb
- PC (au VM) inayoendesha linux (kwa mfano Ubuntu)
Mawazo / Vipaumbele:
- uzoefu wa kutumia zana za laini ya amri na kusanikisha vifurushi kwenye distro ya msingi wa debian
- uelewa wa kimsingi wa syntax ya Makefile
- kuunganisha waya
Hatua ya 1: Kuunda Mazingira ya Kuunda
Ili kujenga mradi, utahitaji esp-open-sdk iliyosanikishwa kwenye mashine yako. Fuata kiunga na usome maagizo ya ujenzi. Kwa kifupi utakuwa unafanya amri za kupata apt-apt kusanikisha utegemezi, git clone --recursive to clone / download esp-open-sdk, na mwishowe fanya amri ya kujenga esp-open-sdk.
Niangalie
Hatua ya 2: Pata Nambari ya Chanzo, Sanidi, na Ujenge
Sasa kwa kuwa esp-open-sdk imejengwa, onyesha hifadhi ya mradi.
clone ya git
Badilisha kwenye saraka ya mradi, unda folda ya.local, na nakili mipangilio ya mfano.
cd esp-rtos-vipimo
mkdir -p. mipangilio ya cp ya ndani. mfano.mk.local / mipangilio.mk
Sasa fungua.local / settings.mk na kihariri chochote cha maandishi na ubadilishe mipangilio ifuatayo:
- OPENSDK_ROOT: Njia kamili ya eneo la esp-open-sdk uliyoijenga katika hatua ya 1
- WIFI_SSID: SSID ya mtandao wako wa WiFi
- WIFI_PASS: Nenosiri la mtandao wako wa WiFi
- PIXEL_COUNT: Idadi ya saizi kwenye ukanda wako wa WS2812B LED
Kumbuka: Kwa kuwa mradi huu unatumia SPI kuendesha LED na kutumia NodeMCU 3.3v kuzisambaza, labda hautaweza kuendesha zaidi ya ~ 60 LEDs.
Kumbuka: Mipangilio mingine haiitaji kubadilishwa, lakini inaweza kuwa ikihitajika. Inashauriwa kuweka utaratibu wa vipaumbele vya kazi. Nambari ya kipaumbele inapungua, kipaumbele cha kazi kinapungua.
Sasa jenga mradi:
fanya -C mifano / cpe439
Ikiwa kila kitu kimewekwa kwa usahihi, inapaswa kuanza kukusanya. Mwishowe unapaswa kuona:
Imefanikiwa kuunda 'firmware / cpe439.bin'
Niangalie
Hatua ya 3: Unganisha vifaa vya vifaa
Sasa kwa kuwa nambari imekusanywa, ni wakati wa kuunganisha vifaa vyetu.
Kwanza, weka NodeMCU kwenye ubao wa mkate, kisha utumie waya za kuruka ili kufanya unganisho kama inavyoonyeshwa kwenye mchoro.
Mambo kadhaa ya kufahamu:
- Muhimu: Mstari wa data wa WS2812B sio wa pande mbili. Ikiwa unatazama kwa karibu alama kwenye upande wa LED wa ukanda, unapaswa kuona mishale midogo inayoelekeza mwelekeo mmoja. Pato kutoka kwa D7 ya NodeMCU inahitaji kuingia WS2812B sawa na alama ya mwelekeo, ambayo unaweza kuona kwenye mchoro ikiwa unatazama kwa karibu.
- Kulingana na aina gani ya viunganisho WS2812B yako inakuja nayo, huenda ukahitaji kufanya marekebisho kadhaa ili kuzifanya ziunganishwe salama kwenye ubao wa mkate. Unaweza pia kutumia klipu za alligator kuziunganisha na nyaya za jumper zinazoweza kutumia ubao wa mkate.
- Pini za MAX31820 zina lami ndogo na ni nyembamba kuliko kiwango cha kuruka cha 0.1 "/2.54mm, na kuzifanya kuwa ngumu kuunganika. Njia moja kuzunguka hii ni kutumia waya za kuruka za kike hadi za kiume, toa kasha la plastiki kutoka upande wa kike, kisha tumia koleo zingine kubana kuruka kwa kike kumalizika vizuri karibu na pini ndogo za MAX31820.
Angalia miunganisho kabla ya kuwezesha NodeMCU kuwasha ili isiharibu vifaa.
Hatua ya 4: Flash na Run
Kuangaza
Pamoja na vifaa vyote vilivyounganishwa, ingiza NodeMCU yako na uangaze na amri ifuatayo:
fanya flash -C mifano / cpe439 ESPPORT = / dev / ttyUSB0
/ dev / ttyUSB0 ni serial com ambayo NodeMCU inapaswa kuonyesha chini. Ikiwa una vifaa vingine vya serial vimeunganishwa, inaweza kuonekana kama / dev / ttyUSB1 au nambari nyingine. Kuangalia unaweza kukimbia amri hii mara mbili, mara moja na NodeMCU haijachomwa, na mara moja nayo imeingia, na kulinganisha tofauti:
ls / dev / ttyUSB *
Suala jingine unaloweza kukutana nalo ni kukosa ruhusa ya kufikia kifaa. Njia mbili za kurekebisha hii ni:
-
Ongeza mtumiaji wako kwenye kikundi cha kupiga simu:
mazungumzo ya sudo adduser $ (whoami)
- chmod au chown kifaa:
sudo chmod 666 / dev / ttyUSB0 sudo chown $ (whoami): $ (whoami) / dev / ttyUSB0Njia ya kwanza inapendelewa kwani ni suluhisho la kudumu.
Kimbia
Baada ya kutekeleza amri ya flash kwa mafanikio, kifaa kitaanza mara moja na kuanza kutumia nambari iliyokusanywa. Wakati wowote baada ya kuangaza unaweza kutumia amri ifuatayo kutazama pato la serial:
python3 -m serial.tools.miniterm -eol CRLF -exit-char 003 / dev / ttyUSB0 500000 -raw -q
Ili kuokoa wakati unaweza kuongeza hii kwenye faili yako ya ~ /.bashrc:
alias nodemcu = 'python3 -m serial.tools.miniterm -eol CRLF -exit-char 003 / dev / ttyUSB0 500000 -raw -q'
ambayo inakuwezesha kuandika tu "nodemcu" kama jina la amri hiyo.
Ikiwa kila kitu kimesanidiwa kwa usahihi, ukanda wako wa LED unapaswa kuwasha kijani, na kwenye serial unapaswa kuona unganisho la WiFi, pata anwani ya IP, unganisha na MQTT, na ujumbe ambao data ya joto inasukumwa nje.
iliyounganishwa na MyWiFiSSID, kituo cha 1dhcp mteja anza… wifi_task: status = 1wifi_task: status = 1ip: 192.168.2.23, mask: 255.255.255.0, gw: 192.168.2.1ws2812_spi_init okOquest temp OKwifi_task: status = 5xQueueReceivetTt 2553KekeKupokea: 25.43: (Re) unganisha kwa MQTT server test.mosquitto.org… xQueueReceive + 25.50xQueueTuma ok doneTuma MQTT unganisha… MQTTv311donexQueueReceive +25.56 xQueueTuma sawa
Hatua ya 5: Kuingiliana
Kwa kudhani kifaa chako kimeunganishwa na WiFi na broker wa MQTT kwa ufanisi, utaweza kutuma na kupokea data kutoka NodeMCU na MQTT. Ikiwa haujafanya hivyo, sakinisha kifurushi cha wateja wa mbu:
Sudo apt-install wateja wa mbu
Sasa unapaswa kutumia programu ya mbu na mosquitto_sub kutoka kwa ganda lako.
Kupokea sasisho za joto
Kupokea data ya joto tutataka kutumia amri ya mbu_sub kujisajili kwa mada ambayo NodeMCU inachapisha.
mosquitto_sub -h mtihani.mosquitto.org -t / cpe439 / temp
Unapaswa kuona data ya joto (kwa Celsius), ikifika kwenye kituo.
+25.87+25.93+25.68…
Kuweka rangi ya ukanda wa LED kwa mbali
Muundo rahisi wa ujumbe hutumiwa kutuma maadili ya RGB kwa NodeMCU juu ya MQTT. Fomati ya amri inaonekana kama hii:
r: RRRg: GGGb: BBB ~
Ambapo RRR, GGG, BBB inalingana na maadili ya RGB (0-255) ya rangi unayotaka kutuma. Kutuma amri yetu, tutatumia amri ya mbu_pub. Hapa kuna mifano:
mosquitto_pub -h mtihani.mosquitto.org -t / cpe439 / rgb -m 'r: 255g: 0b: 0 ~' # redmosquitto_pub -h mtihani.mosquitto.org -t / cpe439 / rgb -m 'r: 0g: 255b: 0 ~ '# greenmosquitto_pub -h mtihani.mosquitto.org -t / cpe439 / rgb -m' r: 0g: 0b: 255 ~ '# bluu
Ikiwa unataka kupata ubunifu, tafuta mchumaji wa rangi mkondoni kama hii, na uhariri amri na thamani yoyote ya RGB unayochagua.
Jihadharini
Mada katika mradi huu zimewekwa kwa / cpe439 / rgb na / cpe439 / temp kwa broker wa umma wa MQTT, ambayo inamaanisha kuwa hakuna kitu kinachomzuia mtu mwingine kuchapisha au kujisajili kwa mada sawa na wewe. Kwa kujaribu kufanya mambo, kutumia broker ya umma ni sawa, lakini kwa miradi mikubwa zaidi utataka kuungana na broker na ulinzi wa nenosiri, au kuendesha broker yako mwenyewe kwenye seva.
Hatua ya 6: Maelezo ya Utekelezaji
Onewireire
ESP8266 ina msingi 1 tu, kwa muda mrefu, kazi za kuzuia kama kusubiri 750ms kwa sensor ya joto kufanya kipimo cha joto kawaida inaweza kusababisha WiFi kutofanya kazi vizuri, na labda hata ajali. Katika dhana ya FreeRTOS, unaita vTaskDelay () kushughulikia kusubiri kwa muda mrefu, lakini pia kuna subiri fupi nyingi zinazohitajika kati ya kusoma na kuandika ambazo ni fupi kuliko mfumo wa FreeRTOS, na kwa hivyo haiwezi kuepukwa na vTaskDelay (). Ili kuzunguka pia, dereva wa mradi huu aliandikiwa kukimbia mashine ya serikali ambayo inaendeshwa na kipima muda cha vifaa vya ESP8266, ambacho kinaweza kusababisha hafla za chini kwa kila sekunde 10 ndogo, ambayo ni fupi zaidi muda unaohitajika kati ya shughuli zote za kusoma / kuandika. Utekelezaji mwingine mwingi hutumia simu ya kuzuia kuchelewesha_us () au sawa kushughulikia hili, lakini ikiwa unachukua kila wakati sasisho za joto, ucheleweshaji wote huanza kujiongezea, na kusababisha programu isiyo na msikivu. Chanzo cha sehemu hii ya nambari iko kwenye folda ya ziada / juu.
WS2812B
ESP8266 haina chaguzi zozote za vifaa vya kawaida kwa PWM haraka vya kutosha kuendesha vipande vya LED kwa 800KHz. Ili kuzunguka hii, mradi huu hutumia pini ya SPI MOSI kuendesha LEDs. Kwa kurekebisha kiwango cha saa cha SPI, na kubadilisha malipo ya SPI kote, unaweza kufikia udhibiti wa kuaminika wa kila LED ya kibinafsi. Njia hii sio bila kasoro zake- kwa moja LED zinapaswa kuwezeshwa na chanzo cha 5V na shifter ya kiwango inapaswa kuongezwa kwa pato la pini ya SPI. Lakini 3.3V inafanya kazi. Pili, kuna glitches ambayo hufanyika kwa sababu ya muda kamili kwa kutumia njia ya SPI. Na ya tatu sasa huwezi kutumia SPI kwa kitu kingine chochote. Historia ya ziada juu ya njia hii inaweza kupatikana hapa, na chanzo cha sehemu hii ya nambari iko kwenye folda ya ziada / ws2812.
Njia ya kuaminika zaidi ya kuendesha vipande vya LED ni kutumia i2s. Walakini njia hii ina hacks nyingi maalum za chip, kwa hivyo SPI ilionekana kuwa chaguo bora kama zoezi la kujifunza.
Ilipendekeza:
Taa za Taa za Muziki Zinazoweza Kushughulika na Muziki - Sensorer ya Kugundua Sauti ya Arduino - Ukanda wa LED wa RGB: 4 Hatua
Taa za Taa za Muziki zinazoendelea za Muziki | Sensorer ya Kugundua Sauti ya Arduino | Ukanda wa RGB ya LED: Mradi wa taa za taa za LED zenye rangi nyingi. Katika mradi huu, ukanda rahisi wa 5050 RGB LED (sio Anwani inayoweza kushughulikiwa WS2812), sensa ya kugundua sauti ya Arduino na adapta ya 12V zilitumika
Sensorer ya Joto la Joto: Hatua 6
Sensorer ya Joto la Joto: Jaribio langu la hivi karibuni na uchunguzi wa sensorer ya joto ya DS18B20 na ESP-01. Wazo lilikuwa kubuni kifaa kama hicho ambacho kinaweza kufuatilia na kuingiza joto la tanki langu la samaki la galoni 109, na pia ninaweza kuangalia hali ya joto kutoka sehemu yoyote ya ulimwengu. S
Joto linalotumiwa na jua la Arduino na sensorer ya unyevu kama 433mhz Sensorer ya Oregon: Hatua 6
Joto la jua na umeme wa Arduino na Sura ya unyevu kama 433mhz Oregon Sensor: Huu ni ujenzi wa hali ya joto ya jua na sensorer ya unyevu. Sensor hutengeneza sensor ya Oregon ya 433mhz, na inaonekana katika lango la Telldus Net. Unachohitaji: 1x " 10-LED Sura ya Mwendo wa Nguvu ya jua " kutoka Ebay. Hakikisha inasema kugonga 3.7v
Kipima joto na Rangi ya Jamaa inayohusiana na Joto kwenye 2 "Onyesho la TFT na Sensorer Nyingi: Hatua 5
Kipima joto na Rangi ya Jamaa inayohusiana na Joto kwenye 2 "Onyesho la TFT na Sensorer Nyingi: Nimefanya onyesho kuonyesha vipimo vya sensorer kadhaa za joto. Jambo la kupendeza ni kwamba rangi ya maadili hubadilika na joto: > 75 digrii Celcius = RED > 60 > 75 = CHANGAMOTO > 40 < 60 = MANJANO > 30 < 40
Sensorer ya Joto la Joto la Arduino: Njia 5 (na Picha)
Sensor ya Joto la Joto la Arduino: Sensorer ya Joto ni jambo la kawaida siku hizi, lakini nyingi zao ni ngumu sana kutengeneza au ni ghali sana kununua. Mradi huu unakupa Sensor ya Joto la Joto la Arduino ambalo sio tu ni rahisi na rahisi sana. hadi m