Dzisiaj będzie szybki projekt – urządzenie do powiadamiania. Pod tym nieco tajemniczym tytułem kryje się urządzenie, które może mieć różne zastosowania. W moim przypadku będzie służyło jako dodatkowe powiadomienie o tym, że ktoś zadzwonił domofonem. Jeden z domofonów zlokalizowany jest na dużej hali, na której pracują głośne urządzenia i nie zawsze słychać dzwonek. Dlatego urządzenie poza wydawaniem dźwięku ma mrugać, żeby zwrócić na siebie uwagę. Ponieważ bramofony są dwa, więc dobrze było, gdyby po kolorze światła dało się odróżnić, przy którym z nich stoi gość.
Elementy i obudowa
Ponieważ w miejscu instalacji jest już zasięg sygnału z bramki wifi-433MHz, komunikacja będzie oparta o odbiornik RX480-A. Sercem układu będzie Arduino Pro Mini, bo tak najprościej i najszybciej. Za emitowanie drażniących ucho dźwięków odpowiadać będzie mały buzzer na 5V, który spokojnie zadowala się prądem dostępnym na wyjściu cyfrowym Arduino. Błyskać będziemy taśmą led 5V z układem sterowania 2812B, który pozwala ustawiać kolor każdej diody osobno, chociaż wszystkie będą błyskać tak samo. Dlaczego? Bo leży i się kurzy, więc pora byłoby w końcu to przetestować. Zasilanie 5V dla wszystkich komponentów zapewni przetwornica dc-dc. Może nieco na wyrost dla 2 diod LED, ale z czasem może pasek będzie dłuższy, a mam akurat taką pod ręką.
Urządzenie, jak zwykle, trafi do specjalnie zaprojektowanej, chociaż dość uniwersalnej obudowy do Pro Mini, wydrukowanej, z mojego ulubionego materiału. Jest nim oczywiście filament Pet-g, w tym wypadku szary, pochodzący od polskiego producenta. Przy okazji – przez kilka dni modernizowałem drukarkę i nie byłem w stanie nic wydrukować. Stwierdziłem wtedy, że człowiek naprawdę przyzwyczaja się do druku 3d.
Ogólna zasada działania
Jak urządzenie ma działać z domofonem? Opisywałem już interfejs TCP/IP do domofonu, który powiadamia centralny sterownik, gdy ktoś naciśnie przycisk w bramofonie. Wiadomość w postaci zapytania http dociera więc do Raspberry Pi, które inicjuje w związku z tym różne działania – loguje zdarzenie, robi zdjęcie z użyciem właściwej kamery monitoringu, wysyła e-maila z powiadomieniem i linkiem do zdjęcia. Dojdzie jeszcze jedna czynność – wysłanie pakietu UDP od bramki 433MHz, która z kolei wyście radiowy sygnał powodujący piszczenie i mruganie urządzenia powiadamiającego. Sposób sygnalizacji może być różnicowany w zależności od odebranego kodu.
Połączenia
Z Adruino potrzebować będziemy na razie tylko 3 piny. Wiem, marnotrawstwo, ale na razie nie mam nic innego potrzebnego. Wejście 2, z racji przypisania do przerwania zerowego, będzie podłączone do odbiornika 433MHz. Wejście 3 zasili buzzer, którego druga nóżka trafi do masy. Do wyjścia 4 podłączymy natomiast przewód sygnałowy od taśmy LED z układami WS2812B. Dojdą oczywiście jeszcze przewody zasilające, ale całość nadal pozostaje mało skomplikowana.
Program dla Arduino
Kod programu można zleźć w repozytorium. Użyte w nim zostały dwie biblioteki – RCSwitch dla komunikacji 433MHz oraz PololuLedStrip dla obsługi taśmy LED. Sterowanie piszczeniem i mruganiem odbywa się zupełnie niezależnie (może być wykonywane w różnym tempie i różną liczbę powtórzeń). Istotne jest, że liczba powtórzeń dotyczy zarówno okresów świecenia, jak i wygaszania. Program nie używa funkcji delay, więc nie jest blokowany i można go rozbudować o kolejne funkcje. Nic nie stoi na przeszkodzie, żeby dołączyć np. kolejne diody, przekaźniki lub inne elementy wykonawcze i zdefiniować nowe akcje oparte o kolejne kody radiowe. Wystarczy do tego zarówno prądu z przetwornicy, jak i wolnych wyjść w Arduino.
Od siebie dodam, że świetnie sprawdzały się u znajomego ruchome koguty na samochód. Ale to był system analogowy 😉