ESP8266:Примеры/Отображение данных на freeboard.io, поступающих от чипа ESP8266 и датчика DHT11/DHT22
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Поддержать проект | Содержание | Введение | Модули | AT-команды | Прошивки | Примеры | Проекты | Типовые проблемы | Библиотеки |
Проверка/Оформление/Редактирование: Мякишев Е.А.
![]() |
Черновик |
Отображение данных на freeboard.io, поступающих от чипа ESP8266 и датчика DHT11/DHT22
В этом примере демонстрируется отображение данных на freeboard.io, поступающих от чипа ESP8266 и датчика DHT11/DHT22.
Последовательность действий
Выполнение данного примера разобьем на два этапа:
Этап №1: Отправка данных в сервис dweet.io
- Установить аддон ESP8266 для IDE Arduino;
- Установить библиотеку DHT;
- Собрать схему и подключить конвертер USB FTDI к компьютеру, но не подключайте пока перемычку идущую на вывод VCC модуля ESP-01;
- Вставить код программы в Arduino IDE;
- Выбрать в меню Иструменты->Порт: соответствующий COM-порт;
- Выбрать в меню "Инструменты->Плата" плату "Generic ESP8266 Module";
- Нажать кнопку "Загрузка";
- Подключить перемычку идущую на вывод VCC модуля ESP-01. Т.к. вывод GPIO0 подключен к земле, модуль при включении перейдет в режим загрузки;
- Дождаться загрузки;
- Открываем браузер и переходим по адресу https://dweet.io/follow/TESTID, где вместо TESTID укажите свой уникальный идентификатор, который вы задали в коде. Если данные еще не поступают, то страница будет пустой. Как только ваша плата успешно отправит данные, они будут отображаться на странице и обновляться каждые 10 секунд;
- В мониторе последовательного порта будет отображаться ответ сервера dweet.io;
Этап №2: Отображение данных на freeboard.io
- Создайте аккаунт на freeboard.io;
- Заходим в аккаунт и создаем новую приборную панель с помощью кнопки "Create New", предварительно указав название в текстовом поле:
- После нажатия кнопки "Create New" нас перенаправит на страницу редактирования приборной панели:
- Теперь зададим источник данных для приборной панели, для чего в разделе "DATASOURCES" кликнем по ссылке "ADD":
- В всплывающем окне, в раскрывающемся списке укажем тип источника "Dweet.io":
- В всплывающем окне необходимо заполнить поля:
- NAME - указываем любое название(например: esp8266)
- THING NAME - здесь указываем тот идентификатор/имя, которое вы указали в коде вместо TESTID
Теперь кликаем по кнопке SAVE.
- У вас должен появится в приборной панели в разделе "DATASOURCES" один источник данных:
- Теперь добавим приборы на нашу приборную панель. Для этого кликаем по "+ ADD PANE":
- У вас должна появится пустая область для виджетов:
- Чтобы добавить виджет измерительного прибора, кликните по кнопке "+":
- В всплывающем окне, в раскрывающемся списке выбираем "Gauge"(виджет измерительного прибора):
- В всплывающем окне необходимо заполнить поля:
- TITLE - заголовок виджета(например: температура);
- VALUE - здесь необходимо указать источник данных(смотрите ниже);
- UNITS - единица измерения(например: C или %);
- MINIMUM - укажите минимальное значение, которое вы будете отображать;
- MAXIMUM - укажите максимально значение, которое вы будете отображать;
Справа от поля "VALUE", кликаем по "+ DATASOURCE" и выбираем название источника данных, которое вы указали при его создании:
После этого выбираем, что именно мы будем отображать:
Допустим мы будем отображать температуру, тогда у вас должно получится примерно так:
Кликаем по кнопке SAVE.
- В результате у вас должен появится на панели виджет измерительного прибора с получаемыми значениями(при условии что вы отправляете на сервер данные):
- Аналогичным образом вы можете добавить в панель виджет для измерительного прибора влажности:
- Действуя по аналогии, но выбрав вместо "Gauge" виджет "Sparkline", вы сможете строить графики для отображения истории изменения значений:
Необходимые компоненты
- Модуль с ESP-01, 1шт.;
- Источник питания 3,3 В, 1 шт.;
- Конвертер USB/TTL на базе чипа FT232RL от FTDI, 1 шт.;
- Датчик DHT11/DHT22, 1 шт.;
- Резистор 10кОм, 1 шт.;
Схема
Код
#include <ESP8266WiFi.h> // Подключаем библиотеку ESP8266WiFi
#include "DHT.h" // Подключаем библиотеку DHT
#define DHTPIN 2 // Номер вывода GPIO, в данном случае используем GPIO2
#define DHTTYPE DHT11 // Тип используемого датчика
const char* ssid = "имя вашей точки доступа"; // Укажите здесь в кавычках название вашей точки доступа
const char* password = "пароль вашей точки доступа"; // Укажите здесь в кавычках пароль вашей точки доступа
const char* host = "dweet.io"; // Адрес сервера на который будем отправлять данные
DHT dht(DHTPIN, DHTTYPE); // Создаем объект датчика
void setup() {
Serial.begin(115200); // Инициализируем последовательный порт
delay(10);
dht.begin(); // Инициализируем датчик
// Подключаемся к точке доступа WiFi
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
delay(10000); // Задержка между повторными измерениями 10 секунд
Serial.print("Connecting to ");
Serial.println(host);
// Создаем TCP соединение при помощи класса WiFiClient
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
float h = dht.readHumidity(); // Считываем данные влажности
float t = dht.readTemperature(); // Считываем данные температуры
// Отправляем запрос на сервер
// Внимание!!!
// Здесь, вместо TESTID, укажите любой идентификатор, желательно уникальный(например: bestcat11 или batman12018 ;))
client.print(String("GET /dweet/for/TESTID?temperature=") + String(t) + "&humidity=" + String(h) + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
// Получаем все строки ответа сервера и отправляем их в последовательный порт
while (client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
}
См.также
Внешние ссылки
ESP8266 AT-команды | |
---|---|
Список AT-команд | |
Базовые команды |
|
Команды для WiFi |
|
Команды для TCP/IP |
|