piątek, 26 lutego 2016

Rasperry Pi - stan komputerka na wyświetlaczu OLED SSD1306


Od dłuższego czasu zastanawiałem się nad adaptacją dość małego wyświetlacza OLED. W technologie ubieralne na pewno się udawać nie będę, a sam wyświetlacz do automatyki średnio się nada. Postanowiłem wykorzystać go do równie małego Raspberry Pi Zero, tworząc z jego użyciem swoistą "deskę rozdzielczą" tego komputerka. Pomysł jest w fazie rozbudowy, ale już wygląda na tyle fajnie, że postanowiłem się nim podzielić. Wyświetla trzy wartości: zajętość CPU, ramu i obecny adres IP w sieci lokalnej.

Co należy zrobić aby odpalić wspomniany wyświetlacz? Zakładam że posiadasz Raspberry Pi w wersji B1, B+1 albo Zero. W pierwszej trzeba uruchomić moduł I2C. Postępujemy zgodnie z poradnikiem na stronie: https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c
Dogrywamy biblioteki od GPIO, grafik w pythonie jak i samych sterowników od SSD1306. Wystarczy wklepać komenda po komendzie poniższy zestaw:

sudo apt-get update
sudo apt-get install build-essential python-dev python-pip

sudo pip install RPi.GPIO 
sudo apt-get install python-imaging python-smbus
sudo apt-get install git 
git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git 
cd Adafruit_Python_SSD1306 
sudo python setup.py install
sudo pip install psutil

Pobieramy moją paczkę ze skryptem: http://1drv.ms/1T02KuB, rozpakowujemy ją do /home/pi/ Podpinamy nasz wyświetlacz zgodnie ze schematem, filozofii co prawda nie ma, ale zamieszczam dodatkowo pinout maliny. Trzeci dotyczy również RPi Zero, są to dokładnie te same piny.



OLED LCD <-> Raspberry Pi
SDA <-> SDA1 (pin nr.3)
SCL <-> SCL1 (pin nr.5)
VCC <-> 5V (pin nr. 2 lub 4)
GND <-> GND (tu mamy do wyboru do koloru: 6,9,14,20,25,34,39)

Skrypt uruchomiamy komendą: sudo python oled.py Jeśli wszystko jest w porządku, na wyświetlaczu powinien pojawić się stan jak na moim pierwszym zdjęciu.  

No fajnie, ale co zrobić żeby nie odpalać tego ręcznie za każdym razem po uruchomieniu Maliny?

Tak to powinno wyglądać
Jest też i na to patent. Otwieramy na RPi plik komendą: sudo nano /etc/rc.local. Przed ostatnią linijką dodajemy polecenie wywołania skryptu, z kompletnym adresem gdzie się znajduje oraz znakiem & na końcu. Przyciskając CTLR+O wywołujemy zapis pliku, dajemy enter, potem wychodzimy z notatnika CTRL+X. Po uruchomieniu ponownie, skrypt powinien ruszyć już automatycznie.  

W razie problemów zapraszam do kontaktu, służę pomocą :)

Pozdrawiam,
Marcin

Źródła, z których bezczelnie ściągałem na potrzeby tego artykułu:
https://learn.adafruit.com
http://raspi.tv

poniedziałek, 22 lutego 2016

Raspberry Pi Python - programowanie w przeglądarce dzięki Adafruit webIDE


Każdy kto programował w Pythonie na Raspberry Pi, zastanawiał się dlaczego działa to tak nieintuicyjnie. No bo niby jak to ugryźć? Na wariata przez konsole dziubać? Czy może otworzyć sesję VNC i klikać z poziomu wirtualnego pulpitu? Ani jedno ani drugie rozwiązanie nie należą do mega wygodnych opcji. Na szczęście Adafruit przygotowało dość fajne miniśrodowisko programistyczne działające z przeglądarki - Adafruit webIDE.

Nie jest to jakieś wielki odkrycie, ponieważ dodatek ten już ma co nieco czasu, ale warto zwrócić na nie uwagę. Wszystko instaluje się jedną komendą poprzez ssh, do pracy wymaga również konta na bitbucket (taki odpowiednik githuba). Obsługa jest prosta, tworzymy projekt, tworzymy plik ze skryptem, odpalamy go potem w konsoli jednym klikiem z przeglądarki.


webIDE posiada również planowy wywoływacz skryptów, który odpala skrypt w wybranych ramach czasowych. Możliwości tego miniśrodowiska są dość spore, do tego nie musimy nic wgrywać do stronie naszego peceta - jak dla mnie bomba. Cóż więcej dodawać, bierzcie i kodujcie :)


Szerszy opis instalacji znajdziecie na stronie Adafruit: https://learn.adafruit.com/webide/installation, jednak podpowiem, że sprowadza się ona do wklepania poniższej komendy w konsoli:
curl https://raw.githubusercontent.com/adafruit/Adafruit-WebIDE/alpha/scripts/install.sh | sudo sh

Jeśli okaże się że macie zajęty domyślny port 80 (np. zainstalowany apache), instalator przerzuci webIDE na inny port (w moim przypadku był to 8090).

Dzięki za uwagę!

P.S. Zbieram powoli siły po operacji, z dnia na dzień jest coraz lepiej. Dzięki za życzenia zdrówka na fanpage'u, dzięki za wsparcie :) Napędza mnie to mega do dalszego działania. I'm back!