RF433 организация сети из датчиков. Как?
- Войдите на сайт для отправки комментариев
Втр, 14/01/2014 - 16:44
Интересен опыт тех, кто уже делал несколько приемо-передатчиков ведомых с мастером.
Как видится мне: Мастер отправляет запрос в эфир с именем конкретного устройства. Слейвы слушают эфир, и если один из слейвов прочитал свое имя, считывает данные до условного знака end.
Скомкано, но пока по другому сформулировать мысль не получилось. я на верном пути?
Мастер отправляет запрос в эфир с именем конкретного устройства. Слейвы слушают эфир, и если один из слейвов прочитал свое имя, считывает данные до условного знака end.
Да, именно так я сделал. Мастер периодически отправляет либо строку с точным временем (первый символ "T"), либо строку для "кухонного" Ардуино (первый символ "k"), либо строку для "ванно-туалетного" Ардуино (первый символ "w").
Как-то так:
// SendQuerrySelector: 0=send time to all, 1=send to WC, 2=send to KT.
if ( SendQuerrySelector == 0 ) { RFtemp = TimeString + ArmedOrDutyMode; TimeString = ""; SendQuerrySelector = OldSendQuerrySelector; }
else if ( SendQuerrySelector == 1 ) { RFtemp = "w" + ArmedOrDutyMode; SendQuerrySelector = 2; }
else if ( SendQuerrySelector == 2 ) { RFtemp = "k" + ArmedOrDutyMode; SendQuerrySelector = 1; }
RFtemp.toCharArray(RFMessage,RFtemp.length()+1);
vw_rx_stop();
vw_send((uint8_t *)RFMessage, strlen(RFMessage));
vw_wait_tx();
vw_rx_start();
Ну а те уже ловят, обрабатывают и присылают ответы, начинающиеся с соответствующих символов. Система работает хорошо, рекомендую.
Мастер отправляет запрос в эфир с именем конкретного устройства. Слейвы слушают эфир, и если один из слейвов прочитал свое имя, считывает данные до условного знака end.
Да, именно так я сделал. Мастер периодически отправляет либо строку с точным временем (первый символ "T"), либо строку для "кухонного" Ардуино (первый символ "k"), либо строку для "ванно-туалетного" Ардуино (первый символ "w").
Как-то так:
// SendQuerrySelector: 0=send time to all, 1=send to WC, 2=send to KT.
if ( SendQuerrySelector == 0 ) { RFtemp = TimeString + ArmedOrDutyMode; TimeString = ""; SendQuerrySelector = OldSendQuerrySelector; }
else if ( SendQuerrySelector == 1 ) { RFtemp = "w" + ArmedOrDutyMode; SendQuerrySelector = 2; }
else if ( SendQuerrySelector == 2 ) { RFtemp = "k" + ArmedOrDutyMode; SendQuerrySelector = 1; }
RFtemp.toCharArray(RFMessage,RFtemp.length()+1);
vw_rx_stop();
vw_send((uint8_t *)RFMessage, strlen(RFMessage));
vw_wait_tx();
vw_rx_start();
Ну а те уже ловят, обрабатывают и присылают ответы, начинающиеся с соответствующих символов. Система работает хорошо, рекомендую.
Спасибо.
У меня закуплено NRF24L01, но вот беда, контроллер RGB и mono LED управляются RF433. Как считаете, лучше сделать декодер RF433-NRF24L01, или же на мастер прикрепить оба радиомодуля и отправлять данные на соответствующие устройства, но не будет ли в этом случае конфликтов?
С NRF24L01 не работал еще, ничего не могу сказать. Что есть такое "декодер RF433-NRF24L01" недопонял, на мастер я бы однозначно ставил оба радиомодуля. Насчет конфликтов очень сомневаюсь, не вижу причин для конфликтов )).