Альтернативный пассивный режим ноды.

О программировании Arduino, использование библиотек, примеры и общие вопросы программирования.
Ответить
Berk
Сообщения: 81
Зарегистрирован: 11 окт 2017, 22:05

Альтернативный пассивный режим ноды.

Сообщение Berk » 14 окт 2017, 09:34

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

https://youtu.be/SNAq0W37lrg

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

bool state = true;
 
#define MY_DEBUG

#define MY_RADIO_NRF24

#define MY_NODE_ID 100

#define MY_TRANSPORT_WAIT_READY_MS 10000  // optional parameter used for the test

#define MY_PARENT_NODE_ID 101  // optional parameter used for the test

#define MY_PARENT_NODE_IS_STATIC  // optional parameter used for the test

//#define MY_PASSIVE_NODE  // !!! Please note this is disabled :) !!!

#include <MySensors.h>

#define RELAY 1

MyMessage msg(RELAY,V_STATUS);

void presentation()
{
  present(RELAY, S_BINARY);
  sendSketchInfo("TEST RELAY", "1.1");
}

void setup()
{ 
  transportSwitchSM(stReady);
  Serial.begin(115200);
}

void loop()
{
Serial.println(" SEND HELLO ");
_transportConfig.parentNodeId = 101;
send(msg.setDestination(101).setSensor(1).set(state));
  delay(5000);  

_transportConfig.parentNodeId = 0;
send(msg.setDestination(0).setSensor(1).set(state));
  delay(5000);  
}

void receive(const MyMessage &message) {

  if (message.type == V_STATUS) {
  Serial.println("Hello is delivered");
      }
}

Ответить