Dozownik nawozów do akwarium wersja 2.0 ;)

Sterownik tym razem został oparty na układzie WiFi ESP8266 zamontowanym na module NodeMCU V2 4MB. Wybrałem ten układ ponieważ chciałem aby zarządzanie i konfigurowanie dozownikiem było możliwe przez interface www i łącze wifi. Ten układ ma jeszcze jeden plus można go programować wprost przez Arduino IDE. Nie trzeba się bawić w Lua.

Jedynym minusem NodeMCU jest dość mała ilość wyjść GPIO tylko 13 ( no Arduino MEGA to nie jest) natomiast prawie każdy pin może  działać jako PWM, I2C lub 1-Wire. Posiada również jedno wejście/wyjście analogowe z 10 bitowym przetwornikiem ADC.

UWAGA!!!

NodeMCU operuje na logice 3,3V – lepiej o tym pamiętać.

Na rynku moduły NodeMCU występują w dwóch wersjach różniących się wymiarami płytki jednak raster i rozkład pinów jest identyczny dlatego na płytce umieściłem dodatkowe gniazda tak aby w razie konieczności można było montować moduły obu typów.

Sposobu programowania modułów nie będę opisywał w sieci jest bardzo dużo materiałów na ten temat:

Problem małej ilości  GPIO rozwiązałem układem PCF8574A jest to ekspander GPIO sterowany szyną I2C (TWI) umożliwia on podłączenie i sterowanie dodatkowymi 8 pinami cyfrowymi. W NodeMCU domyślnie I2C znajduje się na pinach D1 = SCL i D2 = SDA. Teraz już wiadomo skąd się wzięło 8 pomp, miałem ekstra dodatkowo 8 pinów to czemu ich nie wykorzystać.

Adresowanie układu PCF8574A odbywa się poprzez odpowiednie podłączenie pinów A0/A1/A2 do masy lub do plusa. Układ ten może operować na logice 3,3V jak i TTL (5V). Z tabeli poniżej wynika że na raz można podłączyć 8 układów na raz odpowiednio je adresując. Ja podpiąłem PCF’a bezpośrednio do NODE na 3,3V.

Do obsługi PCF8574 użyłem prostej biblioteki do Arduino  PCF8574.h autorstwa Roba Tillaarta.

Biblioteka jest bardzo prosta w użyciu, dodatkowe informacje na stronie autora i w przykładach biblioteki.

#include "PCF8574.h"
#include <Wire.h>

PCF8574 PCF_01(0x38);
// PCF8574 PCF_02(0x39); w przypadku drugiego układu itd. wg tabeli

setup {
   PCF_01.begin();
   // PCF_02.begin();
}
loop{ 
   PCF_01.write8( LOW ); // ustawienie wszystkich kanałów na LOW

   PCF_01.write(4, HIGH); // ustawienie stanu konkretnego kanału gdzie 4 to numer kanału liczone od 0 do 7

}

3 thoughts on “Dozownik nawozów do akwarium wersja 2.0 ;)”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *