четверг, 17 ноября 2016 г.

Умный дом просто как никогда (часть 3 настройка Raspberry PI nFR24 Add-on)

В первой части, мы уже подготовили нашу Raspberry Pi 2 Model B + к установке ПО по управлению Умным домом. Во второй части настроили ПО Mycontroller.org 

Теперь будем настраивать Raspberry PI nFR24 Add-on и развернем среду программирования с поддержкой Open Source Home Automation Framework (от Mysensors team).

В этой части (3), нам понадобится:

Железо:

Программатор USBtinyISP-Arduino для восстановления /заливки загрузчика на МК
Программатор Foca V2.2 (FT232RL) для интерфейса UART с дополнительным выходом тактового генератора.
(они так же понадобятся нам для дальнейшей настройки будущих датчиков).
Raspberry PI nFR24 Add-on, это программно-аппаратный шлюз для Raspberry Pi 2-3

Программное обеспечение:

Arduino IDE  для программирования микроконтроллеров
AVRDUDESS 2.x для заливки загрузчиков в микроконтроллер

Установка ПО не займет особого труда, но установку Open Source Home Automation Framework и выставление фьюзов на МК, мы опишем подробнее, так как без этого, невозможно будет настроить все фичи, которые нам нужны (к примеру обновления по воздуху OTA).

И снова, для начала установим все ПО на свой компьютер.

Для установки Open Source Home Automation Framework от Mysensors.org в ПО Arduino IDE необходимо, в Меню Arduino IDE выбрать Скетч > Подключить библиотеку > Управлять библиотекой > Менеджер библиотек


откроется вот такое окно


В строке поиска набрать mysensor, выбрать найденный фрейм и нажать кнопку Установка.
За тем, нам надо установить драйвера для наших плат, они поддерживают как стандартные частоты для Arduino (16 МГц), так и настраиваемые (8 - 1 МГц), а так же представляют возможности по обновлению по воздуху.

Что бы долго не разбираться, мы подготовили пару загрузчиков, вам надо только скопировать их в директорию где установлена ваша Arduino IDE  (к примеру C:\Program Files\Arduino\hardware).  Загрузить с github можно тут.




После всего, проверим как установились наши драйвера. Откройте Arduino IDE и посмотите настройку плат, она должна быть такой как на картинке:



Home Automation Framework должен выглядеть следующем образом:



Теперь подошло время для Raspberry PI nFR24 Add-on.

Пока плата не настроена, не рекомендуется ее устанавливать на Raspberry PI, т.к., в самом начале нам надо будет обновить загрузчик, залить прошивку и проверить все настройки.

1, Подключим программатор USBtinyISP-Arduino к Raspberry PI nFR24 Add-on




На обратной стороне должен загореться светодиод PWR говорящий нам, что питание подано на плату правильно.


2, Для записи загрузчика, запустим AVRDUDESS и настроим его под наши нужды

Выберем из списка Programmer > USBtiny simple USB programmer.


В правом углу программы MCU, нажмем кнопку Detect. В списке у нас должна появится ATmega328p



Теперь зальем специальный загрузчик, который Вы установили в директорию (C:\Program Files\Arduino\hardware\), данный загрузчик нам потребуется для того, что бы вы в дальнейшем смогли обновлять вашу прошивку на контроллере не снимая его с Raspberry PI.
Нажимаем кнопку на поле Flash и выбираем загрузчик (C:\Program Files\Arduino\hardware\devDuino\avr\bootloaders\DualOptiboot\optiboot_V5.0_atmega328.hex)

  

Жмем кнопку Go и наблюдаем за процессом в черном окне.



Затем проверим настройку фьюзов. Нажимаем кнопку Read на Fuses & lock bits




Внимание! Если вы увидите значение фьюзов как на картинке, то скорее всего эти данные остались от старого загрузчика. Нам надо исправить это и скорректировать значения как нужно нам. 
Пожалуйста, будьте внимательны при перезаписи фьзов, корректно вносите значения, иначе можно "потерять" нашу платку.  

Для нашего Аддона они должны быть следующими:

low_fuses=0xDE
high_fuses=0xDC
extended_fuses=0x05

Для этого в поля впишите следующие значения: 
(смотрите картинку).


И нажмите кнопку Write. Если все прошло удачно, то результатом будет вот это:




3. Настало время загрузить прошивку (для начала мы загрузим прошивку с самым простым функционалом, в ней не будет поддержки обновления, шифрования и подписи данных. Про это будет отдельная статья, по причине большей сложности настройки.)

Перед подключением нашего программатора Foca V2.2 (FT232RL) к Raspberry PI nFR24 Add-on не забываем выставить напряжение на нем в 3,3 В (дабы не "спалить" встроенный модуль nRF24).


Подключаем программатор к Аддону. (просто совместите надписи и поткните папу в маму :)) 
DTR > DTR 
GND > GND 
RXD > RX
TXD > TX 
VCCD > VCC


Конструктив Raspberry PI nFR24 Add-on устроен так, что питание (+3,3 В) на встроенный модуль nRF24 подается с микрокомпьютера Raspberry Pi, по этому нам еще понадобится один кабель (папа-мама), которым надо будет соединить плюсовой контакт Foca V2.2  и входной разъем (3V3) на колодке RPI. Как на фото:

Вид сзади

 

Вид спереди


Если загорелся зеленый светодиод, то ОК, будем заливать прошивку
Скачиваем тестовый скетч (GatewaySerial_2.0_PRI_nRF24.ino) с github тут и кладем в директорию где храним наши скетчи.

Запускаем Arduino IDE, открываем наш скетч, в меню Инструменты > Плата, выбираем devDuino 328 16 MHz with OTA



в меню Инструменты > Порт, выбираем COM (ваш ком-порт)



Жмем кнопку Загрузка, курим и смотрим в черное окно.

Результат должен быть такой:


После открываем Монитор порта
и наблюдаем картинку


Получилось, подкорректируем скетч:

переменную #define MY_DEBUG надо закоментировать, (//) иначе в эфир полезут отладочные данные (короче мусор). Еще раз компилируем код, запускаем Монитор порта и смотрим;


Обратите внимание на переменную #define MY_RF24_CHANNEL 71
это радиоканал  (71) на котором будут общаться ваши будущие устройства. Рекомендуется выбрать свой от 0 до 126, дабы сосед не смог вас "подслушать".

* @def MY_RF24_CHANNEL
 * @brief RF channel for the sensor net, 0-125.
 * Frequence: 2400 Mhz - 2525 Mhz Channels: 126
 * http://www.mysensors.org/radio/nRF24L01Plus.pdf
 * 0 => 2400 Mhz (RF24 channel 1)
 * 1 => 2401 Mhz (RF24 channel 2)
 * 76 => 2476 Mhz (RF24 channel 77)
 * 83 => 2483 Mhz (RF24 channel 84)
 * 124 => 2524 Mhz (RF24 channel 125) 
 * 125 => 2525 Mhz (RF24 channel 126) 

А что бы этого не случилось, даже если он будет сидеть на вашем канале, в следующих статьях мы научимся подписывать и шифровать данные.

Ну а в четвертой части, пора будет соединить наш Raspberry PI nFR24 Add-on с Raspberry Pi.
Настроим встроенный RTC(часы) и подключим UART на сбор данных с эфира.   







4 комментария:

  1. А когда, примерно, будет доступно Raspberry PI nFR24 Add-on ?

    ОтветитьУдалить
  2. Вот тут нет ошибки "Рекомендуется выбрать свой от 0 до 255, дабы сосед не смог вас "подслушать"." ?
    Вроде каналов всего 126

    ОтветитьУдалить
  3. Да, точно ошибка, каналов 126. Исправили.

    ОтветитьУдалить