Pokazywanie postów oznaczonych etykietą raspberry. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą raspberry. Pokaż wszystkie posty

sobota, 4 lutego 2023

Raspberry Pi Zero

Że pi zdrożało nieprzyzwoicie przypomniałem sobie, że mam jeszcze trzy egzemplarze modelu zero w wersji bez wbudowanego w płytkę Wi-Fi

Pi ma mieć tylko kamerę i termometr DS18B20, ale karta Wi-Fi wymaga przejściówki USB-Mini USB żeby ją wsadzić. Kupiłem coś takiego za 3 PLN na Allegro. Teraz mogą instalować system:

snap install rpi-imager

Instaluje program do instalowania systemu na kartach SD. Instalacja idzie błyskiem.

W /boot dodaję plik ssh (może być pusty) żeby przy starcie uruchomił się demon SSH

Podobnie żeby przy starcie system połączył się z siecią Wi-FI plik /etc/wpa_supplicant/wpa_supplicant.conf powinien zawierać coś w rodzaju:

   ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
   update_config=1
   country=US
   
   network={
       ssid="NETWORK_NAME"
       psk="password"
       key_mgmt=WPA-PSK
   }

Teraz się okazało, że i tak się nie połączy, bo nie ma normalnego użytkownika w systemie. Takiego użytkownika można utworzyć na etapie tworzenia karty systemowej (czyli za pomocą rpi-imager; tam zresztą też można podać namiary na sieć WiFi a nie grzebać w pliku wpa_supplicant.conf.) No ale ja tego nie zrobiłem.

Na szczęście nie trzeba uruchamiać rpi-imager powtórnie. Wystarczy znowu dłubnąć w plikach konfiguracyjnych, konkretnie Należy utworzyć plik userconf.txt w katalogu /boot. W tym pliku wpisać (jeden wiersz):

pi:$6$/XOZsG1X0IAbhXB0$wYZHRkvib0SUKQA3KVAxofPR.JsFAbI2NCue2znGvhRsQobVdllFXyQZ7fMSvAoyEj8MfHtkMeSZT7IRIixg01

No to jest hasło raspberry dla użytkownika pi

Teraz już zadziała

  ssh -l pi 192.168.1.cośtam

Teraz:

sudo raspi-config
## uaktywniam kamerę i 1Wire
sudo apt update
sudo apt upgrade

Kamera działa. Termometr działa

Dodaję niezbędne pakiety. Nie za dużo bo to wolny komputer. Ma robić zdjęcia, mierzyć temperaturę i wysyłać na Twittera i githuba.

apt -y install ncftp sshfs vim mc \
 imagemagick imagemagick-6-common imagemagick-6.q16 \
 python3-tweepy 

Kopiuję niezbędne skrypty konfiguracyjne .netrc oraz .gitconfig żeby móc zapisywać do repozytoriów githuba.

## .netrc
machine github.com
        login hrpunio
        password ghp_######

## .gitconfig
[user]
        name = tomasz przechlewski
        email = rudolf.von.ems@gmail.com
[github]
        user = hrpunio
        token = 650000000000000000000000
[credential]
        helper = cache

Ten pierwszy to chyba niepotrzebny.

Wszystko zamykam w puszce pn Puszka elektryczna natynkowa Elektro-Plast 0251-00 135x135x42mm, która mieści płytkę, i kamerę. Robię w niej dziurę na kamerę oraz drugą na przewody. Dla Rpi-Zero jest miejsca aż nadto; Rpi-3 też się zmieści BTW, nawet z kamerą OV5647/5MP/175 stopni, która ma znacznie większy obiektyw (wystaje z puszki.)

środa, 1 kwietnia 2020

Czujnik temperatury/wilgotności/ciśnienia Bosch BME 280

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.

niedziela, 22 marca 2020

TP-Link TL-WN722N v2

Stare Pi usiłuję zamienić na kamerę w ogródku:

## co to za wersja Pi?
less /proc/cpuinfo
...
Model : Raspberry Pi Model A Rev 2

Problemem jest zasięg WiFi (od routera do kamery jest jakieś 8 metrów przez szybę, żadnych murów). Do tego Pi ma tylko jedno złącze USB co utrudnia sprawę, bo ujawnia się złośliwość przedmiotów martwych (ZPM): z dwóch moich rezerwowych hubów żaden nie działa z tym konkretnym RPi. Podłączam hub z PCeta--ten działa...

Żeby było lepiej (z łącznością) zakupiłem TP-Link TL-WN722N (v2), ale okazało się że akurat wersja 2 nie jest rozpoznawana przez fabryczny Raspbian. Pech albo ZPM2.

Najpierw usiłowałem zainstalować stosowny sterownik wg wskazówek ze strony https://github.com/lwfinger/rtl8188eu:

git clone https://github.com/lwfinger/rtl8188eu.git
sudo apt-get install raspberrypi-kernel-headers
sudo ln -s /usr/src/linux-headers-$(uname -r) /lib/modules/$(uname -r)/build
cd rtl8188eu/
make all
sudo make install
sudo reboot

Nie działa dalej, a moduł się skompilował, zainstalował i nawet jest ładowany...

Zadziałał ten przepis (https://www.raspberrypi.org/forums/viewtopic.php?t=250911#p1532103):

You can download the driver from http://downloads.fars-robotics.net/wifi-drivers/8188eu-drivers/. Choose the driver that matches the output of command uname -a for the correct kernel version:

uname -a
# Linux aisara 4.19.97+ #1294 Thu Jan 30 13:10:54 GMT 2020 armv6l GNU/Linux
mkdir Temp && cd Temp
wget http://downloads.fars-robotics.net/wifi-drivers/8188eu-drivers/8188eu-4.19.97-1294.tar.gz
tar -zxvf 8188eu-4.19.97-1294.tar.gz
./install.sh

BTW Installing my driver will disable the built in r8188eu driver. To re-enable the built in driver you will need to run the following commands:

sudo rm /etc/modprobe.d/8188eu.conf
sudo rm /lib/modules/4.19.69-v7l+/kernel/drivers/net/wireless/8188eu.ko
sudo depmod -a

Kamera

Miałem już ze starych czasów puszkę z Raspberry w środku, z kamerą przyczepioną do ścianki, zrobioną dziurą na obiektyw i kablem doprowadzającym zasilanie przez piny P2+P6 (też tak można). Zasilacz w domu, poza oknem już 5V. Na wszelki wypadek -- żeby mi kogoś nie zabiło przez przypadek (a nawet czegoś, bo teraz czasy takie że jakby dzika poraziło, to też by była afera) -- wolałem nie ciągnąć 230V z mieszkania. Dlatego też zasilanie jest po zwykłym dwużyłowym kablu a nie przez USB (bo tak mi się wydawało prościej).

Znowu coś nie tak od pierwszego strzału (ZPM3):

mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1)

Ze starych czasów pamiętam, że problem może być z połączeniem/uszkodzeniem (taśmy na przykład). Zmieniłem kamerę i taśmę na inną. Działa. Musiała być uszkodzone widocznie.

Kamerą będę fotografował mój blok od tyłu, że tak powiem. Z drzewkiem brzoskiwni na pierwszym planie. Zdjęcia wysyłał na Twittera co 3 godziny na przykład:

  0 6,9,12,15,18,21 * * * /home/pi/bin/mk1photo.sh

Na zdjęciu widać czujnik ruchu, bo faktycznie takowy też dokleiłem do obudowy. Że niby miał zdjęcia robić jak ruch wykryje, ale ponieważ to w zasadzie nie działało, więc teraz ten czujnik wprawdzie jest, ale nie podłączony. Atrapa...

sobota, 5 października 2019

Instalowanie selenium na raspberry pi

W moim rpi mam Debiana w wersji Buster:

$sudo apt install python-selenium python3-selenium chromium-browser

Uruchamiam prosty skrypt, którego używam do pobierania zasobów z Internetu:

$selenium_get_www_page.py https://www.google.pl
chrome not reachable

Po konsultacji z google znalazłem (radykalne) rozwiązanie. Należy zrobić downgrade relewantnych pakietów:

# Jakie są wersje dostępne:
apt-cache madison chromium-chromedriver chromium-browser

Nie ma żadnych innych poza tymi, które mam zainstalowane, więc trzeba doinstalować z wersji Stretch:

# Należy dodać deb http://archive.raspberrypi.org/debian/ stretch main
# do /etc/apt/sources.list

apt-get update

# Jakie są wersje dostępne teraz:
apt-cache madison chromium-chromedriver chromium-browser

chromium-chromedriver | 74.0.3729.157-rpt5 | \
http://archive.raspberrypi.org/debian buster/main armhf Packages
...

Instaluję stare wersje:

apt-get install chromium-chromedriver=72.0.3626.121-0+rpt4
  chromium-browser=72.0.3626.121-0+rpt4
  chromium-codecs-ffmpeg-extra=72.0.3626.121-0+rpt4
  chromium-browser-l10n=72.0.3626.121-0+rpt4

apt-mark hold
     chromium-chromedriver chromium-browser
     chromium-codecs-ffmpeg-extra chromium-browser-l10n

Teraz skrypt selenium_get_www_page.py działa.