Мазмұны:
- 1 -қадам: Материалдық есеп
- 2 -қадам: DS18B20 температура сенсоры
- 3 -қадам: сенсорларды NodeMCU -ге қосу
- 4 -қадам: Бекітілген кітапханаларды орнату
- 5 -қадам: сенсорларды тексеру
- 6 -қадам: Blynk пайдалану
- 7 -қадам: Қорытынды
Бейне: IoT қарапайым болды: бірнеше сенсорларды бақылау: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бірнеше апта бұрын мен мұнда 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 датчигінің су өткізбейтін нұсқасын қолданамыз. Ылғалды жағдайда, мысалы ылғалды топырақта, қашықтан температура үшін өте пайдалы. Сенсор оқшауланған және 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 -ге қосу
- Жоғарыдағы суретте көрсетілгендей, шағын нан тақтасындағы әр сенсордан 3 сымды қосыңыз. Мен сенсордың кабелін жақсырақ бекіту үшін арнайы қосқыштарды қолдандым.
-
Екі сенсор да параллель орналасқанын ескеріңіз. Егер сізде 2 -ден астам сенсор болса, дәл солай істеу керек.
- Қызыл ==> 3.3В
- Қара ==> GND
- Сары ==> D4
- VCC (3.3V) мен Data (D4) арасындағы 4.7K Ом резисторды қолданыңыз.
4 -қадам: Бекітілген кітапханаларды орнату
DS18B20 дұрыс қолдану үшін екі кітапхана қажет болады:
- OneWire
- Даллас температурасы
Екі кітапхананы 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 көмегімен жасаймыз. Осылайша, алынған барлық деректер мобильді құрылғыда нақты уақыт режимінде көрсетіледі, сонымен қатар біз бұл үшін тарихи депозитарий құрамыз.
Төмендегі қадамдарды орындаңыз:
- Жаңа жоба құру.
- Оған атау беріңіз (менің жағдайда «Қос температуралы монитор»)
- Жаңа құрылғы - ESP8266 (WiFi) «Менің құрылғыларым» ретінде таңдаңыз
- Кодта қолданылатын AUTH TOKEN көшіріңіз (оны электрондық поштаға жібере аласыз).
-
Анықтайтын екі «өлшеуіш» виджеті бар:
- Әр сенсормен қолданылатын виртуалды түйреуіш: V10 (Сенсор [0]) және V11 (Сенсор [1])
- Температура диапазоны: -5 -тен 100 oC дейін сенсор [0]
- Температура диапазоны: сенсор үшін 25 -тен 212 oC [1]
- Деректерді оқу жиілігі: 1 секунд
- V10 мен V11 виртуалды түйреуіштер ретінде анықтайтын «Тарих графигі» виджетін қамтиды
- «Ойнату» түймесін басыңыз (оң жақ бұрыштағы үшбұрыш)
Әрине, 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
Әлемнің оңтүстігінен сәлем!
Келесі нұсқаулықта кездескенше!
Рақмет сізге, Марсело
Ұсынылған:
Бірнеше қарапайым компоненттер, DIY электронды пернетақта: 6 қадам
Бірнеше қарапайым компоненттер, DIY және электронды пернетақта: 555 таймер 1 Түйме × 81 100nF конденсатор Әр түрлі қарсылықтар: 390Ω, 620Ω, 910Ω, 1kΩ × 2, 1.1kΩ, 1.3kΩ, 1.5kΩ, 6.2kΩ. батарея
COVID-19 бақылау тақтасы (қарапайым және қарапайым): 4 қадам
COVID-19 бақылау тақтасы (қарапайым және қарапайым): барлық жерде жаңа COVID-19 вирусының өршуі байқалады. Елдегі COVID-19 сценарийін қадағалау қажет болды. Сонымен, мен үйде отырып, бұл туралы ойладым: " Ақпараттық бақылау тақтасы " - Да
NodeMCU көмегімен IoT негізіндегі топырақ ылғалдылығын бақылау мен бақылау жүйесі: 6 қадам
NodeMCU көмегімен IoT негізіндегі топырақтағы ылғалдылықты бақылау мен бақылау жүйесі: Бұл оқулықта біз ESP8266 WiFi модулін, яғни NodeMCU көмегімен IoT негізіндегі топырақ ылғалдылығын бақылау мен бақылау жүйесін енгізетін боламыз. Бұл жобаға қажет компоненттер: ESP8266 WiFi модулі- Amazon (334/- INR) реле модулі- Amazon (130/- INR
Бірнеше сенсорларды бір ARDUINO UNO сериялық портына қосу: 4 қадам
Бірнеше ARDUINO UNO сериялық портына бірнеше сенсорларды қосу: Бұл оқулықта біз Arduino UNO UART (Rx/Tx) сериялық портын кеңейтеміз, осылайша бірнеше Atlas датчиктерін қосуға болады. Кеңейту 8: 1 сериялық портты кеңейту тақтасының көмегімен жүзеге асырылады. Ардуино порты экспантермен байланысқаннан кейін
РАЗПЕРРИ ПИ -ге бірнеше сенсорларды қосу: 6 қадам (суреттермен)
PASPBERRY PI -ге бірнеше сенсорларды қосу: Бұл жобада біз Raspberry Pi 3B+Atlas Scientific EZO сенсорларының үшеуін (рН, еріген оттегі мен температура) қосамыз. Raspberry Pi -ге тізбектерді қосудың орнына, біз Whitebox Labs Tentacle T3 қалқанын қолданамыз. Т