他の様々な植物に触れてみる
実際にプログラムを考える。
前年度応用演習で作成したコードから発展して考える。
import spidev
import time
import requests
# LINE Notifyのアクセストークン
line_notify_api = "<https://notify-api.line.me/api/notify>"
line_notify_token = "rYAHE3W3NuhWd8uV49jPO5NqtJT27RGechcKb2XPQML"
# SPI通信を行うための準備
spi = spidev.SpiDev() # SPI通信を行うオブジェクトを取得
spi.open(0, 0) # 通信を開始
spi.max_speed_hz = 5000 # Debianのバージョンが9.1の場合は必要
# 初期状態を保存
previous_state = None
def read_analog_data():
# SPIで値を読む
resp = spi.xfer2([0x68, 0x00])
# 読んだ値を10ビットの数値に変換
value = ((resp[0] * 256) + resp[1]) & 0x3ff
return value
def send_line_notify(message):
payload = {"message": message.encode('utf-8')}
headers = {"Authorization": f"Bearer {line_notify_token}"}
requests.post(line_notify_api, headers=headers, data=payload)
try:
while True:
# CDSセンサーからアナログデータを読み取る
analog_value = read_analog_data()
print("Analog Value: {}".format(analog_value))
# アナログデータを基に鍵が置かれたか取られたかを判断
if analog_value > 20:
current_state = "HIGH"
elif analog_value <= 6:
current_state = "LOW"
else:
current_state = "MID"
if current_state != previous_state:
if current_state == "LOW":
print("鍵が置かれました。")
send_line_notify("鍵が置かれました。")
elif current_state == "HIGH":
print("鍵が取られました。")
send_line_notify("鍵が取られました.")
previous_state = current_state
time.sleep(1)
except KeyboardInterrupt:
spi.close()
LINEnotifyを使用して明るさを利用してものが取られたか撮られていないかを確認し、通知するシステム。
これを活用して湿度を感知し、通知システムを考えたい。
今回はなし

