- Компоненте потребне:
- ЛМ35 Температурни сензор:
- Повезивање ЛМ35 са НодеМЦУ:
- Објашњење кода:
- ХТМЛ код за приказ температуре на веб страници:
- Рад:
У претходном водичу За почетак са НодеМЦУ видели смо Шта је НодеМЦУ и како га можемо програмирати помоћу Ардуино ИДЕ-а . Као што знате, НодеМЦУ има Ви-Фи чип, тако да се такође може повезати на Интернет. Веома је корисно градити ИоТ пројекте. Раније смо користили ТхингСпеак са Ардуином за израду ИоТ термометра, али овде ћемо направити сопствену веб страницу за приказ температуре.
У овом упутству ћемо истражити више о овом занимљивом МЦУ-у и полако зарањамо у Интернет ствари повезујући НодеМЦУ са Интернетом. Овде ћемо користити овај модул за одређивање собне температуре у веб прегледачу, тј. Направићемо веб сервер за приказ температуре користећи ЛМ35 као температурни сензор.
Компоненте потребне:
- НодеМЦУ - ЕСП12
- ЛМ35 Сензор температуре
- Бреадбоард
- Конектори мушко-женски
ЛМ35 Температурни сензор:
ЛМ35 је аналогни линеарни температурни сензор. Његов излаз је пропорционалан температури (у Целзијусовим степенима). Распон радне температуре је од -55 ° Ц до 150 ° Ц. Излазни напон варира за 10мВ као одговор на сваки пораст или пад температуре о Ц. Може се управљати напајањем од 5В, као и од 3.3В, а струја у стању приправности је мања од 60уА.
Имајте на уму да је ЛМ35 доступан у 3 варијанте серије и то ЛМ35А, ЛМ35Ц и ЛМ35Д. Главна разлика је у њиховом опсегу мерења температуре. Серија ЛМ35Д дизајнирана је за мерење од 0 до 100 степени Целзијуса, док је серија ЛМ35А дизајнирана за мерење ширег опсега од -55 до 155 степени Целзијуса. Серија ЛМ35Ц дизајнирана је за мерење од -40 до 110 степени Целзијуса.
Већ смо користили ЛМ35 са многим другим микроконтролерима за мерење температуре:
- Дигитални термометар који користи микроконтролере ЛМ35 и 8051
- Мерење температуре помоћу ЛМ35 и АВР микроконтролера
- Дигитални термометар који користи Ардуино и ЛМ35 температурни сензор
- Мерење собне температуре помоћу Распберри Пи
Повезивање ЛМ35 са НодеМЦУ:
Дијаграм кола за повезивање ЛМ35 са НодеМЦУ дат је у наставку:
ЛМ35 је аналогни сензор, тако да овај аналогни излаз морамо претворити у дигитални. За ово користимо АДЦ пин НодеМЦУ који је дефинисан као А0. Повезаћемо излаз ЛМ35 са А0.
На излазним напонима НодеМЦУ имамо 3.3 В као излазни напон. Дакле, користићемо 3.3В као Вцц за ЛМ35.
Објашњење кода:
Комплетан код са демонстрацијским видео записом дат је на крају чланка. Овде објашњавамо неколико делова кода. Већ смо објаснили пренос кода у МЦУ помоћу Ардуино ИДЕ-а.
Прво, морамо да укључимо ЕСП8266вифи библиотеку да бисмо приступили Ви-Фи функцијама.
#инцлуде
Затим унесите своје Ви-Фи име и лозинку у поље ссид и лозинка . Такође је иницијализовао променљиве и покренуо сервер на порту 80 брзином преноса 115200.
цонст цхар * ссид = "*********"; // Ваш ссид цонст цхар * пассворд = "***********"; // Ваша лозинка плута темп_целсиус = 0; плутајуће темп_фахренхеит = 0; ВиФиСервер сервер (80); воид сетуп () { Сериал.бегин (115200);
Веза Ви-Фи везе успоставља се позивањем ових функција.
Сериал.принтлн (); Сериал.принтлн (); Сериал.принт ("Повезивање са"); Сериал.принтлн (ссид); ВиФи.бегин (ссид, лозинка);
Успостављање везе може потрајати неколико секунди, па наставите приказивати „…“ док се веза неће успоставити. Тада ће систем наставити да чека и проверава да ли се клијент повеже…
вхиле (ВиФи.статус ()! = ВЛ_ЦОННЕЦТЕД) { кашњење (500); Сериал.принт ("."); } Сериал.принтлн (""); Сериал.принтлн („ВиФи је повезан“); сервер.бегин (); Сериал.принтлн („Сервер покренут“); Сериал.принтлн (ВиФи.лоцалИП ()); }
У одељку петље прочитајте вредности сензора и претворите их у Целзијус и Фахренхеит и прикажите те вредности на серијском монитору.
петља воид () { темп_целсиус = (аналогРеад (А0) * 330.0) / 1023.0; // За претварање аналогних вредности у Целзијус На нашој плочи имамо 3,3 В и знамо да излазни напон ЛМ35 варира за 10 мВ на сваки степен Целзијусовог пораста / пада. Дакле, (А0 * 3300/10 ) / 1023 = Целзијус темп_фахренхеит = Целзијус * 1,8 + 32,0; Сериал.принт ("Температура ="); Сериал.принт (темп_целсиус); Сериал.принт ("Целзијус,");
ХТМЛ код за приказ температуре на веб страници:
Приказујемо температуру на веб страници како би јој била доступна са било ког места у свету путем Интернета. ХТМЛ код је врло једноставан; ми само морамо да користимо цлиент.принтлн функцију да одјекне сваки ред ХТМЛ кода, тако да га прегледач може извршити.
Овај део приказује ХТМЛ код за стварање веб странице која приказује вредност температуре.
ВиФиЦлиент клијент = сервер.аваилабле (); цлиент.принтлн ("ХТТП / 1.1 200 ОК"); цлиент.принтлн ("Тип садржаја: текст / хтмл"); цлиент.принтлн ("Веза: близу"); // веза ће бити затворена након завршетка одговора цлиент.принтлн ("Рефресх: 10"); // ажурирање странице након 10 секунди цлиент.принтлн (); цлиент.принтлн (""); цлиент.принтлн (""); цлиент.принт ("
Дигитални термометар
"); цлиент.принт ("Температура (* Ц) = "); цлиент.принтлн (темп_целсиус); цлиент.принт ("
Температура (Ф) = "); цлиент.принтлн (темп_фахренхеит); цлиент.принт ("
"); цлиент.принтлн (" "); кашњење (5000); }Рад:
Након отпремања кода помоћу Ардуино ИДЕ, отворите серијски монитор и притисните тастер Ресет на НодеМЦУ.
Сада можете видети да је плоча повезана са Ви-Фи мрежом коју сте дефинисали у коду, а такође сте добили и ИП. Копирајте ову ИП адресу и залепите је у било који веб прегледач. Уверите се да би се систем на којем користите веб прегледач повезао на исту мрежу.
Ваш дигитални термометар је спреман и температура ће се аутоматски освежавати у веб прегледачу након сваких 10 секунди.
Да бисте овој веб страници учинили доступну са Интернета, само треба да подесите прослеђивање порта у свом рутеру / модему. Проверите комплетан код и видео испод.
Такође проверите:
- Метеоролошка станица Распберри Пи: Надгледање влажности, температуре и притиска преко Интернета
- Праћење температуре и влажности уживо путем Интернета помоћу Ардуина и ТхингСпеак-а