ちょっとジャンク箱を探してみるとBME280のセンサーを発見
これはAMAZONで1000円ちょいで買える温度 湿度 大気圧のセンサーですが、昔そういえばESP8266で昔 温度や湿度を測って遊んだことを思い出しました。
これはAMAZONで1000円ちょいで買える温度 湿度 大気圧のセンサーですが、昔そういえばESP8266で昔 温度や湿度を測って遊んだことを思い出しました。
するとYAACでaprsの気象用でもサポートされていたのを発見 そこでraspbery-piでつないで簡易気象ステーションを作ってみました。aprsのサポートされている気象ステーションはいろいろあるけど昔の情報ばかりでしかも機器が高くて手が出ません。
BME280では大気圧 温度 湿度が取得できます。それにさらに安いBMP280というのがありますがこれは湿度が取得できません。ほかの雨量 風速 風向などは高価なほかの機器にお任せすることにして安価なこれだけで作ってみました。
接続もraspberry-piのI2Cに接続とお手軽です。問題はBME280自体を外に設置すればいいんだけど、とりあえずお手軽にraspberry-piに接続して室内でやってみます。ちゃんとやるのであれば外にBME280を室外に設置してください。
YAACにはWXNOW.TXTがサポートされているのでこれを取り込んでAPRSにアップロードしてみます。
とりあえずデータ取得にはIT女子のサイトを参考にさせてもらいました。ここのbme280_custom.pyをそのまま利用してデータを取得して、WXNOW.TXTに変換すればいけそうです。
bme280_custom.pyから取得できるreadData()は"1016.92,11.57,61.12"みたいな感じで取得できます。順序は 気圧 温度 湿度 みたいです。
とりあえずデータ取得にはIT女子のサイトを参考にさせてもらいました。ここのbme280_custom.pyをそのまま利用してデータを取得して、WXNOW.TXTに変換すればいけそうです。
bme280_custom.pyから取得できるreadData()は"1016.92,11.57,61.12"みたいな感じで取得できます。順序は 気圧 温度 湿度 みたいです。
WXNOW.TXTのデータフォーマットは下記です。
Feb 01 2009 12:34
272/010g006t069r010p030P020h61b10150
272/010g006t069r010p030P020h61b10150
でもって取得できないデータは(風速 風向 雨量)0を返すようにしました。python初心者で初めて作ったんですが、わりと簡単にできました。
#coding: utf-8
import bme280_custom
import datetime
import os
dir_path = '/home/master'
now = datetime.datetime.now()
now1 = now.strftime('%a %d %Y %H:%M')
wxnow = bme280_custom.readData()
wxnow2 = (wxnow.replace('.','').replace(',',''))
#華氏 摂氏変換
ondo =(wxnow[8:-9])
celsius = int(ondo)
ondo1 = (celsius * 1.8) + 32
ondo2 = (str(ondo1))
ondo3 = (ondo2[:2])
press = (wxnow[0:6])
press1 = (press.replace('.',""))
hum = str(wxnow2[-4:-2])
wxnow1 = ("000/"+"000" + "g000"+"t0"+(ondo3)+"r000"+"p000"+"P000" + "h"+(hum>
print (wxnow1)
if not os.path.exists('/home/master/data'):
os.makedirs('/home/master/data')
os.makedirs('/home/master/data')
f = open('/home/master/data/wxnow.txt','w')
f.write (str(now1+'\n'))
f.write (str(wxnow1+'\n'))
f.close()
これを実行すると、home/master/data配下に下記のwxnow.txtが作成されます。
Tue 09 2024 09:15
000/000g000t051r000p000P000h61b10169
これをcrontabで10分に一回実行すれば、10分に1回取得できます。
YAACの方はfile->config->expartmode->portsでwxnow.txtを新しいポートとして追加します。wxnow.txtファイルを指定します。あとはBEACON設定の方でReport Weatherをチェックするとサーバの方に温度 湿度 大気圧がuploadされます。
コメント