忍者ブログ
[27]  [28]  [29]  [30]  [31]  [32]  [33]  [34]  [35]  [36]  [37
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

明るさセンサーの利用
 Analog Ambient Light Senser
 




 Lux〜6000LUXという事で

直前の土壌センサーと同じソースを利用可能

 LUX変換がメーカーのHPを見ても見当たらない
 PT550というセンサーのようである。

メーカーのHPを見ると
 このセンサーは定量測定装置であって、正確なルックスを提供できない
 との事でした。

拍手

PR
MoistureSenser(土壌水分計) を使ってみる




1.ADコンバータはMCP3028の10ビットと12ビット

2.ADコンバータの接続
 16vxx  ---- 3.3v
 15VR   ---- 3.3V
 14GND--- GND
 13CLK ---- SCLK
 12Dout---  MSO
 11Din  ---  MSI
 10CS  ---- CE0
  9DGND -- GND

3.MoistureSenserの接続
 赤 3.3V
 黒 GND
 青 CH0

4.データの校正
 完全水没で
     3.3Vで                      5Vで 
 12ビット 2496 2V前後   4095 3.299V
 10ビット  613  1.97V    1023 3.299
 
メーカーのHPを見ると Arduinoの例で内蔵ADが10ビットだから

 5vで
 0から300  乾燥
 300から700 標準
 700から950 水びたし

 校正結果
 10ビットで使用して
 上記を採用

5.ソースコードは
MP3208msenser10.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#sudo apt-get install python-spidev
import time
import sys
import spidev

spi = spidev.SpiDev()
spi.open(0,0)


def readadc(adcnum):
    r = spi.xfer2([1, 8 + adcnum << 4, 0])
    adcout = ((r[1] & 3) << 8) + r[2]
    return adcout

def readadc12(adcnum):
    if adcnum > 7 or adcnum < 0:    
        return -1
    r = spi.xfer2([4 | 2 | (adcnum >> 2), (adcnum & 3) << 6, 0])
    adcout = ((r[1] & 15) << 8) + r[2]
    return adcout


def convertVolts(data):
    volts = (data * 3.3) / 1023
    #volts = round(volts,4)
    return volts

def convertVolts12(data):
    volts = (data * 3.3) / 4095
    #volts = round(volts,4)
    return volts


if __name__ == '__main__':
    try:
        while True:
            data = readadc(0)  #12ビット readadc12(0)
            print("adc10bit  : {:8.5f} ".format(data))
            volts =convertVolts(data)  #12ビット convertVolts12(0)
            print("adc10volt  : {:8.5f} ".format(volts))

            time.sleep(3)
    except KeyboardInterrupt:
        spi.close()
        sys.exit(0)





 



拍手

RapberryPI 2016年8月現在の初期設定
(2016年12月版を参照しましょう これは古い)


雑誌やgoogle先生の情報が追い付いていないので、今日現在の情報をまとめてみた

0.SDカード関連別
 ・初期の初期
 sudo apt-get update
 sudo apr-get upgrade
 sudo apt-get install ibus-mozc fonts-takao

・環境設定から
 SetLocation
      japan jp utf-8
  Set Timezone
    jappan
  setKeyBord
    japan japan

でリブート
 JPの表示からmozcの選択
 でリブート 




1.事前準備
 ・OSを最新に
  sudo apt-get  update
       sudo apt-get  upgrade
       sudo rpi-update
   
 ・各種もろもろのモジュールを pipが便利です
     pipはPython 2.7.9以降、Python 3.4以降でデフォルトでインストールされている
  *sudo apt-get install python3-pip python-pip 最新版がインストール済みと怒られた

   sudo apt-get install  python-dev
   sudo apt-get install  python3-dev すでに最新版ですと怒られた
   sudo apt-get install  git-core    すでに最新版ですと怒られた
   sudo apt-get install python-setuptools
       sudo apt-get install python3-setuptools これがうまく実行できない
   ときは
    https;//pypi.python.org/pypi/setupypplsからpypa-setuptoos-xxxx
        pypa-setuptools-xxxにディレクトリを移動して
   sudo python3 setup.py install を実行
 


2.I2Cの設定
 ・設定 >> Raspberryの設定 >> 設定画面 
  I2Cを有効にする

 ・python-smbusモジュールのインストール
  sudo apt-get install python3-sumbus     #python3
       sudo apt-get install python-smbus         #python2

 ・libi2c-devドライバーのインストール(不必要かもしれないが念の為)
  sudo apt-get install libi2c-dev
  

 ・I2Cツールのインストール
  sudo spt-get intall i2c-tools
      (i2cdetect -y 1でアドレスの確認) 
   (i2cget -y 1 0x?? b) アドレスで読み出し
   (i2cget -y 1 0x?? 0x?? b) アドレスとレジスタ番号で読出
 
    ・ちょっと上級でリピートコンディション
  信号が1バイトごとにスタートエンドに挟まれて送られるが
  機種によってはリピートコンデュションを使って連続送受信モードのものもある
 
  その場合は、設定しないとレジスタ0番号しか読まない
  /etc/modprobe.d/i2c.confを作成
       options i2c_bcm2708 combined-1を記入 reboot
  ただし複数の機器を接続しているときは要注意

3.SPIの設定
 ・Menu>>設定>>RaspberryPiの設定>>インターフェース
  SPIを有効
 ・python-spidev のインストール
  sudo apt-get install python-spidev すでに最新版ですと怒られた
  sudo apt-get install python3-spidev  すでに最新版ですと怒られた

4.wiringpiのインストール
   先にdevとsetuotoolは必須

   sudo pip install wiringpi
   sudo pip3 install wiringpi
   sudo pip install wiringpi2
   sudo pip3 install wiringpi2

  古い機種なら
 sudo apt-get install  git-core を実行済みとして
 
git clone https://github.com/neuralassembly/WiringPi2-Python.git
 ディレクトリをWiringPi2-Pythonにチェンジして
 sudo python setup.py install

5.機種別ライブラリのインストール
 gitでメーカー等で公開されているソースをコピー
 コピーしたディレクトリにチェンジして
   sudo python setup.py installで
 を実行


6.ブラウザ
 sudo apt-get install iceweasel iceweasel-l10n-ja

でOK


       

拍手


BME280をI2Cモードで使ってみる




google先生で検索すると山のようにでてくるので、

スイッチサイエンスのBME280を参照してみる
https://github.com/SWITCHSCIENCE/BME280

BME280について詳しい日本語の説明も記載されているのでありがたく
参照させていただく。

まずは
1.RaspberyPiをI2Cに有効に、

2.python-sumbusパッケージをインストール
 sudo apt-get install python3-smbus
 sudo apt-get install pyhton-smbus

3.I2Cツールをインストール
 sudo apt-get install i2c-tools

4.結線
1--VDD
2--GND
3--X
4--SDA(3)
5--GND
6--SCL(5)

5.I2Cアドレスの確認
 sudo I2Cdetect -y 1
   00X74

6.先のスイッチサイエンスのソースをダウンロードして実行
 print文に ()を忘れずに

 BME280test2.py

 

拍手

1.ADT7410の13bitと16bitの切り替え

 コンフィギュレーション・レジスタを1にする
 ADT7410のコンフィグレジスタは0X03

 上位1ビットが1なら16ビット 0なら13ビット

 i2c.write_byte_data(adt7410_addr,0x03,0x00) が13ビット
 i2c.write_byte_data(adt7410_addr,0x03,0x80) が16ビット

2.分解能が
 13ビットなら1/16
  if (data>4096):
         data = data - 8192
    data = data /16.0
 
   16ビットなら
  if (data>= 32768):     マイナスフラグが上位1ビットのため
       data= temp - 65536
    data = data/128.0

3.13ビットのデータソース

#i2c adt7410
import time
import smbus

#make new
i2c = smbus.SMBus(1)

#i2caddr
adt7410_addr = 0x48
register7410 = 0x00
#rejista03 16bit
i2c.write_byte_data(adt7410_addr,0x03,0x00)

while True:
     #rejisuta 0x00 0x01 2byte
 
 
     datas = i2c.read_i2c_block_data(adt7410_addr,register7410,2)
     data = datas[0] << 8
     data = data | datas[1]
     data = data >> 3
     if (data>4096):
         data = data - 8192
     data = data /16.0
     print(data )

     time.sleep(1)

4.16ビットの時のデータソース
#i2c adt7410
import time
import smbus

#make new
i2c = smbus.SMBus(1)

#i2caddr
adt7410_addr = 0x48

#rejista03 16bit
i2c.write_byte_data(adt7410_addr,0x03,0x80)

while True:
    #rejisuta 0x00 0x01 2byte
    t_data = i2c.read_i2c_block_data(adt7410_addr,0x00,2)
    temp = t_data[0] << 8
    temp = temp | t_data[1]

    if (temp >= 32768):
        temp = temp - 65536

    now_temp = temp /128.0

    print(now_temp)

    time.sleep(1)
   
温度であまり意味がないが、、、


拍手

カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
フリーエリア
最新CM
[03/10 DORA]
最新TB
プロフィール
HN:
dorabu
性別:
非公開
バーコード
ブログ内検索
P R
Copyright © ドラブーのアンドロイドとIoTなブログ All rights reserved. / Template by 四季. / Material by てんせん.

忍者ブログ [PR]