Я надеюсь что ошибаюсь -в конечном итоге мы должны для получения данных в МД парсить данные с AMS?serghei писал(а): ↑Пт июл 27, 2018 1:41 pm90 % кода AMS - это работа с вебом. Еще 9 % - это связь с МД. И только 1 % - это работа с датчиками.
Тут все что работает с обычной ардуиной , будет работать и с в составе AMS . Вся фишка - увидеть эту работу в браузере.
Более подробно вечером.
А потренироваться на кошках - запустите пример с DHT датчиками. Физически можно и не подключать. Добавь код от Sps и мой для даш-панели. А там будет ясно как это работает.Ссылка.
Подключение железа к AMS
Модератор: Alex
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: Подключение железа к AMS
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Подключение железа к AMS
Если очень коротко - то ДА.Просто ардуина получает данные с великого множества датчиков и тупо с помощью вкладки Majer передает их Алисе. Последняя в свою очередь просто их распарсивает и Вы их видите где угодно. По дефолту в AMS так реализовано передача трех температур с DS18B20 и 14 данных мощности. Процесс распарсивания выкладывал неоднократно. Но это для AMS как из пушки по воробьям.
Можно пойти еще дальше. Есть замечательная плата от RobotDyn с Мегой и ESP8266 на борту. Есть протокол передачи данных между двумя серверами в обе стороны. На Мегу я прилепил TFT экран 3.5 дюйма с тач-скрином ( БЕЗ интернет-шилда). А идея простая - Мега меряет что нибудь , показывает на экране , при этом сливает данные в ESP8266, а последняя передает Алисе.
В этом отношении AMS нафарширован по самое нихочу )). Надо только очень хорошо разбираться в коде.
А для начала поставить себе простую задачу - включить реле с МД на AMS-е. Для этого уже всё готово.
Можно пойти еще дальше. Есть замечательная плата от RobotDyn с Мегой и ESP8266 на борту. Есть протокол передачи данных между двумя серверами в обе стороны. На Мегу я прилепил TFT экран 3.5 дюйма с тач-скрином ( БЕЗ интернет-шилда). А идея простая - Мега меряет что нибудь , показывает на экране , при этом сливает данные в ESP8266, а последняя передает Алисе.
В этом отношении AMS нафарширован по самое нихочу )). Надо только очень хорошо разбираться в коде.
А для начала поставить себе простую задачу - включить реле с МД на AMS-е. Для этого уже всё готово.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: Подключение железа к AMS
Значит я не ошибся... жаль я концепцию всей этой связки представлял иначе - веб сервер собирает и обрабатывает данные себе по тихому, а мы запрашиваем нужное нам у ядра. Т.е. веб нам не нужен в принципе, только для посмотреть на утонченный плиточный , 3D дизайн и когда появится настроение - ознакомиться с роскошными рекламными страничками. Можно посмотреть на состояние портов что как на меня, в этом компоте самое ценное. Так все таки - зачем нам кузнец? ©(...зачем нам кузнец? что я лошадь что ли?....) или тут не прав?
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Подключение железа к AMS
Концепция очень простая. AMS-у Алиса ВООБЩЕ не нужна !! Это абсолютно самодостаточная система , которая умеет даже ползти на сайт погоды и показывать прогноз на 4 дня вперед 73 параметра и с тучками! Я уже не говорю про сеть MySensors.
А Алисе AMS нужен только как гейт между нарисованными кнопками на сценах и реальными реле , заменяющие выключатели с клапанами на батареях ))).
А картинка портов мне оочень полезна - там вижу реальный уровень сигнала с аналоговых датчиков )).
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 148
- Зарегистрирован: Ср июл 25, 2018 10:37 pm
- Благодарил (а): 43 раза
- Поблагодарили: 8 раз
Re: Подключение железа к AMS
Только мне Алиса больше по душе. Может потому что с ней понятней и проще, может потому что я ее вижу значительно перспективней применительно к моему дому и я по ней нашел значительно больше нужной и полезной информации и что самое главное- быстрее, а может потому что она просто женщина...serghei писал(а): ↑Пт июл 27, 2018 10:59 pmКонцепция очень простая. AMS-у Алиса ВООБЩЕ не нужна !! Это абсолютно самодостаточная система , которая умеет даже ползти на сайт погоды и показывать прогноз на 4 дня вперед 73 параметра и с тучками! Я уже не говорю про сеть MySensors.
А Алисе AMS нужен только как гейт между нарисованными кнопками на сценах и реальными реле , заменяющие выключатели с клапанами на батареях ))).
А картинка портов мне оочень полезна - там вижу реальный уровень сигнала с аналоговых датчиков )).
На счет картинки портов полностью согласен! Тогда в свете выше сказанного что посоветуете поставить между моей малиной(Алисой) и домом в качестве промежуточного звена(исполнительное устройство)? Использовать GPIO малины не вижу смысла.
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Подключение железа к AMS
Сначала поставьте цель. Вот есть Алиса - а вот....ЧТО ??? Если хотите щелкать 24-мя выключателями с лампочками , тогда Вам в Мега-Лайт контроллер . При этом если Алиса уснула , Мега будет пахать сама по себе и свет все таки включится.
Если хотите управлять клапанами на батареях или теплым полом, тогда в AMS и щелкать релюшками со сцены Алисы. Можно еще собрать температуру с влажностью во всех комнатах и просто передать Алисе.
Посмотрите что вытворяет Алекс в AMS-PRO. Если понимаете в программировании ардуино - то теоретически всё это можно повторить.
Лично у меня с Алисой дружить не получается ,хотя живет на апельсине PI-PC и пока только будит по утрам , орет радио и выгоняет на работу ))). Ну и показывает кто из AMS еще жив в системе )) Я то же пока только учусь....
Если хотите управлять клапанами на батареях или теплым полом, тогда в AMS и щелкать релюшками со сцены Алисы. Можно еще собрать температуру с влажностью во всех комнатах и просто передать Алисе.
Посмотрите что вытворяет Алекс в AMS-PRO. Если понимаете в программировании ардуино - то теоретически всё это можно повторить.
Лично у меня с Алисой дружить не получается ,хотя живет на апельсине PI-PC и пока только будит по утрам , орет радио и выгоняет на работу ))). Ну и показывает кто из AMS еще жив в системе )) Я то же пока только учусь....
- Рейтинг: 1.16%
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1753 раза
- Контактная информация:
Re: Подключение железа к AMS
Зайди в Коннект. Там тонна оборудования, которым пользуются реальные пользователи МДМ.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 230
- Зарегистрирован: Чт фев 12, 2015 2:34 pm
- Благодарил (а): 36 раз
- Поблагодарили: 6 раз
Re: Подключение железа к AMS
И вот...
По поводу скетчей Contacts
из АМС 16 и 17 версии
Старая версия АМС 16
новая версия АМС 17
В старой версии присутствует такой кусок кода
В новой версии этого куска кода нет
По поводу скетчей Contacts
из АМС 16 и 17 версии
Старая версия АМС 16
Код: Выделить всё
/*
Modul Contacts
part of Arduino Mega Server project
*/
#ifdef CONTACTS_FEATURE
#define cont1pin 27 // HOM
#define cont2pin 31 // CLO
#define OPEN 1
#define CLOSE 0
char cont1object[] = "contHOM";
char cont2object[] = "contCLO";
char cont1openMess[] = "Open"; char cont1closeMess[] = "Closed";
char cont2openMess[] = "Down"; char cont2closeMess[] = "Norm";
// states
// 0 - open
// 1 - close
// 2 - not defined
// 3 - not defined and not contXstatus
byte cont1state = 2; byte old_cont1state = 3; byte cont1objectState = 2;
byte cont2state = 2; byte old_cont2state = 3; byte cont2objectState = 2;
void contactsInit() {
pinMode(cont1pin, INPUT);
pinMode(cont2pin, INPUT);
modulContacts = MODUL_ENABLE;
started("Contacts", true);
}
void printAndSend(char obj[], char mess[]) {
#ifdef EVENTS_CONTACTS
timeStamp();
Serial.print(obj);
Serialprint(": ");
Serial.println(mess);
#endif
}
void contactsWorks() {
// cont1 (HOM)
cont1state = digitalRead(cont1pin);
if (cont1state != old_cont1state) {
old_cont1state = cont1state;
if (cont1state == 0) {
cont1objectState = OPEN;
printAndSend(cont1object, cont1openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, OPEN);
#endif
} else {
cont1objectState = CLOSE;
printAndSend(cont1object, cont1closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, CLOSE);
#endif
}
}
if (cycle1m) {
old_cont1state = cont1state;
if (cont1state == 0) {
printAndSend(cont1object, cont1openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, 1);
#endif
} else {
printAndSend(cont1object, cont1closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, 0);
#endif
}
}
// cont2 (CLO)
cont2state = digitalRead(cont2pin);
if (cont2state == 1) {
if (cont2state != old_cont2state) {
old_cont2state = cont2state;
printAndSend(cont2object, cont2openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, 1);
#endif
}
} else {
if (cont2state != old_cont2state) {
old_cont2state = cont2state;
printAndSend(cont2object, cont2closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, 0);
#endif
}
}
if (cycle1m) {
old_cont2state = cont2state;
if (cont2state == 1) {
printAndSend(cont2object, cont2openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, 1);
#endif
} else {
printAndSend(cont2object, cont2closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, 0);
#endif
}
}
} // contactsWorks()
#endif // CONTACTS_FEATURE
новая версия АМС 17
Код: Выделить всё
/
*
Module Contacts
part of Arduino Mega Server project
*/
#ifdef CONTACTS_FEATURE
#define CONT1_PIN 27
#define CONT2_PIN 31
#define OPEN 1
#define CLOSE 0
char cont1object[] = "cont1";
char cont2object[] = "cont2";
char cont1openMess[] = "Open"; char cont1closeMess[] = "Closed";
char cont2openMess[] = "Down"; char cont2closeMess[] = "Norm";
// states
// 0 - open
// 1 - close
// 2 - not defined
byte cont1state = 2; byte old_cont1state = 2; byte cont1objectState = 2;
byte cont2state = 2; byte old_cont2state = 2; byte cont2objectState = 2;
void contactsInit() {
pinMode(CONT1_PIN, INPUT);
pinMode(CONT2_PIN, INPUT);
moduleContacts = MODULE_ENABLE;
started("Contacts");
}
void printContMess(char obj[], char mess[]) {
timeStamp(); Serial.print(obj); Serial.print(F(": ")); Serial.println(mess);
}
void contactsWorks() {
// cont1
cont1state = digitalRead(CONT1_PIN);
if (cont1state != old_cont1state) {
old_cont1state = cont1state;
if (cont1state == 0) {
cont1objectState = OPEN;
printContMess(cont1object, cont1openMess);
} else {
cont1objectState = CLOSE;
printContMess(cont1object, cont1closeMess);
}
}
// cont2
cont2state = digitalRead(CONT2_PIN);
if (cont2state != old_cont2state) {
old_cont2state = cont2state;
if (cont2state == 1) {
cont2objectState = OPEN;
printContMess(cont2object, cont2openMess);
} else {
cont2objectState = CLOSE;
printContMess(cont2object, cont2closeMess);
}
}
} // contactsWorks()
#endif // CONTACTS_FEATURE
В старой версии присутствует такой кусок кода
Код: Выделить всё
if (cont1state == 0) {
cont1objectState = OPEN;
printAndSend(cont1object, cont1openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, OPEN);
#endif
} else {
cont1objectState = CLOSE;
printAndSend(cont1object, cont1closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, CLOSE);
#endif
}
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
php 7, AMS,broadlink rm2,rm3 mini.
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Подключение железа к AMS
Приеду домой - проверю. Один контакт работает на ESP32. На Меге сейчас залью и посмотрю. Только МД нет на работе.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Подключение железа к AMS
Этот кусок кода унаследован ещё со времён когда АМС-а ещё не было и он использовался в моей частной конфигурации умного дома. Потом он кочевал из версии в версию и когда руки дошли — он был удалён из АМС-а как не системный и не имеющий никакого отношения к дистрибутиву АМС (на концептуальном уровне).В новой версии этого куска кода нет