Gniazdka sieciowe sterowane radiowo

Jak w łatwy sposób z Arduino sterować gniazdkami elektrycznymi z opcją sterowania pilotem.

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?

  1. Arduino (ja wykorzystam Arduino Uno, ale mniejsze lub większe też będą w porządku): http://nettigo.pl/products/65
  2. Zestaw nadajnika i odbiornika radiowego: https://nettigo.pl/products/zestaw-nadajnika-odbiornika-433mhz
  3. Gniazdka sieciowe sterowane pilotem: http://nettigo.pl/products/599
  4. 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.