MEGA + ESP и передача данных в MD

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Ответить
Берендей
Сообщения: 125
Зарегистрирован: Ср окт 18, 2017 9:44 am
Благодарил (а): 24 раза
Поблагодарили: 18 раз

MEGA + ESP и передача данных в MD

Сообщение Берендей » Пт окт 27, 2017 10:09 am

Приветствую.

Столкнулся с проблемкой, уже пару недель читаю разные форумы, но решения пока не нашел.

У меня есть домашняя метеостанция на МEGA2560 которая принимает данные от беспроводного датчика OREGON, делает замеры в комнате, отображает информацию на LCD экране, и отсылает данные на thingspeak.com. В сеть она выходит посредством ESP8266, которая работает в режиме модема, и управляется АТ командами.

Хочется отправлять с нее данные в MD, но все, что я могу найти, либо относится к программированию непосредственно ESP8266, либо рассматриваются варианты с использованием Ethernet шилдов.

Как можно связать ее с МD?
OrangePI PC/ARMBIAN 5.36 + DS3231+433Mhz. Esp8266(ArduinoIDE). Arduino MEGA2560 + Oregon THGN132N.
Sonoff RF Bridge + sensors
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1754 раза
Контактная информация:

Re: MEGA + ESP и передача данных в MD

Сообщение skysilver » Пт окт 27, 2017 10:18 am

Берендей писал(а): и отсылает данные на thingspeak.com.
Это ключевой момент. Раз есть отправка в thingspeak, то по аналогии можно и в MJD отправить. Какой там код сейчас за thingspeak отвечает?
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Берендей
Сообщения: 125
Зарегистрирован: Ср окт 18, 2017 9:44 am
Благодарил (а): 24 раза
Поблагодарили: 18 раз

Re: MEGA + ESP и передача данных в MD

Сообщение Берендей » Пт окт 27, 2017 10:27 am

Отправляем строку по IP в порт.
Вот функция отправки:

void MYupdateTemp(String temp) {

tring cmd = "AT+CIPSTART=\"TCP\",\"";
cmd += IP;
cmd += "\",80";

monitor.println(cmd);

delay(2000);

if(monitor.find("Error")){
return; }

cmd = GET1; // строка с ключем и полем
cmd += temp;
cmd += "\r\n";

monitor.print("AT+CIPSEND=");
monitor.println(cmd.length());

if(monitor.find(">")){
monitor.print(cmd);
}else{
monitor.println("AT+CIPCLOSE"); }

}
OrangePI PC/ARMBIAN 5.36 + DS3231+433Mhz. Esp8266(ArduinoIDE). Arduino MEGA2560 + Oregon THGN132N.
Sonoff RF Bridge + sensors
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1754 раза
Контактная информация:

Re: MEGA + ESP и передача данных в MD

Сообщение skysilver » Пт окт 27, 2017 10:36 am

Вот в переменную GET собирается нужный URL, на который отправляется значение temp. Нужно изменить этот URL в соответствии с API MJD (http://majordomo.smartliving.ru/Main/Urls). В IP соответственно подставить IP сервера MJD. Например:

Код: Выделить всё

cmd = "/objects/?script=MegaESP&temp=";
cmd += temp;
cmd += "\r\n";
вызывается сценарий MegaESP и ему через параметры передается значение temp.
За это сообщение автора skysilver поблагодарил:
Берендей (Пт окт 27, 2017 10:43 am)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Берендей
Сообщения: 125
Зарегистрирован: Ср окт 18, 2017 9:44 am
Благодарил (а): 24 раза
Поблагодарили: 18 раз

Re: MEGA + ESP и передача данных в MD

Сообщение Берендей » Пт окт 27, 2017 11:23 am

Спасибо! Все оказывается довольно легко, просто не могу сказать, что хорошо ориентируюсь в данной теме.
OrangePI PC/ARMBIAN 5.36 + DS3231+433Mhz. Esp8266(ArduinoIDE). Arduino MEGA2560 + Oregon THGN132N.
Sonoff RF Bridge + sensors
Ответить