sensbase i Raspberry Pi

Jedną z możliwości wykorzystania sensbase jest po prostu podłączenie go poprzez wbudowane złącze USB.  Jednak płytka ma wyprowadzony interfejs szeregowy na pinach co stanowi alternatywny sposób podłączenia sensbase. Przedstawię to na podstawie raspberry pi.

W przedstawionym połączeniu wykorzystujemy cztery piny: GND, VCC, TX I RX.

Znając wyprowadzenia na złączy raspberyy pi znajdujemy odpowiednie piny i podłączamy do sensbase.

Jest to Ground, 5V Power, GPIO 14 i 15.

Samo odpowiednie podłączenie obu urządzeń ze sobą nie wystarczy, należy ustawić odpowiednio oprogramowanie(firmware) na raspberry pi. W tym przypadku jest to OpenWrt Altitude Adjustment 12.09-beta2 dostępne pod adresem projektu. Obrazy budowane przez mnie znajduja się na ftp. Zawierają one klika zmian mi.in. driver SPI, I2C. Sposób instalacji na kartę SD został przedstawiony na stronie openwrt.pl

Pierwsza zmiana to edycja pliku 'cmdline.txt’, który znajduje się na pierwszej partycji kary SD. Usuwamy z niej sekwencję:

console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

Botujemy system z karty SD i dokonujemy ostatniej zmiany. Tym razem w pliku „/etc/inittab”. Dodajemy znak komentarza(#) do linii:

#ttyAMA0::askfirst:/bin/ash --login

W ten sposób zostało wyłączone logowanie na tę konsole (ttyAMA0) i możemy wykorzystać ją dla siebie.

Restartujemy malinę i instalujemy ser2net, pakiet który pozwoli przekierować odbierane dane z konsoli szeregowej do sieci.

opkg update
opkg install ser2net
echo "2000:raw:0:/dev/ttyAMA0:9600" > /etc/ser2net.conf
ser2net

Ustawiliśmy program ser2net, tak aby odbierał informacje z konsoli /dev/ttyAMA0 z prędkością 9600 (takie jest też ustawienie na sensbase) i przekazywał na port 2000.

Szybki test z zewnętrznej maszyny,

telnet 192.168.88.16 2000
Trying 192.168.88.16...
Connected to 192.168.88.16.
Escape character is '^]'.
{"nodeid":"2.0","light":"1023.0","humi":"83.4","temp":"9.6","press":"1003.3","batvol":"418.0","lobat":"0.0"}
{"nodeid":"5.0","light":"0.0","humi":"0.0","temp":"50.3","press":"0.0","batvol":"407.0","lobat":"0.0"}

I to tyle, resztę pracy wykonuje deamon dekodujący dane.

W celu uruchamiania ser2net na starcie raspberry pi dodajemy go do /etc/rc.local przed exit 0.

1 komentarz do “sensbase i Raspberry Pi”

Możliwość komentowania została wyłączona.