Страница 1 из 13
MySensors для новичков
Добавлено: Чт мар 02, 2017 12:22 am
Roman_13j
Привет, друзья! Столкнулся с массой проблем при попытке сделать умный дом на mysensors. Я новичек в этой теме. Уважаемые знатоки, не могли б вы поделиться опытом по построении умного дома на mysensors. Интересует именно Ethernet-шлюз. Было б хорошо, если б в этой теме вы могли поделиться рабочими скетчами шлюза (желательно ethernet, но можно и mqtt) и хотя бы пару нод (датчик движения, датчик температуры и влажности), а также какие настройки нужно провести в модуле mysensors для получения данных в majordomo. Всем откликнувшимся заранее ОГРОМНОЕ СПАСИБО!!!
Re: MySensors для новичков
Добавлено: Чт мар 02, 2017 12:50 am
DimSun75
Roman_13j писал(а):Привет, друзья! Столкнулся с массой проблем при попытке сделать умный дом на mysensors. Я новичек в этой теме. Уважаемые знатоки, не могли б вы поделиться опытом по построении умного дома на mysensors. Интересует именно Ethernet-шлюз. Было б хорошо, если б в этой теме вы могли поделиться рабочими скетчами шлюза (желательно ethernet, но можно и mqtt) и хотя бы пару нод (датчик движения, датчик температуры и влажности), а также какие настройки нужно провести в модуле mysensors для получения данных в majordomo. Всем откликнувшимся заранее ОГРОМНОЕ СПАСИБО!!!
https://www.mysensors.org/ читали? Там вроде все достаточно красиво расписано.
https://www.mysensors.org/build/ethernet_gateway тут про шлюз расписано, код рабочий. Да и в примерах библиотеки это код есть, как и коды для нод. Что непонятно - спрашивайте, попробуем объяснить.
Re: MySensors для новичков
Добавлено: Чт мар 02, 2017 7:31 am
lanket
DimSun75 писал(а):Roman_13j писал(а):Привет, друзья! Столкнулся с массой проблем при попытке сделать умный дом на mysensors. Я новичек в этой теме. Уважаемые знатоки, не могли б вы поделиться опытом по построении умного дома на mysensors. Интересует именно Ethernet-шлюз. Было б хорошо, если б в этой теме вы могли поделиться рабочими скетчами шлюза (желательно ethernet, но можно и mqtt) и хотя бы пару нод (датчик движения, датчик температуры и влажности), а также какие настройки нужно провести в модуле mysensors для получения данных в majordomo. Всем откликнувшимся заранее ОГРОМНОЕ СПАСИБО!!!
https://www.mysensors.org/ читали? Там вроде все достаточно красиво расписано.
https://www.mysensors.org/build/ethernet_gateway тут про шлюз расписано, код рабочий. Да и в примерах библиотеки это код есть, как и коды для нод. Что непонятно - спрашивайте, попробуем объяснить.
Полностью согласен с предыдущим оратором.
Добавлю что Ivan выкладывал здесь ссылки на свой гитхаб со своими скетчами нод. Считаю эти скетчи высшим пилотажем. Их имеет смысл использовать как эталон. А для ознакомления, более простые скетчи но ассортимент побольше ,
MySensors.org
Отправлено с моего Redmi Note 3 через Tapatalk
Re: MySensors для новичков
Добавлено: Ср мар 08, 2017 5:31 pm
Roman_13j
mysensors.org читал, но не особо понятно, я с английским не очень. Правильно, ли я делаю, нужно взять стандартный скетч для EhernetGateway, в нем включить режим клиента #define MY_CONTROLLER_IP_ADDRESS 192, 168, 0, 101. Вот скетч, который использую для шлюза
Код: Выделить всё
// Enable debug prints to serial monitor
#define MY_DEBUG
// Enable and select radio type attached
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69
// Enable gateway ethernet module type
#define MY_GATEWAY_W5100
// W5100 Ethernet module SPI enable (optional if using a shield/module that manages SPI_EN signal)
//#define MY_W5100_SPI_EN 4
// Enable Soft SPI for NRF radio (note different radio wiring is required)
// The W5100 ethernet module seems to have a hard time co-operate with
// radio on the same spi bus.
#if !defined(MY_W5100_SPI_EN) && !defined(ARDUINO_ARCH_SAMD)
#define MY_SOFTSPI
#define MY_SOFT_SPI_SCK_PIN 14
#define MY_SOFT_SPI_MISO_PIN 16
#define MY_SOFT_SPI_MOSI_PIN 15
#endif
// When W5100 is connected we have to move CE/CSN pins for NRF radio
#ifndef MY_RF24_CE_PIN
#define MY_RF24_CE_PIN 5
#endif
#ifndef MY_RF24_CS_PIN
#define MY_RF24_CS_PIN 6
#endif
// Enable to UDP
//#define MY_USE_UDP
#define MY_IP_ADDRESS 192,168,0,120 // If this is disabled, DHCP is used to retrieve address
// Renewal period if using DHCP
//#define MY_IP_RENEWAL_INTERVAL 60000
// The port to keep open on node server mode / or port to contact in client mode
#define MY_PORT 5003
// Controller ip address. Enables client mode (default is "server" mode).
// Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere.
#define MY_CONTROLLER_IP_ADDRESS 192, 168, 0, 101
// The MAC address can be anything you want but should be unique on your network.
// Newer boards have a MAC address printed on the underside of the PCB, which you can (optionally) use.
// Note that most of the Ardunio examples use "DEAD BEEF FEED" for the MAC address.
#define MY_MAC_ADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
// Enable inclusion mode
#define MY_INCLUSION_MODE_FEATURE
// Enable Inclusion mode button on gateway
//#define MY_INCLUSION_BUTTON_FEATURE
// Set inclusion mode duration (in seconds)
#define MY_INCLUSION_MODE_DURATION 60
// Digital pin used for inclusion mode button
//#define MY_INCLUSION_MODE_BUTTON_PIN 3
// Set blinking period
#define MY_DEFAULT_LED_BLINK_PERIOD 300
// Flash leds on rx/tx/err
// Uncomment to override default HW configurations
//#define MY_DEFAULT_ERR_LED_PIN 7 // Error led pin
//#define MY_DEFAULT_RX_LED_PIN 8 // Receive led pin
//#define MY_DEFAULT_TX_LED_PIN 9 // Transmit led pin
#if defined(MY_USE_UDP)
#include <EthernetUdp.h>
#endif
#include <Ethernet.h>
#include <MySensors.h>
void setup()
{
}
void loop()
{
}
После можно залить скетч для датчика движения в другую ардуино:
Код: Выделить всё
// Enable debug prints
#define MY_DEBUG
// Enable and select radio type attached
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69
#include <MySensors.h>
unsigned long SLEEP_TIME = 120000; // Sleep time between reports (in milliseconds)
#define DIGITAL_INPUT_SENSOR 3 // The digital input you attached your motion sensor. (Only 2 and 3 generates interrupt!)
#define CHILD_ID 1 // Id of the sensor child
// Initialize motion message
MyMessage msg(CHILD_ID, V_TRIPPED);
void setup()
{
pinMode(DIGITAL_INPUT_SENSOR, INPUT); // sets the motion sensor digital pin as input
}
void presentation()
{
// Send the sketch version information to the gateway and Controller
sendSketchInfo("Motion Sensor", "1.0");
// Register all sensors to gw (they will be created as child devices)
present(CHILD_ID, S_MOTION);
}
void loop()
{
// Read digital motion value
bool tripped = digitalRead(DIGITAL_INPUT_SENSOR) == HIGH;
Serial.println(tripped);
send(msg.set(tripped?"1":"0")); // Send tripped value to gw
// Sleep until interrupt comes in on motion sensor. Send update every two minute.
sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME);
}
После в модуле Mysensors прописать в настройках адрес, который задавали для шлюза.
После этих действий у меня никакие данные не появляются в majordomo. Что я пропустил или делаю не так? Модуль w5100 работает, проверял. Буду очень благодарен за помощь!
Re: MySensors для новичков
Добавлено: Ср мар 08, 2017 6:48 pm
Ivan
После настроек нужно перезапустить циклы.
Также можно проверить программой myscontrol. Ищите на их сайта. Сейчас готовлю плащадку для рускоязычного сообщества mysensors. Где будет русское описание
Re: MySensors для новичков
Добавлено: Ср мар 08, 2017 7:51 pm
ipz
Смотрите в `Панель управления->Устройства -> MySensor->История событий` пошли ли данные. Должно быть что-то вида:
Код: Выделить всё
2017-03-08 19:44:45 Set: Node:15; Sensor:254; Ack:0; Sub:27; Msg:425462556
2017-03-08 19:44:43 Set: Node:14; Sensor:1; Ack:0; Sub:0; Msg:-19.4
2017-03-08 19:44:43 Set: Node:14; Sensor:0; Ack:0; Sub:0; Msg:10.1
2017-03-08 19:44:40 Set: Node:17; Sensor:254; Ack:0; Sub:27; Msg:127080136
2017-03-08 19:44:37 Set: Node:1; Sensor:254; Ack:0; Sub:27; Msg:209461782
Если данные пошли, то тогда в настройках у каждой ноды, на закладке `Сенсоры`, задаете Связанный объект и Связанное свойство, тем самым указав куда в МДМ будут сохранятся данные.
Дальше эти данные, через объекты МДМ, можно использовать по своему усмотрению.
Если данные не пошли, надо смотреть что конкретно выводится в Истории событий...
Re: MySensors для новичков
Добавлено: Ср мар 08, 2017 10:58 pm
SolarW
Roman_13j писал(а):mysensors.org читал, но не особо понятно, я с английским не очень.
Кстати да, очень сдерживает... Английский со словарем не даёт полного понимания о чем собственно речь идёт.
Чувствую что что-то очень интересное - а что именно не понятно.
Ivan писал(а):Сейчас готовлю плащадку для рускоязычного сообщества mysensors. Где будет русское описание
Это будет крайне замечательно!
Re: MySensors для новичков
Добавлено: Чт мар 09, 2017 9:12 am
Roman_13j
Русскоязычный форум по mysensors это было б круто!
Вот, что в истории событий выдает после перезапуска циклов:
http://prntscr.com/ehq3wz
Также скрин из myscontroller:
http://prntscr.com/ehq5li
Я так понимаю, что шлюз коннектиться, но потом сразу отваливается?!
Re: MySensors для новичков
Добавлено: Чт мар 09, 2017 10:09 am
Alien
Для самого начала я бы порекомендовал подключить шлюз через сериал без w5100. Во-первых сразу будет видно логи в консоли, во-вторых отметутся всякие подозрения на питание, сам w5100, сеть и прочее.
А далее по обстоятельствам. Заработает сеть mysensors - можно так и оставить либо искать баг дальше.
Из собственных граблей в этом направлении:
1. w5100 отказался работать на гигабите - перевел на сотку.
2. проблемы в питании. ардуина подключается к сети и работает, но как только идут пакеты mysensors - перегружается.
И все это в разных вариациях при использовании разных arduino, версий IDE и mysensors.
В конечном счете у меня стабильно работает на UNO и на NANO через serial, IDE 1.6.8, mysensors 2.1.1
Re: MySensors для новичков
Добавлено: Чт мар 09, 2017 10:27 am
DimSun75
Roman_13j писал(а):mysensors.org читал, но не особо понятно, я с английским не очень.
Английский нужно учить. Ну и там не такое сложное обсуждение, да и по картинкам все понятно.
Правильно, ли я делаю, нужно взять стандартный скетч для EhernetGateway, в нем включить режим клиента #define MY_CONTROLLER_IP_ADDRESS 192, 168, 0, 101.
Это зачем? Нужно указать желаемый IP в MY_IP_ADDRESS, ну или вообще ее за коментировать, чтобы получать IP по DHCP. Далее загружаем и смотрим, что шлюз выдает в терминал