Приветствую.
Столкнулся с проблемкой, уже пару недель читаю разные форумы, но решения пока не нашел.
У меня есть домашняя метеостанция на МEGA2560 которая принимает данные от беспроводного датчика OREGON, делает замеры в комнате, отображает информацию на LCD экране, и отсылает данные на thingspeak.com. В сеть она выходит посредством ESP8266, которая работает в режиме модема, и управляется АТ командами.
Хочется отправлять с нее данные в MD, но все, что я могу найти, либо относится к программированию непосредственно ESP8266, либо рассматриваются варианты с использованием Ethernet шилдов.
Как можно связать ее с МD?
MEGA + ESP и передача данных в MD
Модератор: immortal
-
- Сообщения: 125
- Зарегистрирован: Ср окт 18, 2017 9:44 am
- Благодарил (а): 24 раза
- Поблагодарили: 18 раз
MEGA + ESP и передача данных в MD
OrangePI PC/ARMBIAN 5.36 + DS3231+433Mhz. Esp8266(ArduinoIDE). Arduino MEGA2560 + Oregon THGN132N.
Sonoff RF Bridge + sensors
Sonoff RF Bridge + sensors
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: MEGA + ESP и передача данных в MD
Это ключевой момент. Раз есть отправка в thingspeak, то по аналогии можно и в MJD отправить. Какой там код сейчас за thingspeak отвечает?Берендей писал(а): и отсылает данные на thingspeak.com.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 125
- Зарегистрирован: Ср окт 18, 2017 9:44 am
- Благодарил (а): 24 раза
- Поблагодарили: 18 раз
Re: MEGA + ESP и передача данных в MD
Отправляем строку по 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"); }
}
Вот функция отправки:
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
Sonoff RF Bridge + sensors
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: MEGA + ESP и передача данных в MD
Вот в переменную GET собирается нужный URL, на который отправляется значение temp. Нужно изменить этот URL в соответствии с API MJD (http://majordomo.smartliving.ru/Main/Urls). В IP соответственно подставить IP сервера MJD. Например:вызывается сценарий MegaESP и ему через параметры передается значение temp.
Код: Выделить всё
cmd = "/objects/?script=MegaESP&temp=";
cmd += temp;
cmd += "\r\n";
- Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 125
- Зарегистрирован: Ср окт 18, 2017 9:44 am
- Благодарил (а): 24 раза
- Поблагодарили: 18 раз
Re: MEGA + ESP и передача данных в MD
Спасибо! Все оказывается довольно легко, просто не могу сказать, что хорошо ориентируюсь в данной теме.
OrangePI PC/ARMBIAN 5.36 + DS3231+433Mhz. Esp8266(ArduinoIDE). Arduino MEGA2560 + Oregon THGN132N.
Sonoff RF Bridge + sensors
Sonoff RF Bridge + sensors