В этой статье давайте посмотрим, как использовать ESP8266+DHT11 с Binker для считывания температуры и влажности в помещении.
VCC
--> 3V
GND
-->GND
DATA
--> 2
#define BLINKER_WIFI
#define BLINKER_MIOT_SENSOR //Представляем одноклассников Сяоай
#include <Blinker.h>
#include <DHT.h> //Заголовочный файл датчика DHT11
#define DHTPIN 4 //Определяем контакт io4 подключения модуля DHT11 (контакт D2)
#define DHTTYPE DHT11 // Используйте модуль температуры и влажности DHT11, конечно, вы также можете заменить его другим DHT.
char auth[] = "1c2ce3eef946"; //Ключ приложения освещения
char ssid[] = "PDCN"; //Имя Wi-Fi, необходимое для подключения
char pswd[] = "1234567890"; //пароль Wi-Fi
BlinkerNumber HUMI("humi"); //Определяем имя ключа данных влажности
BlinkerNumber TEMP("temp"); //Определяем имя ключа данных температуры
DHT dht(DHTPIN, DHTTYPE); //Определяем dht
float humi_read = 0, temp_read = 0; //Инициализируем данные чтения
//Компонент информационной панели
void heartbeat()
{
HUMI.print(humi_read); // Возвращаем данные о влажности в блинкер-приложение
TEMP.print(temp_read); //Вернем данные о температуре в приложение блинкер
}
//Компонент графика в реальном времени
void dataStorage()
{
Blinker.dataStorage("temp", temp_read);
Blinker.dataStorage("humi", humi_read);
}
//данные Вернуться в одноклассники Сяоай
void miotQuery(int32_t queryCode)
{
BLINKER_LOG("MIOT Query codes: ", queryCode);
int humi_read_int=humi_read; //Преобразуем число с плавающей запятой в тип int, целое число
BlinkerMIOT.humi(humi_read_int); //Сяо Ай получает влагу
BlinkerMIOT.temp(temp_read); //Сяо Ай измеряет температуру
BlinkerMIOT.print();
}
void setup()
{
//Инициализируем последовательный порт Serial и включаем вывод отладки
Serial.begin(115200);//Скорость передачи данных
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
Blinker.begin(auth, ssid, pswd);//настройки инициализации WIFI
Blinker.attachHeartbeat(heartbeat);//Регистрация информационной панели
dht.begin();
BlinkerMIOT.attachQuery(miotQuery);//Регистрация Xiaoai
Blinker.attachDataStorage(dataStorage);//Регистрация кривой в реальном времени
}
void loop()
{
Blinker.run();//Отвечает за обработку данных, полученных блинкером. Каждый запуск будет анализировать данные, полученные устройством. (Это очень важно)
float h = dht.readHumidity();//Читаем влажность, собранную данными DHT11
float t = dht.readTemperature();//Читаем температуру, собранную данными DHT11
if (isnan(h) || isnan(t))//Определить, является ли значение температуры и влажности пустым
{
BLINKER_LOG("Не удалось прочитать данные датчика");
}
else
{
BLINKER_LOG("Humidity: ", h, " %");//Выводим отладочную информацию
BLINKER_LOG("Temperature: ", t, " *C");
humi_read = h;
temp_read = t;
}
Blinker.delay(200);
//функция задержки, Во время процесса задержки соединение между устройствами и обработка приема все еще сохраняются.
}
Облако здесь поддерживает только устройства, подключенные к Интернету.,Если измеритель температуры и влажности выключен и отключен от Интернета,данные Нетхранилищеиз,Внезапная нисходящая тенденция на графике,После повторного подключения оно резко возрастет. Функция облачного хранилища здесь не очень мощная.,Если вы измените код и повторно загрузите программу, предыдущие данные в облаке будут удалены.
2. Специальные функции
(1) Функция облачного хранения данных:
void dataStorage()//облакохранилище Температура и влажностьданныефункция
{ Blinker.dataStorage("temp",temp_read);//хранилищетемпература Blinker.dataStorage("humi",humi_read);//хранилищевлажность
}
функциявнутри телаBlinker.dataStorage("temp", temp_read);
Первый параметрданные Имя ключа,Используется для отображения на значке мобильного телефона.,Второй параметр — это переменная данных, которая будет храниться.
(2) После записи функции в коде,Это необходимо вызвать в функции основного цикла.,Вызовите функцию следующим образом:
Blinker.attachDataStorage(dataStorage);
этотфункцияиз意思就是每次循环из时候就会调用上面изdataStorage
функция,Это позволяет достичь эффекта, позволяющего получить каждый раз облачное хранилище данных.
Авторские права принадлежат: Сяояоцзы Дабяо
Ссылка на эту статью:https://cloud.tencent.com/developer/article/2293348
Лицензия: Creative Commons Attribution-NonCommercial 4.0 International. Перепечатка цитируемых статей регулируется той же лицензией.