//Biz
猟銃読本。諸々の返信など。
ライター研究所打ち合わせ。嶋津さんPRを行う。udemy結合。
ハチミツでの地場振興および観光関係の方との打ち合わせ。うきはの解体場に一緒に行くことになる。
python読む。
ICTデバイス制作 農業編
mkdir temperature-sensor
cd temperature-sensor
python3 -m venv .venv
source ./.venv/bin/activate
pip install CounterFit
pip install counterfit-connection
pip install counterfit-shims-grove
前回と異なる農業用のパッケージもダウンロード。
pip install counterfit-shims-seeed-python-dht
touch app.py
code .
これで仮想環境でtemperature-sensorアプリを作成できるベースが整った。
CounterFitがひらけないとvdcodeのgoliveとブラウザを行ったり来たりしていたが、ターミナルでcounterfitのコマンドを打つのを忘れていただけだった。
http://127.0.0.1:5000
無事にブラウザで開けたので湿度計・温度計を導入。
import time
from counterfit_shims_seeed_python_dht import DHT
from counterfit_connection import CounterFitConnection
CounterFitConnection.init('127.0.0.1', 5000)
sensor = DHT("11", 5)
DHTクラスというのが湿度計・温度計を制御する。
ブラウザのcounterfitアプリの温度計の値を読み取って、コンソールに値を吐き出させた。数値の変化はブラウザから付けられる。
while True:
_, temp = sensor.read()
print(f'Temperature {temp}°C')
time.sleep(10)
農業での作物の成熟に対するGDDという尺度が面白く、
コーンが成熟までに必要なGDDは800で
1日のMax温度16度 Min温度12度でコーンの成長に必ず必要なベース温度が10度とすると、
(16+14)/2-10=4が、その日に稼げたGDDとなる。残り796GDDを残りの日にちで稼いでいくという考え方になるとのこと。
Mqttを使って、サーバに取得データを送れるようにする。
以前のコードを見ながら書き換え。
import time
import json
import paho.mqtt.client as mqtt
from counterfit_shims_seeed_python_dht import DHT
from counterfit_connection import CounterFitConnection
CounterFitConnection.init('127.0.0.1', 5000)
id = ''
client_name = id + 'temperature_sensor_client'
client_telemetry_topic = id + '/telemetry'
mqtt_client = mqtt.Client(client_name)
mqtt_client.connect('test.mosquitto.org')
mqtt_client.loop_start()
print("MQTT connected!")
sensor = DHT("11", 5)
while True:
_, temp = sensor.read()
telemetry = json.dumps({'temperature' : temp})
print("Sending telemetry ", telemetry)
mqtt_client.publish(client_telemetry_topic, telemetry)
#time.sleep(5)
time.sleep(10 * 60)