Mysensors ver.2.0 отличия
Добавлено: Ср окт 12, 2016 10:55 pm
Конвертация скетчей с библиотеки 1.5.х на 2.0
1. ВАЖНО запомнить что все установки(настройка радио, название ноды, тип ноды, установка пинов радио модуля и т.д. ) делается до В противном случае все настройки после будут игнорироваться.
Пример:
2. Теперь MySensors gw; и gw.begin() не нужны. Настройка радио модуля и другие настройки задаются с помощью #define см. пункт выше, все настройки перечислены в MyConfig.h.
3.process() тоже можно удалить из loop()
4. Т.к. инициализация класса gw. упразднена, а функции перенесены в глобальный список, например вместо функции gw.send(msg) надо использовать send(msg).
5. Теперь контроллер может запросить презентацию ноды (Например в модуле Mysensor ), поэтому вся информация о презентации записывается в специальную функцию.
6. Для инициализации каких то процессов(например определения типа Пинов ) до запуска библиотеки Mysensors
создана спец функция
7. Все что используется после запуска библиотеки Mysensors, отражается по прежнему в
8. Для обработки входящих сообщения создана своя функция
Не большой набор настроек которые можно использовать в скетчах
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>
3.process() тоже можно удалить из loop()
4. Т.к. инициализация класса gw. упразднена, а функции перенесены в глобальный список, например вместо функции gw.send(msg) надо использовать send(msg).
5. Теперь контроллер может запросить презентацию ноды (Например в модуле Mysensor ), поэтому вся информация о презентации записывается в специальную функцию.
Код: Выделить всё
void presentation()
{
sendSketchInfo("Название ноды", "Версия"); // информация о ноде
present(CHILD_ID, S_DISTANCE); //Презентация сенсора
}
создана спец функция
Код: Выделить всё
void before() {
// This will execute before MySensors starts up
pinMode(PIN, INPUT);
digitalWrite(PIN, HIGH);
}
Код: Выделить всё
void setup() {
}
Код: Выделить всё
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 // Включает подпись с помощью софта