Documente Academic
Documente Profesional
Documente Cultură
Attribution-NonCommercial-NoDerivs
CC BY-NC-ND
Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website /
blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul
sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici
un fel de limitari.
https://www.robofun.ro/forum/
https://www.robofun.ro/forum/
Temperature0
Number
Temperature1
DateTime
Date
n acest moment sistemul este gata de utilizare. Se pornete platforma utiliznd fiierul
start.bat din directorul de instalare. Se va deschide o fereastr de forma:
https://www.robofun.ro/forum/
Pentru ca platforma OpenHab s porneasc automat la pornirea sistemului trebuie copiat un shortcut al fiierului start.bat n directorul startup al utilizatorului dorit sau se
poate defini un scheduled task.
Accesarea interfeei OpenHab se face dintr-un browser web accesnd pagina:
http://192.168.100.2:8080/openhab.app?sitemap=casamea
unde 192.168.100.2 este adresa sistemului pe care s-a efectuat instalarea sau
http://localhost:8080/openhab.app?sitemap=casamea
dac se acceseaz de pe acelai sistem. Captur de ecran cu fereastra de browser:
Alternativ interfaa se poate accesa prin intermediul unei aplicaii mobile Android sau
iOs configurnd adresa platformei OpenHab n aplicaie. Capturi de ecran cu setarea
aplicaiei Android i cu interfaa Meniu Principal:
https://www.robofun.ro/forum/
Atenie, placa releu nu este proiectat pentru tensiuni mari utilizarea la tensiuni mai
mari de 12V este extrem de periculoas!
https://www.robofun.ro/forum/
Programul va utiliza biblioteca MySensors 2.0.0 (la fel ca i exemplele din leciile anterioare):
#define
#define
#define
#define
#define
MY_DEBUG
MY_RADIO_NRF24
MY_REPEATER_FEATURE
MY_NODE_ID 20
MY_BAUD_RATE 9600
#include <SPI.h>
#include <MySensors.h>
Exemplul este gndit pentru a funciona cu un numr mai mare de relee (numr limitat
doar de numrul de pini digitali ai plcii de dezvoltare). Se pot conecta mai multe relee
pe urmtori pini digitali D4, D5, D8.
#define
#define
#define
#define
RELAY_1 3
NUMBER_OF_RELAYS 1
RELAY_ON 1
RELAY_OFF 0
Seciunea before() este specific bibliotecii MySensors 2.0.0 i se execut nainte iniializarea mecanismelor interne bibliotecii. n cadrul acestei seciuni se vor iniializa
pinii digitali ca ieiri de comand i se va restaura starea precedent a pinilor salvat
n memoria EEPROM n seciunea receive() mecanism util n cazul unor reporniri
neprogramate ale elementului de acionare.
void before() {
for (int sensor=0, pin=RELAY_1; sensor<NUMBER_OF_RELAYS;
sensor++, pin++) {
pinMode(pin, OUTPUT);
digitalWrite(pin,
loadState(sensor)?RELAY_ON:RELAY_OFF);
}
}
n cadrul seciunii presentation() (specific bibliotecii, se realizeaz prezentarea elementului de acionare ctre sistemul gateway) se va transmite numele, versiunea i
funcionalitatea elementului de acionare.
void presentation() {
sendSketchInfo("Relay", "1.0");
for (int sensor=1, pin=RELAY_1;
sensor<=NUMBER_OF_RELAYS; sensor++, pin++) {
present(sensor, S_LIGHT); }
}
https://www.robofun.ro/forum/
Seciunile setup() i loop(), tipice pentru program Arduino, nu conin nici o instruciune. ntregul mecanism de control al releului se realizeaz n seciunea receive() seciune apelat n mod automat de mecanismele interne ale bibliotecii MySensors la primirea unui mesaj radio.
void setup() {
}
void loop() {
}
void receive(const MyMessage &message) {
if (message.type==V_STATUS) {
digitalWrite(message.sensor+RELAY_1,
message.getBool()?RELAY_ON:RELAY_OFF);
saveState(message.sensor, message.getBool());
Serial.print("Incoming change for sensor:");
Serial.print(message.sensor);
Serial.print(", New status: ");
Serial.println(message.getBool());
}
}
Relay
"Lampa" {mysensors="20;0;V_STATUS"}
https://www.robofun.ro/forum/