Мазмұны:

IoT қарапайым болды: бірнеше сенсорларды бақылау: 7 қадам
IoT қарапайым болды: бірнеше сенсорларды бақылау: 7 қадам

Бейне: IoT қарапайым болды: бірнеше сенсорларды бақылау: 7 қадам

Бейне: IoT қарапайым болды: бірнеше сенсорларды бақылау: 7 қадам
Бейне: Мыналар не істеп тұр?😱😱😱 #qoslike #калаулым #бірболайық #кослайк 2024, Қараша
Anonim
IoT қарапайым болды: бірнеше сенсорларды бақылау
IoT қарапайым болды: бірнеше сенсорларды бақылау
IoT қарапайым болды: бірнеше сенсорларды бақылау
IoT қарапайым болды: бірнеше сенсорларды бақылау

Бірнеше апта бұрын мен мұнда DS18B20, 1-сымды автобус арқылы байланысатын, Интернет арқылы NodeMCU және Blynk арқылы деректерді жіберетін сандық сенсор көмегімен температураны бақылау туралы оқулықты жарияладым:

IoT қарапайым болды: кез келген жерде температураны бақылау

Бірақ барлау кезінде біз жіберіп алған нәрсе-бұл сенсордың бір артықшылығы, ол бір сенсорлы автобусқа қосылған бірнеше датчиктерден бірнеше деректерді жинау мүмкіндігі. Ал енді оны зерттейтін кез келді.

Біз соңғы оқулықта әзірленгендерді кеңейтеміз, енді біреуі Celcius -та, екіншісі Фаренгейтте конфигурацияланған екі DS18B20 датчиктерін бақылаймыз. Деректер жоғарыдағы блок -схемада көрсетілгендей Blynk қосымшасына жіберіледі.

1 -қадам: Материалдық есеп

  • NodeMCU ESP 12-E (*)
  • 2 X DS18B20 температура сенсоры
  • Резистор 4,7 к Ом
  • Нан тақтасы
  • Сымдар

(*) Мұнда ESP құрылғысының кез келген түрін қолдануға болады. Ең көп тарағандары NodeMCU V2 немесе V3. Екеуі әрқашан жақсы жұмыс істейді.

2 -қадам: DS18B20 температура сенсоры

DS18B20 температура сенсоры
DS18B20 температура сенсоры

Біз бұл оқулықта DS18B20 датчигінің су өткізбейтін нұсқасын қолданамыз. Ылғалды жағдайда, мысалы ылғалды топырақта, қашықтан температура үшін өте пайдалы. Сенсор оқшауланған және 125oC дейін өлшеуге қабілетті (Adafrut кабельді ПВХ пиджакінің арқасында оны 100oC -тан жоғары пайдалануды ұсынбайды).

DS18B20 - бұл сандық сенсор, ол тіпті алыс қашықтықта қолдануды жақсы етеді! Бұл 1 сымды цифрлық температура датчиктері өте дәл (диапазонның көп бөлігінде ± 0,5 ° C) және цифрлық-аналогтық түрлендіргіштен 12 битке дейін дәлдік бере алады. Олар NodeMCU-мен бір цифрлық түйреуішпен жақсы жұмыс істейді, және сіз бірнеше түйіндерді бір істікке қосуға болады, олардың әрқайсысында оларды ажырату үшін зауытта 64 биттік бірегей идентификаторы бар.

Сенсор 3.0 -дан 5.0 В -қа дейін жұмыс істейді, бұл оны 3.3 В NodeMCU түйреуіштерінің бірінен тікелей қуаттауға болатынын білдіреді.

Сенсорда 3 сым бар:

  • Қара: GND
  • Қызыл: VCC
  • Сары: 1 сымды деректер

Мұнда сіз толық ақпаратты таба аласыз: DS18B20 мәліметтер кестесі

3 -қадам: сенсорларды NodeMCU -ге қосу

Сенсорларды NodeMCU -ге қосу
Сенсорларды NodeMCU -ге қосу
  1. Жоғарыдағы суретте көрсетілгендей, шағын нан тақтасындағы әр сенсордан 3 сымды қосыңыз. Мен сенсордың кабелін жақсырақ бекіту үшін арнайы қосқыштарды қолдандым.
  2. Екі сенсор да параллель орналасқанын ескеріңіз. Егер сізде 2 -ден астам сенсор болса, дәл солай істеу керек.

    • Қызыл ==> 3.3В
    • Қара ==> GND
    • Сары ==> D4
  3. VCC (3.3V) мен Data (D4) арасындағы 4.7K Ом резисторды қолданыңыз.

4 -қадам: Бекітілген кітапханаларды орнату

DS18B20 дұрыс қолдану үшін екі кітапхана қажет болады:

  1. OneWire
  2. Даллас температурасы

Екі кітапхананы Arduino IDE Library депозитарийіне орнатыңыз.

OneWire кітапханасы ESP8266 көмегімен пайдалану үшін өзгертілген арнайы кітапхана болуы керек екенін ескеріңіз, әйтпесе компиляция кезінде қате пайда болады. Сіз соңғы нұсқаны жоғарыдағы сілтемеден таба аласыз.

5 -қадам: сенсорларды тексеру

Сенсорларды тексеру
Сенсорларды тексеру

Сенсорларды тексеру үшін төмендегі файлды GitHub -дан жүктеп алыңыз:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

/**************************************************************

*Бірнеше температура жіберуші сынағы**2 x OneWire сенсоры: DS18B20*NodeMCU D4 (немесе Arduino Pin 2) қосылады**Әзірлеуші Марсело Ровай - 25 тамыз 2017 ж. **************** ******************************************/ #қосу # қосу #define ONE_WIRE_BUS 2 // DS18B20 NodeMCU PIN D4 OneWire oneWire (ONE_WIRE_BUS) бойынша; DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20.begin (); Serial.println («Қос сенсорлы деректерді тексеру»); } void loop () {float temp_0; float temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // 0 сенсор Celcius temp_1 = DS18B20.getTempFByIndex (1) ішінде Temp түсіреді; // 0 датчигі Фаренгейт Serial.print («Temp_0:») ішінде Temp түсіреді; Serial.print (temp_0); Serial.print («oC. Temp_1:»); Serial.print (temp_1); Serial.println («oF»); кешіктіру (1000); }

Жоғарыдағы кодқа қарап, біз ең маңызды жолдар екенін байқауымыз керек:

temp_0 = DS18B20.getTempCByIndex (0); // 0 датчигі Цельсийдегі температураны түсіреді

temp_1 = DS18B20.getTempFByIndex (1); // 0 сенсоры Фаренгейтте Temp түсіреді

Біріншісі Sensor [0] мәнін қайтарады («индексін (0)» қараңыз)) Celcius (кодтың бөлігін қараңыз: «getTempC». Екінші жол сенсормен байланысты [1] және деректерді қайтарады Сізде «n» сенсорлары болуы мүмкін, себебі олардың әрқайсысы үшін әр түрлі «индекс» бар.

Енді кодты NodeMCU -ге жүктеңіз және Serial Monitor көмегімен температураны бақылаңыз.

Жоғарыдағы фото күтілетін нәтижені көрсетеді. Сенсорлардың әрқайсысын қолыңызда ұстаңыз, сіз температураның көтерілгенін көресіз.

6 -қадам: Blynk пайдалану

Blynk пайдалану
Blynk пайдалану
Blynk пайдалану
Blynk пайдалану

Температура туралы деректерді түсіруді бастағаннан кейін, оны кез келген жерден көру уақыты келді. Біз мұны Blynk көмегімен жасаймыз. Осылайша, алынған барлық деректер мобильді құрылғыда нақты уақыт режимінде көрсетіледі, сонымен қатар біз бұл үшін тарихи депозитарий құрамыз.

Төмендегі қадамдарды орындаңыз:

  1. Жаңа жоба құру.
  2. Оған атау беріңіз (менің жағдайда «Қос температуралы монитор»)
  3. Жаңа құрылғы - ESP8266 (WiFi) «Менің құрылғыларым» ретінде таңдаңыз
  4. Кодта қолданылатын AUTH TOKEN көшіріңіз (оны электрондық поштаға жібере аласыз).
  5. Анықтайтын екі «өлшеуіш» виджеті бар:

    • Әр сенсормен қолданылатын виртуалды түйреуіш: V10 (Сенсор [0]) және V11 (Сенсор [1])
    • Температура диапазоны: -5 -тен 100 oC дейін сенсор [0]
    • Температура диапазоны: сенсор үшін 25 -тен 212 oC [1]
    • Деректерді оқу жиілігі: 1 секунд
  6. V10 мен V11 виртуалды түйреуіштер ретінде анықтайтын «Тарих графигі» виджетін қамтиды
  7. «Ойнату» түймесін басыңыз (оң жақ бұрыштағы үшбұрыш)

Әрине, Blynk қосымшасы NodeMCU желіден тыс екенін хабарлайды. Толық кодты Arduino IDE -ге жүктеу уақыты келді. Сіз оны мына жерден ала аласыз:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

Өзіңіздің жеке мәліметтеріңізбен «жалған деректерді» өзгертіңіз.

/ * Blynk тіркелгі деректері */

char auth = «СІЗДІҢ BLYNK AUTH КОДЫҢЫЗ МЫНАДА»; / * WiFi тіркелгі деректері */ char ssid = «Сіздің SSID»; char pass = «СІЗДІҢ ПАРОЛЫҢЫЗ»;

Және бұл!

Толық кодты көрсетіңіз. Бұл негізінен Blynk параметрлерімен және нақты функциялармен енгізілген алдыңғы код. Кодтың соңғы 2 жолына назар аударыңыз. Мұнда олар ең маңызды болып табылады. Егер сізде деректерді жинайтын сенсорлар көп болса, онда сізде жаңа эквивалентті жолдар болуы керек (сәйкес виртуалды түйреуіштер анықталған).

/**************************************************************

* Blynk бар IoT бірнеше температура мониторы * Blynk кітапханасы MIT лицензиясымен лицензияланған * Бұл мысал коды жалпыға қолжетімді. **Бірнеше OneWire сенсоры: DS18B20*Әзірлеген Марсело Ровай - 25 тамыз 2017 ж. ******************************** ****************************//*ESP & Blynk*/ #include #include #delyine BLYNK_PRINT сериясын анықтаңыз // Бұған пікір басып шығаруды өшіріп, бос орынды үнемдеңіз / * Blynk тіркелгі деректері * / char auth = «СІЗДІҢ BLYNK AUTH КОДЫҢЫЗ МЫНАДА»; / * WiFi тіркелгі деректері */ char ssid = «Сіздің SSID»; char pass = «СІЗДІҢ ПАРОЛЫҢЫЗ»; / * TIMER */ #include SimpleTimer таймері; / * DS18B20 температура сенсоры */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 arduino pin2 -де OneWire oneWire физикалық тақтасындағы D4 сәйкес келеді (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; void setup () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20.begin (); timer.setInterval (1000L, getSendData); Serial.println («»); Serial.println («Қос сенсорлы деректерді тексеру»); } void loop () {timer.run (); // SimpleTimer Blynk.run () іске қосады; } /************************************************ ****Сенсорлық мәліметтерді Blynk жіберу *************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // 0 датчигі Celcius temp_1 = DS18B20.getTempFByIndex (1) ішінде Temp түсіреді; // 0 датчигі Фаренгейт Serial.print («Temp_0:») ішінде Temp түсіреді; Serial.print (temp_0); Serial.print («oC. Temp_1:»); Serial.print (temp_1); Serial.println («oF»); Blynk.virtualWrite (10, temp_0); // виртуалды түйін V10 Blynk.virtualWrite (11, temp_1); // виртуалды түйін V11}

Код жүктеліп, іске қосылғаннан кейін Blynk қолданбасын тексеріңіз. Ол қазір iPhone -ның баспа экранында көрсетілгендей жұмыс істеуі керек.

7 -қадам: Қорытынды

Қорытынды
Қорытынды

Әдеттегідей, бұл жоба басқаларға электроника, робототехника және IoT қызықты әлемінде жол табуға көмектеседі деп сенемін!

Жаңартылған файлдар үшін менің GitHub сайтына кіріңіз: NodeMCU Dual Temp Monitor

Басқа жобалар үшін менің блогыма кіріңіз: MJRoBot.org

Әлемнің оңтүстігінен сәлем!

Келесі нұсқаулықта кездескенше!

Рақмет сізге, Марсело

Ұсынылған: