Jeśli kod Arduino z części pierwszej działa Wam poprawnie, zajmiemy się jeszcze obsługą przycisków fizycznych.
Zdefiniujmy w arduino pin dla przełącznika
#define przelacznikSALON 23
w sekcji setup ustawiamy ten pin jako wejście
Definiujemy także zmienną globalną, która będzie wskazywać czy przycisk został wciśnięty (po krótce: jesli swiatlo zapalone i wciskamy przycisk – wyłącz światło ; jeśli światło zgaszone i wciskamy przycisk – włącz światło).
bool BprzelacznikSALON=false;
pinMode(przelacznikSALON,INPUT_PULLUP)
A następnie funkcję do sprawdzania przycisków fizycznych (czyli czy pin przelacznikSALON został zwarty z masą).
void SprawdzPrzelacznikiFizyczne() { // ODBIERANIE SYGNAŁÓW WCIŚNIĘCIA PRZYCISKU PRZEZ ARDUINO I WYSYŁANIE DO DOMOTICZA if (digitalRead(przelacznikSALON)==LOW) { delay(100); BprzelacznikSALON=!BprzelacznikSALON; if ((BprzelacznikSALON==true)) { sendGET("/json.htm?type=command¶m=switchlight&idx=12&switchcmd=On"); } else { sendGET("/json.htm?type=command¶m=switchlight&idx=12&switchcmd=Off"); } } }
Odnośnie ostatniego polecenia
sendGET("/json.htm?type=command¶m=switchlight&idx=12&switchcmd=On")
Ta linia powoduje wysłanie do Domoticza sygnału przełączenia dla przełącznika o IDX = 12. Włączenie go wywołuje akcję zwrotną do Arduino, która zapala nam światło (o konfiguracji Domoticza będzie w kolejnej części).
Tę funkcję którą wywołuje Domoticz tak naprawdę oprogramowaliśmy już w części pierwszej kursu.
Przed częścią związaną z obsługą Domoticza (a jest to naprawdę proste) proponuję zapoznać się z Domoticz API:
https://www.domoticz.com/wiki/Domoticz_API/JSON_URL’s
Poniżej testowe połączenie przekaźnika poprzez płytkę stykową. W Arduino po lewej widzimy kabel zielony -sterowanie przekaźnikiem i niebieski do odbierania sygnału zwarcia przełącznika na ścianie.
Na obrazku:
- przewód zielony – sterowanie przekaźnikiem IN
- przewód niebieski – do przełącznika fizycznego dzwonkowego
- przewód biało brązowy – do przełącznika fizycznego dzwonkowego
- brązowy – GND masa przekaźnika
- pomarańczowy – VCC +5V przekaźnika
DO POBRANIA MÓJ DZIAŁAJĄCY SKETCH Z ARDUINO. BĘDĘ GO W MIARĘ MOŻLIWOŚCI ROZBUDOWYWAŁ. pobierz web2
Uwaga! Do poprawnego działania konieczny jest działający serwer domoticza. Moją konfigurację przedstawię w kolejnej części.
Sketch zawiera dodatkowe funkcje np. odczyt temperatury i wysyłkę do arduino, z tym że na razie funkcja w loopie jest zakomentowana. Wystarczy odkomentować i powinno działać .