Gdy ktoś ma akwarium dłuższy czas, coraz częściej rozgląda się za czymś co ułatwi mu życie. Najprostsze rozwiązania są dostępne od ręki, tj. regulacja temperatury za pomocą termostatu wbudowanego w grzałkę, oświetlenia wyłącznikiem czasowym, istnieją też automatyczne karmniki co sprawia że akwarium w pewnym sensie staje się automatyczne.
Żeby połączyć to w całość w postaci jednego urządzenia trzeba oczekiwać że urządzenie to będzie niezawodne i o dużo większych możliwościach niż te podstawowe elementy wymienione wcześniej. Przeszukiwałem internet w postaci różnych sterowników (a najbardziej interesowały mnie DIY), ale żaden z projektów ostatecznie mnie nie przekonał. Dlatego postanowiłem rozpocząć własny projekt.
Jako bazę dla sterownika postanowiłem użyć Raspberry Pi. Dlaczego tak? Powodów było kilka, a poniżej kilka z nich:
- Koszt. Najtańsza wersja kosztuje $25, droższa (ze złączem Ethernet $35). Koszt zbudowania własnego sterownika od postaw jest często wyższy (chociaż sama płytka sterownika jeszcze nie czyni), a możliwości często niższe.
- Oprogramowanie. Raspberry to po prostu komputer na którym można zainstalować Linuxa. Do tego dochodzi trochę kodu który trzeba stworzyć, ale ogrom narzędzi sprawia że pisanie czegoś na tą platformę to przyjemność
- GPIO. Jest to skrót od General Purpose Input/Output czyli coś czego w zwykłym komputerze nie ma. GPIO pozwala sterować np. przekaźnikiem czy odczytywać temperaturę za pomocą kilku dołączonych elementów.
- Możliwości. Te są duże. Pamiętać należy że Raspberry to komputer, a więc sterownik na nim oparty może mieć możliwość prezentacji informacji na TV (nawet w full HD), serwowaniu stron WWW (zmiana ustawień ze smartphona, bądź przeglądarki) z każdego miejsca na świecie, sterowanie pilotem na podczerwień, itd.
- Wielkość i zapotrzebowanie na energię. Raspberry jest małe. Jest rozmiaru karty kredytowej. Zasilane z ładowarki do telefonu komórkowego. Spokojnie może pracować 24h/dobę i nie będziemy musieli obawiać się o rachunki.
- Otwartość. Raspberry (i oprogramowanie na niego) to projekty o otwartym źródle, a więc dostępne dla każdego i bez obawy że nagle jakaś firma przestanie udostępniać nowsze wersje oprogramowania lub zacznie sprzedawać za grube $.
- Kilka dodatkowych smaczków jak np. wbudowany watchdog, sprzętowe I2C, UART, SPI, czy też PWM będzie w przyszłości przydatne np. do sterowania natężeniem oświetlenia lub nawożeniem CO2
Podsumowując, możliwości są spore. Żeby od czegoś zacząć, przyjąłem następujące założenia:
- Płytka rozszerzeń w wersji 1.0 będzie zawierać 4 przekaźniki i 2 złącza do cyfrowych termometrów
- Całość zasilana ze standardowego złącza zasilania Raspberry (+5v)
- Interface napisany w PHP5 z użyciem
MySQL(i pierwsza zmiana w projekcie. MySQL jest zbyt zasobożerny na Pi, podobnie Apache. Zamiast tego będzie Sqlite + lighthttpd) - Za sterowaniem urządzeniami wyjściowymi odpowiadać będzie daemon napisany w C
- Wyjścia przekaźnikowe sterowane sekundowo
Czego nie będzie w płytce 1.0 (chociaż mogło by się znaleźć)
- Większa ilość wyjść przekaźnikowych
- WyjÅ›cia PWM – np. do sterowania jasnoÅ›ciÄ… oÅ›wietlenia
- Zasilanie caÅ‚ej pÅ‚ytki za pomocÄ… 12V (PWM, przekaźniki), i zasilanie Raspberry z wbudowanego stabilizatora 5V – odpada dodatkowy zasilacz
- Sonda pH – nawożenie CO2
- MaÅ‚y wzmacniacz audio (mono) – np. dla sygnałów alarmu
- Zegar czasu rzeczywistego – na chwilÄ™ obecnÄ… moje Raspberry pobiera datÄ™ z serwera NTP.
To tyle jeÅ›li chodzi o zaÅ‚ożenia. Teraz pozostaje tylko zbudować dziaÅ‚ajÄ…ce urzÄ…dzenie prototypowe 🙂
Ps. Sterownik przeszedł na tyle odległą stronę, że dorobił się własnej strony internetowej pod adresem: aquapi.polarnet.pl