Blog (1)
Komentarze (9)
Recenzje (0)
@fantom123Początki z Banana Pi i IoT

Początki z Banana Pi i IoT

19.04.2015 22:21

Banana Pi + DS18B20 = IoT

Witajcie :) Jest mój pierwszy wpis na DP, ale bardzo ciekawy. Będzie trochę programowania, trochę zabawy z kabelkami - coś co lubią duzi chłopcy ;)

Co będziemy potrzebować:

  • Banana PI
  • ds18b20
  • rezystor 4.7k?
  • Płytka stykowa i parę kabelków
  • 15 minut żeby złożyć i uruchomić

Skoro mamy skompletowany potrzebny sprzęt to zabieramy się do złożenia tego w działającą całość.

Podłączamy czujnik temperatury ds18b20 według schematu:

551698

Z racji tego że banana pi nie ma wbudowanej sprzętowej obsługi 1 wire to musimy włączyć wersje programową. W tym celu musimy edytować plik script.bin i dodać w nim obsługę 1 wire. Zaczynamy od zalogowania się do naszego banana i pobrania potrzebnej aplikacji która odkoduje plik z ustawieniami i ponownie zakoduje poprawiony plik.

sudo su
cd ~
git clone git://github.com/linux-sunxi/sunxi-tools.git
apt-get install libusb-1.0
cd sunxi-tools
make

Jeśli nie macie domyślnie zamontowanej partycji boot ( u mnie nie była) to trzeba zamontować ją ręcznie na czas edycji wymaganego pliku. Ja partycje boot zamontowałem w /mnt

mount /dev/mmcblk0p1 /mnt

Edytujemy plik script.bin

./bin2fex /mnt/script.bin script.fex
nano script.fex

Po otwarciu pliku w edytorze dopisujemy na końcu pliku dwie linijki.

[w1_para]
gpio = 18

Pin 18 odpowiada pinowi 12 ze schematu powyżej. Zapisujemy plik i zapisujemy zmieniony plik na partycji boot, potem restartujemy urządzenie.

./fex2bin script.fex /mnt/script.bin
reboot

Po uruchomieniu ponownym przystępujemy do testu odczytu temperatury. Wykonujemy poniższe polecenie: Dodanie modułów:

sudo su
modprobe wire
modprobe w1-gpio
modprobe w1-therm

Odszukanie urządzenia i odczyt temperatury:

ls /sys/bus/w1/devices/

w odpowiedzi dostaniemy informację o znalezionych termometrach w moim przypadku jest to 28‑0000052e0305. Teraz wystarczy, że w poniższym kodzie wpiszecie adres swojego termometru.

cat /sys/bus/w1/devices/TuWpiszAdres/w1_slave

U mnie wygląda to następująco:

cat /sys/bus/w1/devices/28-0000052e0305/w1_slave

Po wykonaniu zapytania otrzymujemy informację o temperaturze:

5c 01 4b 46 7f ff 04 10 a1 : crc=a1 YES
5c 01 4b 46 7f ff 04 10 a1 t=21750

W moim przypadku jest to t=21750 czyli mam 21.75 stopni Celsjusza.

Teraz przystąpimy do wysyłania informacji z termometru przy użyciu skryptu napisanego w pythonie do bardzo ciekawej strony https://thingspeak.com W tym celu musimy wykonać następujące czynności:

[numlist] [item]Udajemy się na stronę i zakładamy darmowe konto https://www.thingspeak.com[/item][item]Logujemy się i klikamy ikonkę 'Channel'[/item][item]Klikamy ikonkę 'Create New Channel'[/item][item]Nadajemy nazwę projektowi np. Termometr w domu i wpisujemy nawę w polu 'Field 1' np. Temperatura[/item][item]Klikamy 'Update Channel' po uzupełnieniu informacji podanych w poprzednim kroku[/item][item]Klikamy zakładkę 'API Keys' wyświetlony tam kod api 'Write API Key' wykorzystamy w kodzie pythona[/item][item]W zakładce 'Private view' będziemy widzieć zapis graficzny z naszego miernika temperatury podpiętego do banana pi[/item][item] Pobieramy przygotowany prze zemnie skrypt temp.py

wget https://dl.dropboxusercontent.com/u/38897001/temp.py

[/item][item]Edytujemy pobrany skrypt i zmieniamy w nim dwie wartości 'KOD-API' i  '28‑0000052e0305' odpowiednio w pierwszym wpisujemy swój kod api ze strony thingspeak.com a w drugiej adres naszego czujnika ds18d20

nano temp.py

[/item][item]Uruchamiamy kod i obserwujemy w konsoli status przesyłania i odczytu temperatury. Na stronie internetowej naszego projektu też powinny się ładować nowe wartości.

python temp.py

[/item][item]Po przetestowaniu poprawnego działania możemy uruchomić nasz skrypt w tle

screen python temp.py

w celu opuszczenia okna z aplikacją pracującą w tle klikamy Ctrl + a i Ctrl + d[/item][/numlist]

A tutaj jak to wygląda u mnie: https://thingspeak.com/channels/34528

124608
124609

[join][img=obrazek3]

Mam nadzieję że jest przejrzyście i zrozumiale napisane :) Liczne komentarze mile widziane jak i tworzenie własnych rozwiązań IoT i chwalenie się nimi na blogu dobrych programów.

Wybrane dla Ciebie
Komentarze (12)