ArduinoMEGA-Řízení akvária
Arduino řízení akvária Projekt na pokračování
🐠 Projekt: inteligentní řízení akvária
Navrhl bych ho modulárně:
1 ┌──────────────────────┐
2 │ Arduino Mega 2560 │
3 └──────────┬───────────┘
4 │
5 ┌─────────────┬───────┼────────┬──────────────┐
6 │ │ │ │ │
7 Teplota pH Hladina RTC hodiny Displej
8 DS18B20 sonda vody DS3231 TFT/LCD
9 │ │ │
10 └─────────────┴───────┘
11 │
12 ŘÍDICÍ ALGORITMUS
13 │
14 ┌─────────────┼─────────────┐
15 │ │ │
16 Topení Osvětlení Ventilátory
17 │ │ │
18 ├─────────────┼─────────────┤
19 │ │ │
20 Čerpadlo Krmení Alarm
1. Měření teploty
Použijeme DS18B20. Samotný čip používá sběrnici 1-Wire, umožňuje připojit více senzorů na jedinou sběrnici a má přesnost ±0,5 °C v rozsahu -10 až +85 °C. Použil bych klidně dva senzory:
- T1: teplota akvária
- T2: kontrolní teplota, například filtrace nebo krytu
Software by mohl porovnávat oba údaje a odhalit vadný senzor.
2. Automatické topení
Arduino nebude topné těleso napájet přímo. Bude pouze ovládat vhodný oddělený výkonový prvek. Třeba pomocí modulu s relé.
1 Teplota < 24,5 °C
2 │
3 ▼
4 zapnout topení
5 │
6 ▼
7 Teplota >= 25,0 °C
8 │
9 ▼
10 vypnout topení
Tím vznikne hystereze, takže topení nebude neustále spínat kolem jedné teploty. A hlavně bych sem přidal bezpečnost. Pokud čidlo začne vracet nesmyslnou hodnotu nebo přestane komunikovat, výchozí stav topení musí být VYPNUTO.
U akvária bych Arduino také nenechal jako jedinou ochranu před přehřátím. Samostatná hardwarová tepelná ochrana je rozumná pojistka.
3. 🌅 Simulace východu a západu slunce
Tahle část může projekt výrazně zatraktivnit.
LED osvětlení bych rozdělil například na:
- bílý kanál,
- teplou bílou,
- modrou,
- případně RGB.
Arduino potom nebude světlo jen zapínat a vypínat.
1 06:30 07:00 19:30 20:00
2 │ │ │ │
3 └─ VÝCHOD ─── DEN ─────────┴─ ZÁPAD ──┘
4 0 → 100 % 100 → 0 %
Čas bude držel RTC modul DS3231, takže po restartu Arduina nedojde ke ztrátě denního režimu. Můžeme dokonce vytvořit několik světelných profilů:
NORMAL
1 ráno → den → večer → noc
CLOUD dočasné snížení výkonu LED
MOON slabé noční osvětlení
SERVICE 100% osvětlení při údržbě akvária.
4. 💧 Hlídání hladiny
Použil bych minimálně dva nezávislé body:
1 MAX ───────●──────── nouzová horní hladina
2
3 voda
4
5 MIN ───────●──────── dopustit vodu
Tady už může vzniknout automatické dopouštění odparu.
Je ale důležité oddělit měření od bezpečnosti. Dopouštění bych nikdy neudělal stylem:
- senzor hlásí málo vody → čerpadlo běží libovolně dlouho.
Software musí mít maximální povolenou dobu dopouštění. Pokud se hladina v daném čase nezmění, systém dopouštění zastaví a vyhlásí alarm.
5. 🧪 Měření pH
pH sonda však není obyčejné analogové čidlo, které bych jednoduše připojil na A0. Signál elektrody je velmi slabý a snadno se ruší. Výrobce profesionálních sond Atlas Scientific přímo upozorňuje, že sonda může zachytávat elektrické napětí přenášené vodou a v takové situaci je nutné správné elektrické oddělení.
Pro trvale instalované akvárium bych tedy použil hotové měřicí rozhraní s galvanickým oddělením.
Akvárium je právě prostředí plné potenciálních zdrojů rušení:
- LED zdroje,
- čerpadla,
- topení,
- spínané zdroje.
6. 🍽️ Automatické krmítko
1 RTC
2 │
3 ▼
4 18:00
5 │
6 ▼
7 servo
8 │
9 ▼
10 otočení zásobníku
11 │
12 ▼
13 jedna dávka
Na displeji může být:
- Poslední krmení: 18:00 a tlačítko:
- KRMENÍ RUČNĚ
Software by měl zabránit například dvojímu automatickému krmení po restartu systému.
7. 📺 Barevný displej
Tady bych šel rovnou do pěkného TFT.
Hlavní obrazovka může vypadat třeba takto:
1 ┌─────────────────────────────────┐
2 │ AQUARIUM CONTROL │
3 ├─────────────────────────────────┤
4 │ │
5 │ Teplota - 24,8 °C │
6 │ pH - 7,12 │
7 │ Hladina - OK │
8 │ │
9 │ Topení - OFF │
10 │ Filtrace - ON │
11 │ Osvětlení - 72 % │
12 │ │
13 ├─────────────────────────────────┤
14 │ SVĚTLO KRMENÍ GRAF MENU │
15 └─────────────────────────────────┘
Další obrazovka by mohla zobrazovat graf:
1 26 °C │
2 │ ╭────╮
3 25 °C │ ╭───╯ ╰────╮
4 │ ╭──╯ ╰───
5 24 °C ├────────────────────────
6 00 06 12 18 24
Tím se z projektu stane skutečný řídicí panel akvária, ne jen Arduino s několika relé.
- 🚨 Alarmy
Události bych rozdělil minimálně na:
🟢 INFO Krmení provedeno
🟡 WARNING Nízká hladina vody
🔴 ALARM Přehřátí, chyba teplotního senzoru, příliš dlouhé dopouštění
Při kritické chybě může systém:
- vypnout topení,
- vypnout automatické dopouštění,
- zapnout alarm,
- zobrazit červenou výstrahu na displeji,
- uložit událost do paměti.
- Celkově bych projekt rozdělil na moduly
1 AKVARIUM CONTROLLER 2 │ 3 ├── 01 Temperature 4 │ ├── DS18B20 #1 5 │ ├── DS18B20 #2 6 │ └── Heater control 7 │ 8 ├── 02 Lighting 9 │ ├── PWM LED 10 │ ├── Sunrise 11 │ ├── Sunset 12 │ └── Moonlight 13 │ 14 ├── 03 Water 15 │ ├── LOW sensor 16 │ ├── HIGH sensor 17 │ └── Automatic refill 18 │ 19 ├── 04 Chemistry 20 │ └── pH 21 │ 22 ├── 05 Feeding 23 │ └── Servo feeder 24 │ 25 ├── 06 Interface 26 │ ├── TFT 27 │ ├── Buttons / touch 28 │ └── Buzzer 29 │ 30 ├── 07 Data 31 │ ├── RTC 32 │ ├── EEPROM 33 │ └── SD card 34 │ 35 └── 08 Safety 36 ├── Sensor diagnostics 37 ├── Maximum run times 38 ├── Alarm handling 39 └── WatchdogA právě Mega tady začíná dávat smysl
Arduino Mega 2560 má 256 KB Flash, 8 KB SRAM a 4 KB EEPROM, takže pro podobnou konstrukci poskytuje podstatně příjemnější prostor než Uno. Čtyři hardwarové UARTy jsou navíc velmi praktické při přidávání dalších komunikačních modulů.
Ideální finální verze
Arduino Mega + 2× DS18B20 + RTC DS3231 + TFT + pH + snímače hladiny + PWM LED + krmítko + SD karta + alarm + oddělené výkonové výstupy.
Projekt můžeme postupně rozšiřovat Nejprve teploměr → regulátor topení → hodiny → osvětlení → hladina → displej → pH → krmítko → logování → finální rozvaděč.