- Необходими компоненти:
- LM35 Температурен сензор:
- Свързване на LM35 с NodeMCU:
- Обяснение на кода:
- HTML код за показване на температура на уеб страница:
- Работа:
В предишния урок за Първи стъпки с NodeMCU видяхме какво е NodeMCU и как можем да го програмираме с помощта на Arduino IDE . Както знаете NodeMCU има Wi-Fi чип вътре, така че той може да се свърже и с интернет. Много е полезно да се изграждат IoT проекти. Преди използвахме ThingSpeak с Arduino, за да направим IoT термометър, но тук ще създадем наша собствена уеб страница за показване на температурата.
В този урок ще разгледаме повече за този интересен MCU и бавно ще се потопим в света на света на нещата, като свържем NodeMCU с интернет. Тук ще използваме този модул за измерване на стайната температура в уеб браузъра, т.е. ще направим уеб сървър, който да показва температурата, използвайки LM35 като температурен сензор.
Необходими компоненти:
- NodeMCU - ESP12
- LM35 Температурен сензор
- Макет
- Съединители мъжко-женски
LM35 Температурен сензор:
LM35 е аналогов линеен температурен сензор. Изходът му е пропорционален на температурата (в градуси по Целзий). Диапазонът на работните температури е от -55 ° C до 150 ° C. Изходното напрежение варира с 10mV в отговор на всяко повишаване или спадане на температурата на o C. Може да се управлява от 5V, както и от 3.3 V захранване, а резервният ток е по-малък от 60uA.
Имайте предвид, че LM35 се предлага в 3 серийни вариации, а именно LM35A, LM35C и LM35D. Основната разлика е в техния диапазон от измервания на температурата. Серията LM35D е проектирана да измерва от 0 до 100 градуса по Целзий, като както серията LM35A е проектирана да измерва по-широк диапазон от -55 до 155 градуса по Целзий. Серията LM35C е проектирана да измерва от -40 до 110 градуса по Целзий.
Вече използвахме LM35 с много други микроконтролери за измерване на температурата:
- Цифров термометър, използващ микроконтролер LM35 и 8051
- Измерване на температурата с помощта на LM35 и AVR микроконтролер
- Цифров термометър, използващ Arduino и LM35 температурен сензор
- Измерване на стайна температура с Raspberry Pi
Свързване на LM35 с NodeMCU:
Схема за свързване на LM35 с NodeMCU е дадена по-долу:
LM35 е аналогов сензор, така че трябва да преобразуваме този аналогов изход в цифров. За това използваме ADC щифт на NodeMCU, който е дефиниран като A0. Ще свържем изхода на LM35 към A0.
Имаме 3.3 V като изходно напрежение на щифтовете на NodeMCU. Така че, ние ще използваме 3.3V като Vcc за LM35.
Обяснение на кода:
Пълен код с демонстрационно видео е даден в края на статията. Тук обясняваме няколко части от кода. Вече обяснихме да качваме код в MCU с помощта на Arduino IDE.
Първо, трябва да включим ESP8266wifi библиотека за достъп до Wi-Fi функциите..
#include
След това въведете вашето Wi-Fi име и парола в полето ssid и парола . Също така инициализира променливите и стартира сървъра на порт 80 със скорост на предаване 115200.
const char * ssid = "*********"; // Вашият ssid const char * парола = "***********"; // Вашата парола float temp_celsius = 0; плаващ temp_fahrenheit = 0; Сървър WiFiServer (80); void setup () { Serial.begin (115200);
Връзката на Wi-Fi се установява чрез извикване на тези функции.
Serial.println (); Serial.println (); Serial.print ("Свързване с"); Serial.println (ssid); WiFi.begin (ssid, парола);
Установяването на връзка може да отнеме няколко секунди, така че продължавайте да показвате „…“, докато връзката няма да се установи. Тогава системата ще продължи да чака и да проверява дали клиент се свързва…
докато (WiFi.status ()! = WL_CONNECTED) { закъснение (500); Serial.print ("."); } Serial.println (""); Serial.println („WiFi е свързан“); server.begin (); Serial.println („Сървърът е стартиран“); Serial.println (WiFi.localIP ()); }
В секцията на цикъла прочетете стойностите на сензора и ги преобразувайте в Целзий и Фаренхайт и ги покажете на сериен монитор.
невалиден цикъл () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // За преобразуване на аналогови стойности в Целзий На борда ни има 3.3 V и знаем, че изходното напрежение на LM35 варира с 10 mV на всеки градус на нарастване / спадане на Целзий. И така, (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1.8 + 32.0; Serial.print ("Температура ="); Serial.print (temp_celsius); Serial.print ("Целзий");
HTML код за показване на температура на уеб страница:
Показваме температурата на уеб страница, за да може тя да бъде достъпна от всяка точка на света чрез интернет. HTML кодът е много прост; ние просто трябва да използваме client.println функцията, за да ехо всеки ред от HTML кода, така че браузърът да може да го изпълни.
Тази част показва HTML код за създаване на уеб страница, която показва стойността на температурата.
Клиент на WiFiClient = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Тип съдържание: текст / html"); client.println ("Връзка: затваряне"); // връзката ще бъде затворена след завършване на клиента client.println ("Refresh: 10"); // актуализиране на страницата след 10 секунди client.println (); client.println (""); client.println (""); client.print ("
Цифров термометър
"); client.print ("Температура (* C) = "); client.println (temp_celsius); client.print ("
Температура (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); забавяне (5000); }Работа:
След като качите кода с помощта на Arduino IDE, отворете серийния монитор и натиснете бутона Reset на NodeMCU.
Сега можете да видите, че платката е свързана с Wi-Fi мрежата, която сте дефинирали в кода си, а също така имате IP. Копирайте този IP и го поставете във всеки уеб браузър. Уверете се, че вашата система, на която използвате уеб браузъра, трябва да се свърже към същата мрежа.
Вашият цифров термометър е готов и температурата ще се опреснява автоматично в уеб браузъра след всеки 10 секунди.
За да направите тази уеб страница достъпна от интернет, просто трябва да настроите Пренасочване на портове във вашия рутер / модем. Проверете пълния код и видеото по-долу.
Също така проверете:
- Метеорологична станция Raspberry Pi: Мониторинг на влажността, температурата и налягането през Интернет
- Наблюдение на температурата и влажността на живо чрез Интернет с помощта на Arduino и ThingSpeak