DIY - sterownik nawadniania - część 3. - Budowa sterownika - podstawa (oprogramowanie)

opublikowano 09.06.2020, autor: Marek

W tym odcinku naszego przewodnika zajmiemy się oprogramowaniem do naszej bazy sprzętowej - zainstalujemy system operacyjny Raspbian i uruchomimy naszą listwę przekaźnikową.
Nie widziałeś poprzedniego odcinka? Zobacz - https://podlewaj.pl/blog/diy-sterownik-nawadniania-czesc-2

Zaczynamy

Pewnie kusi Was, żeby podłączyć już swój sterownik do prądu i sprawdzić jak działa? Zrobimy to już niedługo - najpierw jednak musimy przygotować nasz system operacyjny - analogicznie do systemu Windows na domowych komputerach PC.

Pobieramy obraz ISO

Ponieważ Raspberry Pi ma dość ograniczone możliwości, Fundacja Raspberry Pi rozwijająca projekt tego minikomputera przygotowuje regularnie wariację systemu Linux Debian i dystrybuuje je w formie tzw. obrazów ISO. Jest to nic innego jak gotowa do uruchomienia kopia karty pamięci, w formie pojedynczego pliku do ściągnięcia. Zawsze aktualne obrazy systemu znajdziecie na oficjalnej stronie https://www.raspberrypi.org/downloads/raspberry-pi-os/

Mamy do wyboru 3 wersje, do naszych potrzeb najlepsza będzie ta - zatytułowana jako “Raspberry Pi OS (32-bit) with desktop” - czyli w wolnym tłumaczeniu, system operacyjny Raspberry Pi z pulpitem.

Pobieramy ją w formie archiwum ZIP i zapisujemy na komputerze.
Po ściągnięciu rozpakowujemy zawartość na Pulpit.

Nagrywamy obraz na kartę (micro)SD

Teraz musimy nagrać wypakowany plik ISO na kartę pamięci. Podłączamy ją przy pomocy czytnika kart - zintegrowanego w laptopie, dołączonego do karty adaptera lub innego czytnika kart którym dysponujemy.

Po podłączeniu karty widoczna będzie ona jako dysk - zupełnie jak podłączony pendrive. Nie rozpędzajmy się jednak - skopiowanie pliku ISO “jako pliku” nic nam nie da - system nie uruchomi się! Potrzebujemy specjalnego programu, który skopiuje dane binarnie, 1:1, z pliku ISO na kartę pamięci, tworząc przy tym specjalną strukturę zapisaną w pliku obrazu.

Do nagrania obrazu na kartę wykorzystamy darmowy program WinFlashTool dostępny na stronie https://sysprogs.com/winflashtool/download/

Uruchamiamy go i przy pomocy przycisku z trzema kropkami lokalizujemy nasz wypakowany plik ISO. Upewnijmy się, że zaznaczona jest opcja “Resize the last Ext2FS partition...” dzięki czemu wykorzystana zostanie cała przestrzeń karty pamięci.
Teraz z listy urządzeń poniżej wybieramy naszą kartę pamięci i klikamy przycisk Write.

Potwierdzamy oczywiście, czy zaznaczona została właściwa karta - i jeśli tak, wybieramy opcję Erase and overwrite. Pamiętajmy, że ta operacja skasuje całą jej istniejącą zawartość (o ile korzystaliśmy z tej karty poprzednio).

Kontynuujemy i obserwujemy postęp zapisu. Jeśli system Windows zgłosi, że karta jest niesformatowana - zignorujmy te komunikaty. Karta w trakcie zapisu będzie sformatowana w sposób niezrozumiały dla tego systemu i jej dokładna zawartość będzie możliwa do odczytania wyłącznie na komputerze z uruchomionym systemem Linux - ale na razie pomińmy tę kwestię i poczekajmy na zakończenie zapisu. Potrwa to około 5 - 10 minut. Komunikat na końcu poinformuje nas o powodzeniu nagrywania. Teraz możemy wyjąć kartę z czytnika i włożyć ją do minikomputera Raspberry.

Uruchamiamy system

No to czas na wiekopomną chwilę :) Przy pierwszym uruchomieniu konieczne będzie podłączenie telewizora lub monitora (poprzez przewód HDMI) oraz myszy i klawiatury (przez USB) oraz sieci internetowej (przez kartę WiFi na USB lub przewodowo, kablem Ethernet do naszego domowego routera). Nie martwcie się jednak, takie kombinacje potrzebne są tylko wtedy, gdy chcemy ingerować w nasz system - w typowym zastosowaniu wystarczy podłączenie do internetu - a sterować będziemy poprzez nasz komputer lub telefon.

Upewniamy się raz jeszcze czy wszystkie przewody między Raspberry a listwą przekaźnikową są podłączone prawidłowo i uruchamiamy minikomputer podłączając zasilacz do portu microUSB naszego Raspberry. Powinna zaświecić się czerwona dioda na krawędzi Raspberry Pi oraz (jeśli poprawnie podłączyliśmy naszą listwę przekaźnikową) dioda POWER sygnalizująca poprawne zasilanie dołączonego modułu.

Tymczasem zielona dioda na Raspberry Pi powinna zacząć nieregularnie migać (sygnalizujące odczyt lub zapis karty SD), na ekranie pojawi się ikona maliny w lewym górnym rogu, a następnie system zacznie się ładować. Ostatecznie wylądujemy na ekranie konfiguracji. Klikamy Next

Wybieramy lokalizację - kraj - Country (Poland), język - Language (Polish) oraz strefę czasową - Timezone (Warsaw). Zaznaczamy też pole “Use US keyboard”. Jeśli znamy też język angielski, polecam także zaznaczyć opcje “Use English language”. Klikamy Next.

Następnie musimy ustawić hasło. Wybieramy coś niesłownikowego, a jednocześnie dość prostego do wpisania. Możemy skorzystać ze zbitku kilku słów, np. MojSterownikPodlewania Wpisujemy to hasło w oba pola i klikamy Next.

Teraz możemy wybrać opcję dopasowania obrazu do ekranu. Jeśli na ekranie widzimy czarne obramowanie bez treści, zaznaczamy opcję i klikamy Next.

Musimy jeszcze podłączyć się do sieci bezprzewodowej (jeśli korzystamy z karty WiFi). Czekamy aż lista się zapełni, wybieramy naszą sieć i klikamy Next. Musimy teraz podać hasło i zatwierdzić ponownie klikając Next.

Na koniec warto zainstalować najnowsze aktualizacje. Wybieramy opcję Next i czekamy. Zajmie to około 20 - 30 minut lub dłużej, zależnie od prędkości dostępu do internetu. Poprawną aktualizację zasygnalizuje komunikat “System is up to date”.

Teraz musimy zrestartować system - wybieramy przycisk Restart.

Testujemy komunikację z listwą przekaźnikową

W pierwszym kroku będziemy działać bezpośrednio na Raspberry. Teraz będzie trochę trudniej, ale nie martwcie się - z tym poradnikiem łatwo sobie poradzicie :)

Otwieramy aplikację Terminal - jest to czwarta ikona na pasku zadań. Pojawi nam się czarne okno konsoli tekstowej. Do sterowania naszymi portami wejścia/wyjścia użyjemy preinstalowanej biblioteki WiringPi. Jeśli korzystaliście z szablonu podłączenia z poprzedniego artykułu, kolejne 4 przekaźniki powinny być przypisane do portów GPIO17, GPIO18, GPIO27 oraz GPIO22. Portom tym są przypisane cyfry - identyfikatory WiringPi GPIO, co zostało zaznaczone na schemacie udostępnionym w ramach papierowej nakładki Raspberry Leaf. Przyjrzyjmy się jej jeszcze raz.

Jak widzimy, szare cyfry wskazują na numer stosowany w bibliotece WiringPi - te numery będą dla nas istotne. Jak widać, nasze 4 porty noszą odpowiednio numery: 0, 1, 2 oraz 3.

Czas więc skonfigurować je do naszych potrzeb! Zaczniemy od pojedynczego pinu.

Musimy wydać dwie komendy.

Pierwsza - która ustawi nam te porty jako WYJŚCIA (bo przez nie nasz sygnał WYCHODZI z Raspberry Pi i trafia dalej - do listwy przekaźnikowej). Wpisujemy więc:

gpio mode 0 out

gdzie 0 oznacza numer pinu wg. nomenklatury WiringPi (szare cyfry na schemacie). Potwierdzamy komendę wciskając ENTER. Nic się nie stało - wszystko w porządku :)

Teraz pora na drugą komendę - która zmieni stan tego wyjścia na AKTYWNY. Wpisujemy więc:

gpio write 0 1

gdzie pierwsza cyfra (0) oznacza numer pinu, a druga (1) oznacza stan. 1 to stan aktywny, 0 to stan nieaktywny. Prawda, że proste? Potwierdzamy komendę ponownie wciskając ENTER.

Klik! I pierwszy przekaźnik jest już przełączony!

Wyłączmy go dla testu. Czy odgadniecie jaka komenda do tego służy?

gpio write 0 0

Klik! I przekaźnik nie jest już aktywny.

Spróbujemy więc z pozostałymi trzeba przekaźnikami. Najpierw ustalmy je jako wyjścia:

gpio mode 1 out
gpio mode 2 out
gpio mode 3 out

A teraz włączmy kolejno wszystkie nasze przekaźniki:

gpio write 0 1
gpio write 1 1
gpio write 2 1
gpio write 3 1

Prawda, że proste? Możemy w ten sposób sterować dowolnym urządzeniem, chociaż my podłączymy elektrozawory do sterowania nawadnianiem. W następnej części spróbujemy uruchomić na naszym minikomputerze serwer internetowy, dzięki któremu nie będziemy musieli wpisywać komend ręcznie - wywołamy je przez kliknięcie w przycisk na naszym telefonie!

powrót do listy artykułów