Article Outline
Python mysql example 'digital temperature sensor for api'
Modules used in program:
import urllib.request
import struct
import os
import time
import wiringpi
python digital temperature sensor for api
Python mysql example: digital temperature sensor for api
# 準備
# $ sudo apt-get install libi2c-dev
# $ sudo sh -c 'echo "options i2c_bcm2708 combined=1" >> /etc/modprobe.d/i2c.conf'
# GPIOを制御するライブラリ
import wiringpi
# タイマーのライブラリ
import time
# I2Cデバイスからの読み取りに必要なライブラリを呼び出す
import os
import struct
# URLアクセス
import urllib.request
# I2Cのインスタンスを作成
wiringpi.wiringPiSetup()
i2c = wiringpi.I2C()
# I2Cの設定
# 通信する機器のI2Cアドレスを指定
temperture_dev = i2c.setup(0x48)
# 温度を16ビットのデータ取得
# その他めレジスタ0x03に設定
i2c.writeReg8(temperture_dev, 0x03, 0x80)
while True:
# 温度センサーの2バイト分を読み取る
temperture_data = struct.unpack('2B', os.read(temperture_dev, 2))
# 値が2バイトずつ分かれるので1つにまとめる
temperture = ( ( temperture_data[0] << 8 ) + temperture_data[1] )
# 負の値の場合は数値を変換
if ( temperture_data[0] >= 0x80 ):
temperture = temperture - 65536
# 取得した値を128で割って温度を算出
temperture = temperture / 128
# 温度表示
print(( "温度 " , temperture , "C" ))
response = urllib.request.urlopen('http://172.17.0.4:8080/input_temperature?server_id=1&temperature=' + str(temperture) + '&user_id=1')
data = response.read()
print(( "サーバレスポンス : ", data ))
# 1分ごと
time.sleep(60)
Python links
- Learn Python: https://pythonbasics.org/
- Python Tutorial: https://pythonprogramminglanguage.com