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)
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 |
Zobacz też: MQTT – lekki i przyjemny protokół dla komunikacji M2M
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 sudo cp domoticz.sh /etc/init.d sudo chmod +x /etc/init.d/domoticz.sh sudo update-rc.d domoticz.sh defaults |
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 MagPi. www.raspberrypi.org/magpi/
Dzięki jeszcze raz wszystkim za udział w warsztatach. Mam nadzieję, że zobaczymy się niedługo na kolejnych! 😀
Jeśli podoba Ci się idea takich warsztatów, możesz wpierać blog, aby mogło sie odbywac więcej takich wydarzeń. Zapraszam TUTAJ.