Mysensors ver.2.0 отличия

Ответить
Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 35 раз

Mysensors ver.2.0 отличия

Сообщение Anton_kulibin » Ср окт 12, 2016 10:55 pm

Конвертация скетчей с библиотеки 1.5.х на 2.0
1. ВАЖНО запомнить что все установки(настройка радио, название ноды, тип ноды, установка пинов радио модуля и т.д. ) делается до

Код: Выделить всё

#include <MySensors.h>  
В противном случае все настройки после будут игнорироваться.
Пример:

Код: Выделить всё

#define MY_DEBUG    // Включаем отладочные сообщения в порт ноды
#define MY_RADIO_NRF24 // Определаем тип радио модуля
#define MY_NODE_ID 35 //Задаем ID ноды
#define MY_REPEATER_FEATURE //Включаем работу ноды в качестве репитера

//Настраиваем Пины подключения радио модуля понадобится например для Arduino Mega
#define MY_RF24_CE_PIN  48  //Определяем PIN для CE
#define MY_RF24_CS_PIN  53  //Определяем PIN для CS
//

#include <MySensors.h>
2. Теперь MySensors gw; и gw.begin() не нужны. Настройка радио модуля и другие настройки задаются с помощью #define см. пункт выше, все настройки перечислены в MyConfig.h.
3.process() тоже можно удалить из loop()
4. Т.к. инициализация класса gw. упразднена, а функции перенесены в глобальный список, например вместо функции gw.send(msg) надо использовать send(msg).
5. Теперь контроллер может запросить презентацию ноды (Например в модуле Mysensor ), поэтому вся информация о презентации записывается в специальную функцию.

Код: Выделить всё

void presentation()  
{ 
  sendSketchInfo("Название ноды", "Версия"); // информация о ноде
  present(CHILD_ID, S_DISTANCE); //Презентация сенсора
}
6. Для инициализации каких то процессов(например определения типа Пинов ) до запуска библиотеки Mysensors
создана спец функция

Код: Выделить всё

void before() {
    // This will execute before MySensors starts up
 pinMode(PIN, INPUT);
 digitalWrite(PIN, HIGH);
}
7. Все что используется после запуска библиотеки Mysensors, отражается по прежнему в

Код: Выделить всё

void setup() {

}
8. Для обработки входящих сообщения создана своя функция

Код: Выделить всё

void receive(const MyMessage &message) {
    // Handle incoming message
}
Не большой набор настроек которые можно использовать в скетчах

Код: Выделить всё

#define MY_DEBUG    // Включаем отладочные сообщения в порт ноды
#define MY_REPEATER_FEATURE  // Включаем функцию репитера
#define MY_BAUD_RATE  9600 // Устанавливаем скорость порта для консоли или Serial гейта
#define MY_NODE_ID 42 // Установка вручную ID ноды
#define MY_PARENT_NODE_ID xx // Установка id родителя 
#define MY_OTA_FIRMWARE_FEATURE  // Включение обновления по воздуху

#define MY_RF24_CE_PIN 9    // Специфические настройки пинов для радиомодулей RF24
#define MY_RF24_CS_PIN 10 // Специфические настройки пинов для радиомодулей RF24 

#define MY_INCLUSION_MODE_FEATURE // Включение inclusion mode (for a gateway)
#define MY_INCLUSION_BUTTON_FEATURE // Включение inclusion mode button (for a gateway)
#define MY_LEDS_BLINKING_FEATURE // Включение  светодиодов приема/передачи для гейта или ноды 
#define MY_SIGNING_ATSHA204 //Включает подпись сообщений с помощью ATSHA204 (необходимо наличие чипа)
#define MY_SIGNING_SOFT // Включает подпись с помощью софта   
За это сообщение автора Anton_kulibin поблагодарили (всего 5):
Ivan (Чт окт 13, 2016 12:09 am) • devoff (Пт окт 14, 2016 4:06 pm) • shemnik69 (Ср ноя 09, 2016 8:02 am) • fynto (Вт янв 17, 2017 11:00 am) • cabat (Пт мар 10, 2017 9:26 am)
Рейтинг: 5.81%
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
Ответить