Mam na działce trzy raspberry pi, każde wyposażone w standardową kamerę oraz czujnik BME 280 (temperatura/ciśnienie/wilgotność/.)
Ponieważ czujnik czasami szwankował co być może było spowodowane kiepskim montażem, a kamera robiła zdjęcia kiepskiej jakości, to sobie wymyśliłem upgrade. Konkretnie, że zmienię kamerę na OV5647/5MP z szerokokątnym obiektywem (175 stopni), a do BME 280 dodam niezawodny DS18B20, który wprawdzie mierzy tylko temperaturę ale za to dokładnie.
Połączenia wtyki czujników/GPIO są następujące:
Podłączyłem wszystko tym razem porządniej (a przynajmniej tak mi się wydaje.) Nowa kamera wymagała większej dziury i innego sposobu umocowania na pokrywie obudowy.
Dla przypomnienia: BME 280 testuje się czy działa wydając polecenie:
i2cdetect -y 1
Co powinno skutkować wypisaniem kilkudziesięciu kresek i liczby 76. Jeżeli są same kreski coś nie działa.
Czujnik DS18B20 z kolei powinien być widoczny tutaj:
ls -l /sys/bus/w1/devices/w1_bus_master1/
Tam powinien być numer czujnika, moim przypadku
jest to 28-4680e30264ff
. Temperaturę się czyta
po prostu
#!/bin/bash # Odczyt temperatury z zapisem do loga LOG_DIR=/home/pi/Logs/Digitemp SENS="28-4680e30264ff" TIME="`date "+%Y%m%d%H%M%S"`" TEMP="`cat /sys/bus/w1/devices/${S1}/w1_slave | tr '\n' ' '`" echo "$TIME;$SENS;$TEMP" >> $LOG_DIR/digitemp.log
Przy okazji przetestowałem też AHT10 (temperatura/wilgotność), który
działa ale z obsługą jest już słabo.
Znalazłem mianowicie skrypt w Pythonie drukujący temperaturę
z dokładnością do stopnia a innych skryptów, które by podawały dokładniej, nie udało mi się
uruchomić. W google zresztą podejrzanie mało informacji na temat
AHT10+raspberry
.
Przy okazji też przetestowałem patent na skonfigurowanie rpi z wieloma sieciami WiFi:
/etc/wpa_supplicant/wpa_supplicant.conf ##==== ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="network1" psk="password1" id_str="id-string1" } network={ ssid="network2" psk="password2" id_str="id-string2" }
Teraz mogę sobie przynieść pi z działki, włączyć i mi się połączy z WiFi w domu też:-)
Czujnik ten jest fragmentem większej całości, że tak powiem tajemniczo.
Do jego uruchomienia wykorzystałem doskonały opis ze strony
https://twojpomyslna.wordpress.com/2019/02/18/raspberry-pi-bme280-i2c-domoticz/
.
Zresztą jest to ekstremalnie proste...
BME 280 występuje w kilku wariantach. Na stronie
twojpomyslna.wordpress.com
pokazany jest czujnik
z czterema stykami, a ja kupiłem z sześcioma i też działa.
Styki podłączamy następująco: VCC→#P1, GND→#P6, SCL→#P5,
SDA→#P3.
Potem należy zainstalować stosowny software:
sudo apt-get install -y python-smbus i2c-tools ## Sprawdzamy czy działa ## ls -l /dev/i2c* ## crw-rw---- 1 root i2c 89, 1 mar 29 15:41 /dev/i2c-1 i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Teraz ściągam/uruchamiam skrypt bme280.py
:
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bme280.py python bme280.py
Wydruk jest dość rozwlekły i bez daty/czasu więc modyfikuję skrypt, tak aby całość była drukowana w jednym wierszu. Dodaję stosowany wpis do crontaba.
Czujnik jest lepszy od DHT22 nie tylko dlatego, że oprócz temperatury/wilgotności, jeszcze mierzy ciśnienie, ale także działa podłączony kilkumetrowym przewodem a DHT22 odmawiał wtedy współpracy.