Od 2 lat mierzę temperaturę zewnętrzną wykorzystując przejściówkę ds9097 podłączoną pod RS232 i odpowiednio skonfigurowany terminal. Wykresy z temperaturą można śledzić na tej stronie: Temperatura. Całość działała całkiem niezawodnie, jedyna awaria to spodziewane uszkodzenie pendrive’a, który wymieniłem na klasyczny dysk magnetyczny. Po pewnym czasie znudziłem się tym “serwerkiem” i pod pretekstem oszczędności prądu zacząłem tworzyć analogiczny zestaw, ale na systemie bananian uruchomionym na Banana Pi.
W systemie Bananian (15.01 i 15.04) podłączenie czujnika DS18B20 wykorzystującego magistralę 1-wire do gpio to dopiero połowa drogi. Czujniki odpytuje się identycznie jak w Raspbianie na Raspberry Pi. Najprostszą metodą na sprawdzenie ich obecności w systemie jest wypisanie zawartości folderu:
ls /sys/bus/w1/devices
U mnie pusto
Na pierwszej partycji karty SD znajduje się plik z ustawieniami script.bin, który jest ładowany podczas startu – coś jakby bios. Plik należy zdekompilować z postaci binarnej na tekstową, przypisać port (gpio) obsługujący 1-wire i skompilować. Całą zabawę zaczynamy od doinstalowania niezbędnych narzędzi: git, make, gcc, pkg-config, libusb, czyli:
apt-get install git make gcc pkg-config libusb-1.0
Instalacja potrwa chwilę
Teraz ściągniemy sobie źródła sunxi tools z githuba:
git clone git://github.com/linux-sunxi/sunxi-tools.git
po sklonowaniu przechodzimy do folderu sunxi-tools:
cd sunxi-tools
i kompilujemy narzędzia wydając polecenie make, całość wyglądała u mnie tak:
Plik script.bin znajduje się na pierwszej partycji karty, która nie jest podmontowana, znajdziemy ją pod /dev/mmcblk0p1, co można potwierdzić listując zawartość nośnika:
fdisk -l
Trzeba ją podmontować pod jakiś folder, ja wybrałem /boot, , który w Bananian 15.01 jest pusty, w wersji 15.04 założyłem inny folder, bo w /boot są jakieś pliki. Polecenie to:
mount /dev/mmcblk0p1 /boot
można wylistować zawartość /boot (lub innego użytego folderu), gdzie po zamontowaniu powinien znajdować się plik script.bin:
ls /boot
Teraz użyjemy narzędzia bin2fex do dekompilacji pliku na format tekstowy:
./bin2fex /boot/script.bin script.fex
Jak widać, pierwszy parametr to lokalizacja pliku wejściowego script.bin, drugi to ścieżka zapisu tekstowego już script.fex:
Teraz za pomocą ulubionego edytora tekstu można otworzyć plik script.fex:
nano script.fex
Na samym końcu dopisujemy linijkę:
[w1_para] gpio = 4
Zapisujemy plik. Teraz trzeba go skompilować, czyli script.fex zamienić na script.bin:
./fex2bin script.fex /boot/script.bin
Teraz można zrestartować banana pi, lub lepiej – wyłączyć i podłączyć czujnik DS18B20 o czym niżej.
Definiując pin gpio = 4 otrzymujemy obsługę magistrali 1-wire na 7 fizyczny goldpinie na płytce. Jeśli chcemy wykorzystać inny pin, to w zdekompilowanym pliku script.fex trzeba sprawdzić sekcję [gpio_para], gdzie numery pinów gpio_pin_x są przypisane do konkretnych portów procesora, pomocny będzie też schemat ideowy płytki bpi, by sprawdzić połączenia portów z goldpinami złącza. W BPI interesują nas piny zasilające 3V3, GND i magistrali 1-wire, czyli:
Czyli podłączenie popularnego czujnika temperatury DS18b20 i rezystora 4,7kΩ powinno wyglądać tak (połączenia: czerwone +3,3V, czarne GND, białe 1-wire):
Po włączeniu Banana Pi można sprawdzić, czy czujnik został wykryty:
ls /sys/bus/w1/devices/
No i mam czujnik o numerze 28-000003def4da, odczyt zmierzonej przez niego temperatury:
cat /sys/bus/w1/devices/28-000003def4da/w1_slave
Wynik t=22000 trzeba podzielić przez 1000. Tak to wyglądało u mnie:
Mój cały układ pomiarowy wyglądał tak:
Fajnie wygląda pobór prądu – niecałe 500mA z włączoną kartą sieciową WiFi i odbiornikiem bezprzewodowej klawiatury. HP T5720 pobierał około 25W, Banana Pi 10 razy mniej!
Mamy w domu dość wiekowy (2012) Boombox Philips, model AZ385/12 używany przez dzieci głównie jako…
Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od…
Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…
Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…
W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…
Dziś tematyka audio, a nawet audiofilska. Uznany wzmacniacz słuchawkowy Lehmann Black Cube Linear o dość…
Zobacz komentarze
Polecam nettempa betę ;)
Używam na rpi :). Na bpi pomiar temperatury to tylko jedna z kilku funkcji.
Witam, ilustracyjna pokazuje błędne podłączenie rezystora: powinien być wpięty między Vdd a Data. Reszta ok.
Witam
Mam mały problem z kompilacja
root@openmediavault:/sunxi-tools# make
bash: make: command not found
Czy ktoś może pomóc?
apt-get install make
w najnowszym bananianie brakuje kilku rzeczy zeby zrobić make:
apt-get install build-essential
Dzięki za info, w jakiej wersji to sprawdzałeś?
Hi, i can not "make"
fel.c:30:18: fatal error: zlib.h: Datei oder Verzeichnis nicht gefunden
#include
^
compilation terminated.
Makefile:140: recipe for target 'sunxi-fel' failed
make: *** [sunxi-fel] Error 1
andy idea?
Try install libz-dev