Dzisiaj opiszę jak odbywa się przesyłanie danych z nadajników MySensors do bramki MySensors i do Domoticz.
Najnowsza biblioteka MySensors wersja 1.5 ->
Link używa dwóch głównych klas:
MySensor i MyMessageInicjalizacja danych - MyMessageMyMessage tworzy kontener do przechowywania danych, aby można było je wysłać do bramki MySensors, wpisujemy je zawsze na początku programu.
Polecenie MyMessage wygląda tak:
MyMessage msg(child-sensor-id, rodzaj-zmiennej);W nawiasie
child-sensor-id identyfikuje podłączony czujnik, definiujemy go na początku programu poleceniem:
#define nazwa kolejny numer czujnikaCzyli, gdy mamy np. kilka czujników np. temperatury i wilgotności, to na początku programu definiujemy:
#define child_id_temp 1
#define child_id_wilg 2
Na stronie MySensors napisali ->
Link, że gdy mamy tylko jeden czujnik, to przy definicji ilości czujników wpisujemy 0, czyli np. #define child-id 0.
Druga wartość podana w nawiasie określa rodzaj zmiennych, jakie będą przesyłane do bramki MySensors, mamy je określone na stronie ->
Link w czwartej kolumnie
Przykładowo dla czujnika temperatury i wilgotności, będzie to wyglądać tak:
MyMessage msgtemp(child_id_temp, V_TEMP);
MyMessage msgwilg(child_id_wilg, V_HUM);
Po MyMessage nadajemy sobie dowolną nazwę, czyli jak wyżej, dla temperatury: msgtemp, a dla wilgotności: msgwilg
Te dane wpisujemy zawsze na początku programu, przed void setup()
UWAGA!!!
Przed wpisem MyMessage należy umieścić wpis:
MySensor gw;
Prezentacja - gw.presentCzujniki podłączane do nadajnika MySensors muszą najpierw przedstawić (zaprezentować) dane do kontrolera, odbywa się, to poleceniem:
gw.present(child-sensor-id, typ-czujnika);Typy czujników są określone na stronie ->
Link w pierwszej kolumnie, czyli dla powyższego przykładu, dla czujnika temperatury i wilgotności, polecenie będzie wyglądać tak:
gw.present(child_id_temp, S_TEMP);
gw.present(child_id_wilg, S_HUM);
Prezentację wpisujemy w void setup() czyli instrukcjach, które wykonywane są tylko raz na początku programu.
Dane jakie należy wpisać dla różnych rodzajów czujników podane są w poniższej tabeli
Inicjowanie gw.begin ()Polecenie:
gw.begin();
uruchamia bibliotekę MySensors, odbiera dane z kontrolera i zapisuje w statycznej pamięci eproom Arduino, dane te są kasowane, po restarcie Arduino.
Polecenie gw.begin; umieszczamy przed prezentacją gw.preset w void setup().
Import bibliotek MySensorsAby nasz program działał poprawnie na samym początku kodu programu należy umieścić wpis importujący biblioteki MySensors, czyli:
Przesyłanie danych - gw.send(msg.set(dane));Polecenie to przesyła dane do bramki MySensors i dalej do Domoticz, umieszczamy je w pętli void loop()
W tym przykładzie będzie, to wyglądać tak:
gw.send(msgtemp.set(temp, 1));
gw.send(msgwilg.set(wilg, 1));
Kod programu dla nadajnika MySensors, w którym wykorzystałem typowy program do odczytu z czujnika DHT11 będzie wyglądał tak:

Kod do pobrania stąd ->
LinkMyślę, że teraz każdy będzie mógł sobie napisać sam program, do odczytu dowolnych czujników z nadajnika MySensors