отправка погоды json
- Войдите на сайт для отправки комментариев
Сб, 30/01/2021 - 11:09
Здраствйте форумчание. Есть скечт на esp 01, получает тепературу на улице и передает на httml, хохотелось получать данные на другом устройстве, nodemcu 1602 и выводить на 1602, не могу найти видео или статью как это реолизовать по json, подскажите пожайлуста. Зарание спасибо
#include <ESP8266WebServer.h> #include <OneWire.h> #include <DallasTemperature.h> #define BLYNK_PRINT Serial // Comment this out to disable prints and save space #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #include <SimpleTimer.h> #include <dht11.h> #include <Adafruit_Sensor.h> // Adafruit_Sensor #include <DHT.h> #include <OneWire.h> #define DHTPIN 2 // Пин к которому подключен датчик #define DHTTYPE DHT11 int temp_0; DHT dht(DHTPIN, DHTTYPE); #define DHT11_PIN 2 const char* ssid = "ssid"; const char* password = "password"; char auth[] = "8SjAfjfo72jlp6tD9WBPblf-mCVaQFK-"; //Токен сгенерированый Блинком (Проверьте почту) SimpleTimer timer; WiFiServer server(80); dht11 DHT; #define ONE_WIRE_BUS 0 // Указываем, к какому выводу подключена датчик OneWire oneWire(ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); void setup() { Serial.begin(115200); delay(10); // Пауза 10 мкс dht.begin(); DS18B20.begin(); Serial.println(""); // Печать пустой строки Serial.print("Connecting to "); // Печать "Подключение к:" Serial.println(ssid); // Печать "Название Вашей WiFi сети" WiFi.begin(ssid, password); // Подключение к WiFi Сети if (WiFi.status() != WL_CONNECTED) // Проверка подключения к WiFi сети { delay(500); // Пауза 500 мкс Serial.print("."); // Печать "." } Serial.println(""); // Печать пустой строки Serial.println("WiFi connected"); // Печать "Подключение к WiFi сети осуществлено" server.begin(); // Запуск Web сервера Serial.println("Web server running."); // Печать "Веб-сервер запущен" delay(10000); // Пауза 10 000 мкс Serial.println(WiFi.localIP()); // See the connection status in Serial Monitor Blynk.begin(auth, ssid, password); //сюда вписываем имя и пароль WiFi сети timer.setInterval(1000L, sendUptime); timer.setInterval(1000L, getSendData); } void sendUptime() { Blynk.virtualWrite(10, DHT.temperature); //Виртульный pin Blynk.virtualWrite(11, DHT.humidity); // Виртульный pin } void loop() { Blynk.run(); // Initiates Blynk timer.run(); // Initiates SimpleTimer int chk; chk = DHT.read(DHT11_PIN); // READ DATA html(); } void html() { WiFiClient client = server.available(); // Получаем данные, посылаемые клиентом if (client){ Serial.println("New client"); // Отправка "Новый клиент" boolean blank_line = true; // Создаем переменную, чтобы определить конец HTTP-запроса while (client.connected()){ // Пока есть соединение с клиентом if (client.available()){ // Если клиент активен char c = client.read(); // Считываем посылаемую информацию в переменную "с" if (c == '\n' && blank_line){ delay(3000); float t = dht.readTemperature(); // Запрос на считывание температуры float h = dht.readHumidity(); client.println("HTTP/1.1 200 OK"); // Стандартный заголовок HTTP client.println("Content-Type: text/html"); client.println("Connection: close"); // Соединение будет закрыто после завершения ответа client.println("Refresh: 10"); // Автоматическое обновление каждые 10 сек client.println(); client.println("<!DOCTYPE HTML>"); // Веб-страница создается с использованием HTML client.println("<html>"); // Открытие тега HTML client.println("<head>"); client.print("<title>ESP8266 TEMP</title>"); // Название страницы client.println("</head>"); client.println("<body>"); client.println("<h1>ESP8266 - Temperature & Humidity</h1>"); client.println("<h3>t = "); client.println(t); // Отображение температуры client.println("*C</h3>"); client.println("</head>"); client.println("<body>"); client.println("<h3>H= "); client.println(h); // Отображение влажности client.println("</h3>"); client.println("<h3>Temperature = "); client.println(DS18B20.getTempCByIndex(0),0); client.println("</body>"); client.println("</html>"); // Закрытие тега HTML break; // Выход } if (c == '\n'){ // Если "с" равен символу новой строки blank_line = true; // Тогда начинаем новую строку } else if (c != '\r'){ // Если "с" не равен символу возврата курсора на начало строки blank_line = false; // Тогда получаем символ на текущей строке } } } client.stop(); // Закрытие соединения Serial.println("Client disconnected."); ESP.restart(); } } void getSendData() { DS18B20.requestTemperatures(); temp_0 = DS18B20.getTempCByIndex(0); // Sensor 0 показания для датчика 1 в цельсиях Blynk.virtualWrite(9, temp_0); //выврд данных на виртуальный пин V10 }
Каким образом и где искали?
в гугле, получение отправка данных в json, искал сайты где пишут про json, в ютубе, нашел 1 видео, с отправкой данных, немного не понял, пытался по нему делать, не чего не оплучатся. При переходе на страницу, у меня происходит перезагрузка скетча.
Странный гугл используете. Наверное один из первых релизов.
Мой по фразе "ESP JSON" наваливает так, что монитор во все стороны раздувает.
Немного не в ту степь ушел, нашел как получать данные по /json, но теперь неполучатся сделать страницу с тепературой.