Odczytywanie sygnałów
Zapewne każdy z Was kiedyś myślał o tym, że życie byłoby łatwiejsze, gdyby komputery zamiast obliczeń wykonywały też bardziej prozaiczne czynności.
Z pomocą przychodzi nam, jakże by inaczej, Arduino. Niestety nie posprząta za nas w domu, ale może pomóc nam oszczędzić czas, który możemy przeznaczyć np. na odpoczynek.
Od jakiegoś czasu coraz modniejszym tematem staje się budowa domów inteligentnych.
Domów w których domownicy nie muszą przejmować się włączaniem i wyłączaniem światła, pilnowaniem pieca czy podlewaniem ogródka. Jak wiadomo, takie inwestycje są kosztowne, ale możemy sprawdzić jak to działa w praktyce bez wydawania ogromnych sum.
Co będzie nam potrzebne?
- Arduino (ja wykorzystam Arduino Uno, ale mniejsze lub większe też będą w porządku): http://nettigo.pl/products/65
- Zestaw nadajnika i odbiornika radiowego: https://nettigo.pl/products/zestaw-nadajnika-odbiornika-433mhz
- Gniazdka sieciowe sterowane pilotem: http://nettigo.pl/products/599
- Płytka stykowa, kabelki do płytek stykowych i reszta: http://nettigo.pl/products/43
Przed przystąpieniem do pracy należy zaopatrzyc się w bibliotekę rc-switch, dostępną tutaj
Bibliotekę należy rozpakować i wrzucić do odpowiedniego katalogu, w moim przypadku będzie to /usr/share/arduino/libraries
Jak większość bibliotek dla Arduino i w tej znajdziemy przydatne przykłady.
Musimy teraz podłączyć odbiornik do Arduino.
Po spojrzeniu w datasheet, wiemy jak go podłączyć:
Pin 1 - Masa
Pin 2 - Pin 2 w Arduino
Pin 3 - Nie podłączamy
Pin 4 i 5 - +5V
Pin 6 i 7 - Masa
Pin 8 - Antena (ja użyłem kabelka od płytek stykowych)
Teraz pora na program. Otwieramy przykład dostarczany razem z biblioteką i wrzucamy go na
Arduino:
Jeśli wszystko się powiodło, to możemy otworzyć serial monitor. Po przyciśnięciu guzika na pilocie powinny pojawić się nam odczytane kody. W moim przypadku wygląda to tak:
Pierwsze dwie linijki to odczytany przycisk włączający pierwsze gniazdko, drugie dwie to przycisk wyłączający.
Sterowanie gniazdkami
Mamy już kody, teraz przejdziemy do sterowania gniazdkiem.
Musimy podłączyć nadajnik do Arduino, znowu z pomocą przychodzi nam datasheet:
Pin 1 - Masa
Pin 2 - Pin 10 w Arduino
Pin 3 - +5V
Pin 4 - Antena (tak jak przy odbiorniku)
Przechodzimy do kodu:
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.setPulseLength(161); // Przepisujemy wartość sczytaną z serial monitora
mySwitch.enableTransmit(10); // Przepisujemy wartość sczytaną z serial monitora
}
void loop() {
mySwitch.send("010001010100010101010011"); /* Tutaj wpisujemy kod binarny
sczytany z pierwszego przycisku */
delay(1000);
mySwitch.send("010001010100010101011100"); /* Tutaj wpisujemy kod binarny
sczytany z drugiego przycisku */
delay(1000);
}
Powyższy kod spowoduje włączanie i wyłączanie gniazdka co 1 sekundę.
Do czego może nam się to przydać? Możemy użyć np. czujnika temperatury i sterować wentylatorem w upalne dni, albo dołożyć moduł zegara i zapalać/gasić światła przed domem o określonej godzinie. Użyte przeze mnie gniazdka mogą sterować urządzeniami o maksymalnym poborze mocy 2300W, więc jest to dosyć dużo.