Na dzień dzisiejszy najnowsza wersja programu Arduino, to 1.6.12, do pobrania z strony Arduino.cc -> Link
Po ściągnięciu i instalacji programu Arduino, proponuję wypakować i skopiować do folderu:
Program Files -> Arduino -> libriares ten zestaw bibliotek -> Link
Do folderu Moje Dokumenty -> Arduino -> libraries wypakować i skopiować ten zestaw plików -> Link
W katalogu Moje Dokumenty -> Arduino -> libriares -> MySensors-master -> examples mamy większość kodów programów do obsługi czujników MySensors.
W nowych bibliotekach i kodach programów MySensors zmienił się sposób zapisu i przesyłania danych.
Na początku kodu programu definiujemy rodzaj użytego modułu radiowego, dla NRF24L01 jest to:
#define MY_RADIO_NRF24
Dla innych rodzajów modułów radiowych:
#define MY_RADIO_RFM69
#define MY_RS485
Jeżeli chcemy śledzić przesyłanie i odbieranie danych na porcie szeregowym w monitorze portu szeregowego w programie Arduino, to dodajemy wpis:
#define MY_DEBUG
Wtedy po włączeniu monitora portu szeregowego w programie Arduino -> Narzędzia -> Monitor portu szeregowego, widzimy dane jakie są przesyłane. Konwerter TTL musi być podłączony do Arduino.
Prędkość portu ustawiamy zazwyczaj na 115200 lub 9600
W dalszej części kodu MySensors dodajemy wpis importu potrzebnych bibliotek, dla MySensors są to wpisy:
Jeżeli używamy różnych czujników importujemy również biblioteki dla danego czujnika.
Dalej znajduje się wpis identyfikujący podłączony czujnik, ma on formę:
#define child_id_nazwa 0
Jeżeli mamy do przesłania kilka rodzajów danych definiujemy je kolejno, po nazwie dodając kolejny numer, czyli:
#define child_id_nazwa1 0
#define child_id_nazwa2 1
#define child_id_nazwa3 2
Dalej znajduje wpis inicjalizacji przesyłania danych, który ma formę:
MyMessage msg_nazwa1(child_id_nazwa1, rodzaj-zmiennej);
Rodzaje zmiennych są określone na stronie MySensors w trzeciej tabeli od góry w czwartej kolumnie -> Link
Przykładowo dla temperatury będzie to V_TEMP, dla wilgotności V_HUM, dla ciśnienia V_PRESSURE itd...
Więc, jeżeli chcielibyśmy przesyłać te dane muszą się znaleźć wpisy, dla każdej wartości w takiej formie:
MyMessage msg_nazwa1(child_id_nazwa1, V_TEMP);
MyMessage msg_nazwa2(child_id_nazwa2, V_HUM);
MyMessage msg_nazwa3(child_id_nazwa3, V_PRESSURE);
Dalej umieszczamy wpis prezentacji danych do kontrolera, dla MySensors 2.0, wpis jest w takiej formie:
void presentation() {
// Wyslij informacje o nazwie do bramki
sendSketchInfo("Nazwa programu, "1.0");
// Rejestracja czujnikow
present(child_id_nazwa1, S_TEMP);
present(child_id_nazwa2, S_HUM);
present(child_id_nazwa3, S_BARO);
}
W nawiasie jest określony typ czujnika, dla odpowiadającej mu rodzaju zmiennej.
Jest określone na stronie MySensors w trzeciej tabeli w pierwszej kolumnie -> Link
Dla V_TEMP jest to S_TEMP, dla V_HUM jest to S_HUM itd...
Dalej możemy dodać blok danych void setup, które zostaną wysłane tylko raz:
void setup() {
}
W pętli void loop umieszczamy kod do odczytu danych z czujników oraz kod przesyłania danych, czyli:
void loop()
{
send(msg_nazwa1.set(temperatura, 1));
send(msg_nazwa2.set(wilgotnosc, 1));
send(msg_nazwa3.set(cisnienie, 1));
delay(10000); // czas w milisekundach pomiędzy kolejnymi odczytami
}
temperatura, wilgotnosc i cisnienie są to wartości odczytane z czujników, które są przesyłane do Domoticz.
Do pobrania jest tu -> Link przykładowy kod programu do czujnika poziomu węgla dla MySensors 2.0, którego budowę opisałem w tym wpisie -> Link
A u mnie z uporem maniaka:
OdpowiedzUsuń2016-11-29 17:13:58.494 MySensors: Using serial port: /dev/ttyUSB1
2016-11-29 17:13:59.982 MySensors: Gateway Ready...
2016-11-29 17:14:00.058 MySensors: Gateway Version: 1.5.4
Zerowałem już arduino, ściągałem biblioteki i ze strony Mysensors i z linków powyżej i zawsze to samo.
Bo masz wgrany w bramce stary wsad, w wersji 2.0 jest tu:
Usuńhttps://github.com/mysensors/MySensors/blob/master/examples/GatewaySerial/GatewaySerial.ino
Wydawało mi się, że pliki ściągnięte ze strony Mysensors są już w wersji najnowszej. Poza tym czyściłem/zerowałem arduino. Jedyna zmiana jaką zaobserwowałem to 1.5.1 na 1.5.4 Ale Ok po południu spróbuje z tego linka.
UsuńTen komentarz został usunięty przez autora.
UsuńUdało się, odinstalowałem arduiono włącznie z ustawieniami logami itd. i po ponownej, czystej instalacji jest wersja 2.0.0. Nie wiem czemu pomimo wybrania nowego sketchu wgrywał stary, najważniejsze, że sytuacja opanowana.
Usuń"Do folderu Moje Dokumenty -> Arduino -> libraries wypakować i skopiować ten zestaw plików -> Link" - Tu nic nie ma:(
OdpowiedzUsuń