| Ваш IP: 18.206.175.155 | Online(34) - гости: 24, боты: 10 | Загрузка сервера: 1.56 ::::::::::::

wi-fi модуль NodeMcu v3 с чипом ESP8266 (ESP-12e)(Терморегулятор с удаленным управлением)

На базе wi-fi модуля NodeMcu v3 с чипом ESP8266 (ESP-12e) можно сделать простой терморегулятор. В качестве датчика используется цифровой датчик 18B20. Управление терморегулятором осуществляется при помощи WEB страницы, на которую выведены показания датчика температуры и кнопки регулирования температуры.

Управление терморегулятором возможно по локальной сети, а так же через Интернет. Для управления через Интернет необходимо иметь постоянный IP адрес и осуществить переброску портов в маршрутизаторе. Более подробно об управлении через Интернет написано — wi-fi модуль NodeMcu v3 с чипом ESP8266 (ESP-12e)(Удаленное управление нагрузкой).

Если Вы не знаете как прошить модуль NodeMcu v3, то ознакомьтесь со следующей статьей wi-fi модуль NodeMcu v3 с чипом ESP8266 (ESP-12e)(Arduino IDE).

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire(14);// D5 вход датчика 18b20
DallasTemperature t(&oneWire);
MDNSResponder mdns;
const char* ssid = "Имя_сети";
const char* password = "Пароль";
ESP8266WebServer server(81);
 
int temper,reg_t=20,gis=1;
String ind;
 
void setup(void){
 
  pinMode(2, OUTPUT);// D4 выход управления нагрузкой
  t.begin();t.setResolution(10);//10 бит 
 
  delay(1000);
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.println("");
 
  while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}
  Serial.println("");
  Serial.print("Connected to ");  
  Serial.println(ssid);
  Serial.print("IP address: ");  
  Serial.println(WiFi.localIP());
 
  if (mdns.begin("esp8266", WiFi.localIP())) {Serial.println("MDNS responder started");}
 
  server.on("/", [](){web();});
  server.on("/obn", [](){web();});
  server.on("/reg+", [](){reg_t++;web();});
  server.on("/reg-", [](){reg_t--;web();});
  server.on("/reg+10", [](){reg_t=reg_t+10;web();});
  server.on("/reg-10", [](){reg_t=reg_t-10;web();});
 
  server.begin();
  Serial.println("HTTP server started");
}
 
void loop(void){
  server.handleClient();
  t.requestTemperatures();temper=t.getTempCByIndex(0);
   if(reg_t<=0){reg_t=0;}if(reg_t>=125){reg_t=125;}
   if(reg_t >= temper + gis){digitalWrite(2,HIGH);ind=" ВКЛ";}
   if(reg_t <= temper - gis){digitalWrite(2,LOW);ind=" ВЫКЛ";}
  Serial.println(reg_t);
}
 
void web(){
String webPage = "<!DOCTYPE HTML><html>";
       webPage += "<meta charset='utf-8'><meta name='viewport' content='width=480, user-scalable=no' />";
       webPage += "<style>table {background-color:#F5F5F5;border-radius: 5px;}</style>";
       webPage += "<TABLE align='center' width='450' BORDER='1' cellspacing='0' cellpadding='5'><td colspan='3' align='center'>";
       webPage += "<h1>Терморегулятор 0...125 &#176;C</td><tr></h1>";
       webPage += "<meta http-equiv='Refresh' content='10; URL=/obn' />"; // автоматическое обновление страницы каждые 10 секунд
       webPage += "<td align='center'>Температура</td><td align='center'><a href=\"obn\"><button>Обновить</button></a></td><td align='center'>";
       webPage += temper;
       webPage += "<tr><td align='center'>Регулировка температуры</td><td align='center'><a href=\"reg+\"><button>+1&nbsp;&nbsp;</button>";
       webPage += "</a><a href=\"reg-\"><button>-1&nbsp;&nbsp;</button></a><br><a href=\"reg+10\"><button>+10</button></a>";
       webPage += "<a href=\"reg-10\"><button>-10</button></a></td><td align='center'>";
       webPage += reg_t;
       webPage += " &#176;C</td>";
       webPage += "<tr><td colspan='3' align='center'>Нагрев: ";
       webPage += ind;
       webPage += "</td></html>"; 
 
  server.send(200, "text/html", webPage);delay(300);
}

Подключение к сети использует порт 80, укажите имя Вашей  wi-fi сети и пароль в скетче, так же можете изменить время автоматического обновления страницы или вообще закоменнтировать строчку (для ручного обновления страницы):

webPage += «<meta http-equiv=’Refresh’ content=’10; URL=/obn’ />»; // автоматическое обновление страницы каждые 10 секунд

Датчик температуры питается напряжением 3,3 В которое подается с модуля NodeMcu, цифровой выход датчика подключается ко входы D5 модуля, для управления нагрузкой используется цифровой выход модуля D4.

Добавить комментарий

Случайные статьи

  • Преобразователь температуры

    На рисунке показана схема простого преобразователя температуры окружающей среды в напряжение. Резистор NTC (ТКС) или терморезистор используется в качестве датчика. Если температура возрастет, одновременно изменяется сопротивление терморезистора, при этом происходит изменение выходного напряжения преобразователя на 0,5 в на 1ºC. Коэффициент преобразования зависит от типа сопротивление терморезистора. Если вы хотите выходное …Подробнее...
  • Кодововая и цветовая маркировка отечественных транзисторов

    Кодововая и цветовая маркировка отечественных транзисторов

    Отечественные транзисторы с корпусами малых размеров маркируются цветовой или кодовой маркировкой и лишь в редких случаях марка транзистора наносится полностью, как есть. При ремонте бытовой аппаратуры можно столкнуться с цветовой или кодовой маркировкой и для замены транзистора необходимо определить марку транзистора, сделать это можно указав в предложенной форме тип транзистора. …Подробнее...
  • Регулятор скорости вращения двигателя 12В 150Вт

    Регулятор скорости вращения двигателя 12В 150Вт

    На рисунке показана схема простого регулятора скорости вращения двигателя 12В  мощностью до 150 Вт. Устройство имеет токовый ограничитель на 15А. Основа уст-ва, это система широтно-импульсной модуляции выполненная на ИМС TL494, благодаря чему скорость вращения двигателя может быть в диапазоне от 0 до 100%. При помощи R6 можно регулировать скорость вращения …Подробнее...
  • Высококачественный усилитель мощности на LM1876

    Высококачественный усилитель мощности на LM1876

    Усилитель выполнен на микросхеме LM1876, имеет выходную мощность до 22 Вт при напряжении питания от ±10 до ±32 В. ИМС LM1876 имеет защиту от перегрева, перегрузки, и систему мягкого включения для избавления от щелчков при подаче питания. Технические характеристики: Выходная мощность при Rн = 8 Ом и Uпит ±22 В … 2х20 …Подробнее...
  • Секундомер на PIC16F877A

    Секундомер на PIC16F877A

    В схеме секундомера используется микроконтроллер PIC16F877А и индикатор LCD WH1602D. Временной диапазон от 0,1 секунд до 24 часов. Управление секундомера состоит из двух кнопок «Старт\стоп» и «Сброс». При подачи питания индикатор показывает нулевые значения, при нажатии на кнопку «Старт\стоп» начинается отсчет, при повторном нажатии кнопки во второй строке индикатора появляется промежуточное …Подробнее...