Warsztaty Raspberry Pi

Podsumowanie tego, co już było i plany na przyszłość.

Od jakiegoś czasu organizuję w różnych miastach darmowe warsztaty Raspberry Pi. Jak dotąd odwiedziłem:

Hackerspace Wrocław

Hackerspace Warszawa

Politechnika Warszawska odział w Płocku

Hackerspace Silesia

Zobacz też: Zwiedzamy: Hackerspace Silesia

Wielu uczestników podjęło próbę pracy z maliną po raz pierwszy.

Dla mnie było to świetne przeżycie, podczas którego wiele się nauczyłem. Wspaniali ludzie oraz zabawa z technologią za każdym razem tworzyły niesamowitą atmosferę (: Mam nadzieję, że dla tych, którzy brali udział w warsztatach były one równie cenne. Cieszę się z wszystkich wypełnionych ankiet, komentarzy i krótkich rozmów powarsztatowych. Im większy feedback, tym łatwiej mi udoskonalać te spotkania. Dodatkowo – wielkie dzięki za miłe słowa. Daje to motywację!

Warto przypomnieć, że warsztaty są organizowane przy wsparciu Sii, które ma swój wkład w rozwój technologii oraz Nettigo – sklepu internetowego, w którym można sobie takie Raspberry zakupić.

Poniżej zamieszczam krótką relację z dotychczasowych spotkań i skrót materiałów, z których korzystaliśmy.

Przed warsztatami na karty pamięci Raspberry wlałem raspbiana według tej instrukcji:

Okazało się to jednak nietrafionym pomysłem. W Katowicach, gdzie pakiety nie instalowały się poprawnie, trzeba było wykonać dodatkowo update i upgrade, co pochłonęło nam trochę czasu. Znalazłem już na to lepsze rozwiązanie i obecnie pracuję nad przygotowaniem obrazu zawierającego wszystkie potrzebne pakiety. Uchroni nas to przed wieloma nieprzewidzianymi problemami.

Następnie odblokowałem kolejne porty i interfejsy.

W trakcie warszawskich warsztatów razem sprawdzaliśmy IP i konfigurowaliśmy na statyczne, co miało służyć znalezieniu Raspberry w sieci. Rzecz w tym, by maliny nie korzystały z dynamicznego przydzielania wolnego adresu, tylko otrzymywały dokładnie ten, który został wskazany. Było to realizowane poprzez edytowanie pliku:

sudo nano /etc/dhcpcd.conf

pod fragmentem z zakomentowanym statycznym IP dopisywałem przykładowo:

interface wlan0

static ip_address=192.168.1.123/24

static routers=192.168.1.1

static domain_name_servers=192.168.1.1

Pierwsza część adresu IP „192.168.1” była związana z siecią w danym miejscu i zależnie od niego się różniła. Druga część odpowiadała już za sam adres maliny – każda miała swój własny, niepowtarzalny i sprawdzony wcześniej pod względem dostępności.

Niestety, takie działania także okazały się czasochłonne. Poza tym wymieszanie dynamicznych i statycznych IP mogło dodatkowo powodować nieprzyjemne efekty.

W kolejnych edycjach mam już na to sposób. Będzie skrypt, który wyświetli IP po starcie.

Na warsztatach na początku porozmawialiśmy o podstawowych informacjach związanych z Raspberry. Było trochę o hardwarze i softwarze. Wszystkie skrypty, o których zaraz napiszę, dostępne są na repozytorium: https://github.com/InzynierDomu/Warsztaty_Raspberry_Pi

Zobacz też: Repozytoria i systemy kontroli wersji

Do połączenia używaliśmy putty albo openSSH:

Potem przeszliśmy do zabawy z elektroniką. Korzystaliśmy z płytek stykowych, tak jak na filmiku:

Też zaczęliśmy od sterowanie diodą dzięki skryptowi zapisanemu w repozytorium (blink.py).

Skrypty umieszczaliśmy na dwa różne sposoby.

Stworzyliśmy serwery FTP – zamiast pisać bezpośrednio na Raspberry, można było tworzyć skypty na komputerze, a potem je przesyłać.

sudo apt-get install proftpd

Częściej jednak używaliśmy najprostszego edytora –  nano – wbudowanego w raspiana.

sudo nano blink.py

Wpisywaliśmy skrypt, używając ctrl+o – zapisywaliśmy, a ctrl+x – zamykaliśmy.

W takim skrypcie w liniach:

GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)

GPIO.output(25, GPIO.HIGH)

Liczba 25 oznaczała pin, którym sterowaliśmy.

Schemat wyglądał następująco:

Potem mogliśmy już wpisać:

sudo python blink.py

Dioda mrugała! (: Zakończyć mogliśmy dzięki skrótowi ctrl+c.

Bardzo podobnie było, kiedy chcieliśmy odczytać stan na GPIO. Skrypt odpowiedzialny za to w repozytorium znajdziecie jako read_pin.py. Na początku korzystaliśmy ze zwykłego przewodu, a następnie z czujników (natężenia dźwięku, ruchu, pola magnetycznego, dźwięku, temperatury, przechylenia, pojemności).

Czujnik ruchu(PIR)

Kontaktron

Po takim wstępie przeszliśmy do ciekawszej zabawy z małym IOT i instalowaliśmy pakiety potrzebne do MQTT:

sudo apt-get install mosquitto

sudo git clone https://github.com/eclipse/paho.mqtt.python

cd paho.mqtt.python

sudo python setup.py install

Korzystaliśmy z dwóch skryptów do publikacji i subskrypcji, które także znajdziecie na repozytorium (MQTT_Publish.py MQTT_Subscribe.py).

Zobacz też: Hej lampko, włącz się!

Mogliśmy wysyłać informacje między malinkami. Następnie mieszaliśmy skrypty i ich funkcjonalności, w wyniku czego powstały nowe, które wysyłały wiadomość od wysterowania pinu lub sterowały diodą po przyjściu wiadomości (ReadPinAndPublishMQTT.py MQTTSubscribeAndBlink.py).

Można też było skorzystać z cloudMQTT (https://www.cloudmqtt.com/), aby skomunikować się poprzez MQTT z zewnątrz.

Zobacz też: Szklarnia w internecie rzeczy(IOT)

Testowaliśmy także działanie IFTTT i skryptu, dzięki któremu mogliśmy wysyłać wiadomości o temperaturze na maila lub telefon. (TemperatureWebhook.py)

Wygląd formuły na stronie.

Termometr cyfrowy DS18b20

Zobacz też: Przydatne aplikacje/strony odc. 1

Nie zabrakło wzmianki o domoticzu, dzięki któremu zamiast skryptów mogliśmy odczytywać wartości oraz korzystać z MQTT, tylko przeklikując wszystko. Tutaj polecenia, aby zainstalować sobie taki interfejs.

mkdir ~/domoticz

cd ~/domoticz

wget http://releases.domoticz.com/releases/beta/domoticz_linux_armv7l.tgz

tar xvfz domoticz_linux_armv7l.tgz

rm domoticz_linux_armv7l.tgz

Następnie znajdziemy go na adresie w sieci lokalnej po IP i końcówce :8080.

Doceniam to, że tak chętnie zadawaliście pytania. Mogliśmy podzielić się pomysłami i porozmawiać o możliwych projektach z Raspberry. To te dyskusje były najcenniejsze!

Przypominam też tym, który byli zainteresowani poszerzeniem wiedzy o zastosowaniach maliny, tutaj można pobrać za darmo PDFy czasopisma MagPiwww.raspberrypi.org/magpi/

Dzięki jeszcze raz wszystkim za udział w warsztatach. Mam nadzieję, że zobaczymy się niedługo na kolejnych! 😀

Dodaj komentarz

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