77 проектов Arduino
.pdf
Эксперимент 71 |
321 |
String inputString = ""; String inputString1 = ""; // строка пришла
boolean stringComplete = false;
//сервер Народного мониторинга char server[] = "www.narodmon.ru";
//массив для получения данных от сервера char response[40];
void setup(void){ delay(5000);
Serial.begin(115200); WiFi.begin(ssid, password); Serial.print("*");
// Подсоединение к точке доступа
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());
}
void loop(void){ serialEvent1();
if (stringComplete) {
//отправить данные на сайт sendDataNarodmon(inputString);
//очистить строку inputString = ""; stringComplete = false;
}
}
// получение строки по Serial void serialEvent1() {
boolean flag1=false;
while (Serial.available() && flag1==false) { // получить байт:
char inChar = (char)Serial.read(); Serial.write(inChar);
if (inChar == '$') { stringComplete = true; flag1=true;
Эксперимент 71 |
323 |
Переключатели на плате Arduino+WiFi необходимо установить следующим образом:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
OFF |
OFF |
OFF |
OFF |
ON |
ON |
ON |
|
|
|
|
|
|
|
И загрузить скетч на модуль ESP8266.
Открываем монитор последовательного порта и пробуем отправлять данные (см. рис. 71.2).
Рис.71.2.Получение данных по последовательному порту и отправка на сайт Народного мониторинга
При отправке строки /get?ID=440365430747&H1=45&T1=13&P1=713$/get?ID=440365430747&H1=45
&T1=13&P1=713
Приходит ответ OK. Значит, данные успешно отправлены. Переходим к следующему этапу – добавлению устройства в свой профиль для отображения на карте.
Переходим на сайт http://narodmon.ru, авторизуемся и открываем пункт меню Датчики Мои Датчики Добавить устройство, где необходимо ввести ID твоего (нашего?) устройства (рис. 71.3).
В появившемся окне выбераем тип данных и название для каждого из датчика, установливаем доступ к показаниям для каждого датчика (публичный или приватный), выполняем привязку к карте, указав полный адрес его размещения или геокоординаты (рис. 71.4).
324 Эксперимент 71
Рис.71.3.Ввод ID устройства
Внимание !!! Установка публичного доступа возможна только для уличных датчиков.
Рис.71.4.Редактирование данных устройства
После этого устройство появится на карте (рис. 71.5).
Powered by TCPDF (www.tcpdf.org)
Эксперимент 71 |
325 |
Рис.71.5.Устройство на карте Народного мониторинга.
В следующем эксперименте организуем отправку реальных данных домашней метеостанции.
Эксперимент 72.
Отправка данных датчиков домашней метеостанции на сайт Народного мониторинга
В этом эксперименте соберем домашнюю метеостанцию, обработаем данные с датчиков и отправим их на модуль ESP8266
для сайта Народного мониторинга
Вэксперименте мы будем использовать следующие компоненты: Плата Arduino UNO – 1;
Кабель USB – 1;
Плата прототипирования – 1; Датчик BMP280 – 1;
Датчик DHT11 – 1; Провода MM – 8.
Вэксперименте71мынастроилиотправкуданных,получаемыхспоследовательного порта, на сайт Народного мониторинга. Строку с данными, которые будем получать
сдатчиков, будем формировать на Arduio, а затем отправлять по последовательному порту на модуль ESP8266.
Схема соединений показана на рис. 72.1.
Нам необходимо каждые 5 минут получать показания с датчиков BMP280 и DHT11 и формировать строку вида
/get?ID=440365430747&H1=valueh&T1=valuet&P1=valuep*
Затем отправлять эту строку по последовательному порту в модуль ESP8266.
Сдатчиками BMP280 и DHT11 мы работали в экспериментах 39, 41. Содержимое скетча показано в листинге 72.1.
Листинг 72.1.
// подключение библиотек
#include "DHT.h" #include <Wire.h> #include <SPI.h>
#include <Adafruit_Sensor.h> #include <Adafruit_BMP280.h>
Эксперимент 72 |
327 |
Рис.72.1.Схема соединений для метеостанции на датчиках BMP180 и DHT11
//пин для подключения датчика DHT #define DHTPIN 10
//тип датчика DHT
#define DHTTYPE DHT11 |
// DHT 11 |
//создание экземпляров
Adafruit_BMP280 bmp;
DHT dht(DHTPIN, DHTTYPE);
//для опроса
unsigned long millissend=0; unsigned long pauseseconds=10;
// ID - устройства в Народном мониторинге
String IDstr="441369430175";
void setup()
{
//подключение последовательного порта
Serial.begin(115200);
//запуск датчиков DHT,BMP20 dht.begin();
bmp.begin();
}
void loop() {
// ждем время паузы
if(millis()-millissend>=1000) { pauseseconds--;
Эксперимент 72 |
329 |
Далее необходимо перевести плату в режим ATmega328 ESP8266. Переключатели необходимо установить следующим образом:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
ON |
ON |
OFF |
OFF |
OFF |
OFF |
OFF |
|
|
|
|
|
|
|
Теперь Arduino и ESP8266 соединены по последовательному порту.
Через некоторое время проверяем отправку данных на сайт Народного мониторинга.
Заходим на сайт Народного мониторинга в меню Профиль Мои Датчики и в открывшемся окне переходим по ссылке данные полученные от устройства (см. рис. 72.3).
Рис.72.3.Данные полученные от устройства
Данные отображаются на карте (рис. 72.4), можно посмотреть и графики по каждому датчику (72.5).
Рис.72.4.Данные полученные от устройства
