Raspberry Pi 日記

Raspberry Pi 格闘記録

DHT22を使った温度、湿度表示プログラム

2023-08-14 00:44:51 | 個別プログラム

↓の3)で動かず苦労。

 

1) DHT22接続

GPIOは15に接続(どこでも良い)

2) Adafruit Install

pi@raspberrypi:~ $ sudo apt-get update

pi@raspberrypi:~ $ sudo apt-get install python3-pip

pi@raspberrypi:~ $ sudo python3 -m pip install --upgrade pip setuptools wheel

pi@raspberrypi:~ $ sudo pip3 install Adafruit_DHT

#インストール先は/usr/local/lib/python3.7/dist-packagesに入ります。

pi@raspberrypi:~ $ cd Adafruit_Python_DHT

pi@raspberrypi:~/Adafruit_Python_DHT $ sudo python3 setup.py install

3) "/usr/local/lib/python3.7/dist-packages/Adafruit_DHT/platform_detect.py" 書き換え

111行目あたりに以下を追加

elif match.group(1) == 'BCM2711':

return 3

 

4) DHT22_org.py

import Adafruit_DHT
from time import sleep

DHT_SENSOR = Adafruit_DHT.DHT22
DHT_PIN = 15

while True:
    humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)

    if humidity is not None and temperature is not None:
        print("Temp: {0:0.1f}C  Humidity: {1:0.1f}%".format(temperature, humidity))
        sleep(5)
    else:
        print("Failed.")

5) pi@raspberrypi:~ python3 ./DHT22_org.py


フォトトランジスタとADコンバータを使った照度センサー

2021-01-26 01:12:00 | 個別プログラム

 ADコンバータとフォトトランジスタを使って明るさセンサーを作ってみた。欲しいのは直接太陽光があたっている時の分解能。Cds抵抗よりは良さそうだ。

    1. 素子
      • ADコンバータ:ADS1015  
      • フォトトランジスタ NJL7502L   
      • カーボン抵抗 1kΩ
    2. 接続
    3. プログラム
      #! /usr/bin/env python3
      
      import csv
      import time, signal, sys
      import Adafruit_ADS1x15
      import datetime
      
      save_data ='/home/pi/python/Shodo.csv'
      INTERVAL = 300 # 監視間隔(秒)
      
      GAIN = 1
      
      adc = Adafruit_ADS1x15.ADS1015()
      
      while True:
          volts = adc.read_adc( 0, gain=GAIN ) / 500.0
          lux = 3030 * volts
          lux_s='{:.1f}'.format(lux)   
          dt_now = datetime.datetime.now()
          dt2 = dt_now.strftime("%Y/%m/%d %H:%M:%S")
          dt3 = (dt2, lux_s)
          fileobj = open(save_data, "a")
          writer = csv.writer(fileobj)
          writer.writerow(dt3)
          fileobj.close()
          time.sleep(INTERVAL)
      
      


Raspberry Pi 立ち上げ

2021-01-20 23:17:44 | システム関連
  • マイクロSDカード ドライブ作成
    1. SDカードフォーマット

      下記よりSDカードフォーマッターをダウンロードして実行 
      SD/SDHC/SDXC用SDメモリカードフォーマッター 5.0

    2. OSダウンロード 

      下記よりNOOBS の Download Zipでダウンロード
        NOOBS Download

    3. ダウンロードしたものを展開してSDへ全コピー 

      これで インストール用SDカードの完成です。

  • 起動
    1. 上で作成したマイクロSDをラズバイに差す
    2. HDMIでDisplay接続
    3. USBにマウスとキーボード接続

      キーボードは後からBlue Toothでもよい。

    4. 電源接続

      Install始まる。終了したら再起動を促す画面がでて再起動。その後Update。少し時間かかる。

  • SWAP設定
     $  free -m 
    でSwap量確認。/etc/dphys-swapfile のCONF_SWAPSIZE=100を2048に変更。Rebootすれば変更できている。
  • Sleep無効
     $  sudo mousepad /etc/xdg/lxsession/LXDE/autostart
    末尾に以下を追加
     
    @xset s off
    @xset s noblank
    @xset -dpms
    
     $ sudo mousepad /etc/lightdm/lightdm.conf
    末尾に以下を追加
     
    [SeatDefaults]
    xserver-command=X -s 0 -dpms
    
     $ Reboot
  • Raspberry Pi設定でSSH/VNC/I2C等有効化、ローカリゼーションで言語とKBD
  • Network設定

    WiFiマークを右クリック、Network Preferencesを設定

    Web有効にしたければAutomatically Configure Empty Options

 

  • UPDATE
    $ sudo apt update
    $ sudo apt upgrade
  • 日本語入力

$ sudo piwiz  でインストール

  • nginx
$ sudo apt install nginx
$ sudo systemctl start nginx$ sudo systemctl enable nginx
  • Samba
    1. Install
       
      $ sudo apt install samba samba-common-bin
      $ sudo mkdir /var/samba
      $ sudo chown pi:pi /var/samba
      $ sudo pdbedit -a pi
      $ sudo mousepad /etc/samba/smb.conf
      
      末尾に以下を追加
      [Share]
        comment = Share Folder
        browseable = yes
        path = /var/samba
        writable = yes
        valid users = pi
        force user = pi
      
    2. restart
      $ sudo systemctl restart smbd
      $ sudo systemctl restart nmbd
      $ sudo mousepad /etc/rc.local
      
    3. Windows 側
      エクスプローラーの下記のPCの部分に¥¥IP Address を打つとアクセスできる。

  • numpy,  pillow, pandas, matplotlib
$ sudo apt-get install python3-numpy
$ sudo apt-get install python3-pandas
$ sudo apt-get install python3-matplotlib

$ python -m pip install --upgrade pip

$ pip install Pillow

  • scipy , ipython, jupyter, nose
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2

$ sudo update-alternatives --list python
$ sudo update-alternatives --config python* 0            /usr/bin/python3.7   2         自動モード  1            /usr/bin/python2.7   1         手動モード  2            /usr/bin/python3.7   2         手動モード
$ python -V Python 3.7.3$ python -m pip install --user scipy ipython jupyter nose

  • HDMI 接続無しでVNC
    $ sudo mousepad /boot/config.txt
    hdmi_force_hotplug=1 をコメントアウト
    
  • VNC 時の解像度
    $ sudo raspi-config
    1. DISPLAY OPTION
    2. Resolution
    3. 1920 x 1080

ADコンバータで明るさセンサー

2021-01-12 21:04:17 | 個別プログラム

 照度センサーもあるが、導入も兼ねてADコンバータとCdS抵抗を使って明るさセンサーを作ってみた。アナログ回路は色んな応用が効く。

  1. 素子
    • ADコンバータ:ADS1015  
    • CdS抵抗 (10kΩ)   
    • カーボン抵抗 1kΩ
  2. 接続
  3. プログラム
    • Adafruit Lib インストール
       >sudo pip install adafruit-ads1x15
    • Python source

      #! /usr/bin/env python3
      
      import csv
      import time, signal, sys
      import Adafruit_ADS1x15
      import datetime
      
      save_data ='/home/pi/python/Shodo.csv'
      INTERVAL = 300 # 監視間隔(秒)
      
      GAIN = 1
      
      adc = Adafruit_ADS1x15.ADS1015()
      
      while True:
          volts = adc.read_adc( 0, gain=GAIN ) / 500.0
          volt = str(volts)
          dt_now = datetime.datetime.now()
          dt2 = dt_now.strftime("%Y/%m/%d %H:%M:%S")
          dt3 = (dt2, volt)
          fileobj = open(save_data, "a")
          writer = csv.writer(fileobj)
          writer.writerow(dt3)
          fileobj.close()
          time.sleep(INTERVAL)