#includeProgram wykorzystuje piny Arduino D3 do D6 i definiujemy, to w tej linijce:
#include
#include
#include
#include
#include
#define RELAY_1 3 // Pin D3
#define RELAY_2 4 // Pin D4
#define RELAY_3 5 // Pin D5
#define RELAY_4 6 // Pin D6
#define NUMBER_OF_RELAYS 4 // Liczba przekaznikow
#define RELAY_ON 1 // Stan wysoki przekaznik wlaczony
#define RELAY_OFF 0 // Stan niski przekaznik wylaczony
// NRFRF24L01 radio driver (set low transmit power by default)
MyTransportNRF24 radio(RF24_CE_PIN, RF24_CS_PIN, RF24_PA_LEVEL_GW);
//MyTransportRFM69 radio;
// Message signing driver (none default)
//MySigningNone signer;
// Select AtMega328 hardware profile
MyHwATMega328 hw;
// Construct MySensors library
MySensor gw(radio, hw);
void setup() {
// Initialize library and add callback for incoming messages
gw.begin(incomingMessage, AUTO, true);
// Send the sketch version information to the gateway and Controller
gw.sendSketchInfo("Relay", "1.0");
// Fetch relay status
for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS;sensor++, pin++){
// Register all sensors to gw (they will be created as child devices)
gw.present(sensor, S_LIGHT);
// Then set relay pins in output mode
pinMode(pin, OUTPUT);
// Set relay to last known state (using eeprom storage)
digitalWrite(pin, gw.loadState(sensor)?RELAY_ON:RELAY_OFF);
}
}
void loop()
{
// Alway process incoming messages whenever possible
gw.process();
}
void incomingMessage(const MyMessage &message) {
// We only expect one type of message from controller. But we better check anyway.
if (message.type==V_LIGHT) {
// Change relay state
digitalWrite(message.sensor-1+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF);
// Store state in eeprom
gw.saveState(message.sensor, message.getBool());
// Write some debug info
Serial.print("Incoming change for sensor:");
Serial.print(message.sensor);
Serial.print(", New status: ");
Serial.println(message.getBool());
}
}
#define RELAY_1 3 // Pin D3Po wgraniu do Arduino w Domoticz pojawią się 4 nowe urządzenia, dodajemy je klikając w zieloną strzałkę i wpisujemy nazwę i mamy 4 przełączniki
#define RELAY_2 4 // Pin D4
#define RELAY_3 5 // Pin D5
#define RELAY_4 6 // Pin D6
#define NUMBER_OF_RELAYS 4 // Liczba przekaznikow
Kod do pobrania -> Przekaznikix4
przydała by się informacja, ze chodzi o arduino z arduinio getway a nie samo (po kablu)
OdpowiedzUsuń