Ключевое ?лово

vk

Не смотря на огромные возможности ESP8266 этот чип не всегда подходит для всех задач, например в плане энергоэкономных датчиков.  При использовании модуля "RF24 хаб" в конструкторе прошивки ESP8266 возможно использование датчиков и других устройств на базе nRF24LE1 или nRF24LO1+Arduino(или любой другой микроконтроллер). ESP8266 выступает в качестве хаба, который принимает данные с таких устройств с возможностью передачи данных на сервера, а так же отображение данных на главной странице модуля. Возможна и передача команд для управления GPIO, ШИМ на удаленных датчиках/устройствах.

Подключение nRF24L01 к ESP8266:

SCK  pin: 14 
MISO pin: 12 
MOSI pin: 13
CSN pin и CE pin выводы задаются в настройках прошивки, можно назначить на любые свободные.

Не забываем про GND и VDD. Питание 3.3в.

Настройка опций в прошивке:

Для настройки передачи/приема данных главной странице необходимо зайти в настройки NRF24. Вы попадете на страницу настроек клиентов, где доступны настройки:

nrfesp1

 

 

 

 

Enable NRF24 - включить передачу выбранного модуля.

Data structure -  указывается структура входящих данных с клиентов nRF24L01 /nRF24LE1. Необходимо указать в каком порядке идут данные и каково их назначение:

T - температура, 2 байта int. значение умножено на 10. Не float данные !!
H- влажность, 2 байта int. значение умножено на 10. Не float данные !!
L - Long данные, 4 байта, например разнообразные счетчики передач или счетчики импульсов. 4 байтовая переменная.
С - аналогично L.
А - АЦП , 2 байта.
B - простое однобайтовое значение.
G - для передачи значений чтения/состояния GPIO.
1..9 - указывает количество пропускаемых байт в структуре,эти данные не будут нигде отображаться. Актуально, если нужно пропустить несколько байт в пакете. Аналогично не выводятся данные, если названия переменных указать в нижнем регистре.

Пример:

Если ваша прошивка или конструктор nRF24LE1 прошивки  например имеет такую структуру данных:

typedef struct{
unsigned char identifier;// номер передатчика. Неизменяемые данные
int Analog6; //Аналоговый вход 6
unsigned long count;// счетчик передач для контроля качества канала.
int temperature_Sensor; //передаём температуру.
int Humidity_Sensor;// передаём влажность
 }

- это значит, что необходимо ввести 4 буквы: ALTH . Первый байт - номер передатчика пропускаем. Конструктор прошивки для nRF24LE1 уже выдает необходимую текстовую строку структуры.

Error timeout - тут указывается время таймаута, при котором считается , что связь с модулем NRF утеряна. При ошибке значения из модуля не будут передаваться на сервера и выводится на главной.

nrfesp2Для настройки передачи данных необходимо перейти на вкладку Radio setup , где необходимо указать GPIO для подключения модуля nRF24L01, указать скорость , канал.

В данный момент некоторые  настройки не изменяются:
Адреса отправки- 0xF0F0F0F0E1, приема- 0xF0F0F0F0D2
AutoAck выключен.
Dynamic Payloads выключен.

Необходимо учитывать эти параметры при сборке прошивки в конструкторе nRF24LE1 или при программировании своих устройств.

Список метрик, передаваемые на сервера:

nrfXtY - температура.
nrfXhY - влажность.
nrfXaY - АЦП.
nrfXgY - состояние GPIO.
nrfXcY - Счетчик импульсов (передачи или прерывания)
nrfXbY - Любой другой байт передачи.
Где X - номер клиента. Y - номер метрики клиента.

В данный момент передача метрик реализована на MajorDoMo, flymon.net, narodmon.ru, а так же на MQTT.

Аналогичные метрики выводятся и на вкладке /sensors .

Отправка данных на радиомодули:

http://IP_adress/nrfwrite?chselect=1&val1=11&val2=2&val3=0

Что значит отправить данные val1..val3 на клиента номер 1. Данные для команды зависят от функционала клиента.

Чтение сырых данных:

Сырые данные с радиомодулей можно прочесть по адресу /nrfsrc.

Чтение данных в конструкторе кода

Данные можно считать из массива clientNRF[Y][X] , где Y -это номер клиента считая от нуля. X - номер байта клиента считая от нуля, первый байт - номер клиента, далее - данные передаваемые с клиента в сыром виде.

Планы и идеи проекта:

Реализовать автоматическое назначение структуры пакета ( не нужно будет указывать структуру данных).

Реализовать новый конструктор прошивки nRF24LE1 с более широкими возможностями и поддержкой автоматической структуры пакета.

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.