RasberryPiを使用したIOT開発(第2回)
おまたせしました!!【RasberryPiを使用したIOT開発】第2回となります!
※第1回目をまだ読めていないという方は、こちらもご覧くださいね↓
天気データを取得し、LEDに反映する。
今回は第1回で設定したLEDの点滅に続き、電気データを取得して、その結果に応じてLEDの点灯回数を変化させます。
配線
前回と同じです。
天気データの取得
下記のコードを使用し、天気データを取得します。
今回は固定で大阪の住所を使用しますが、次回以降で現在位置のGPS情報から天気データを取得する予定です。
詳細は以下です。
1 2 3 4 5 6 7 8 9 10 |
import RPi.GPIO as GPIO from time import sleep import requests import pprint r = requests.get('http://weather.livedoor.com/forecast/webservice/json/v1?city=130010') r_data = r.json() data = r_data['forecasts'] |
LED
取得した天気によってLEDの点灯回数を変更します。
晴れ:1回
曇り:2回
雨: 3回
詳細は以下です。
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 |
# -*- coding: utf-8 -*- import RPi.GPIO as GPIO from time import sleep import requests import pprint r = requests.get('<a class="chatwork-token-url timelineLinkTrim" title="http://weather.livedoor.com/forecast/webservice/json/v1?city=130010'" href="http://weather.livedoor.com/forecast/webservice/json/v1?city=130010%27" target="_blank" rel="noopener noreferrer">http://weather.livedoor.com/forecast/webservice/json/v1?city=130010'</a>) r_data = r.json() data = r_data['forecasts'] dic = {'晴れ':1, '曇り':2, '雨':3} count_value = dic[data[0]['telop']] GPIO.setmode(GPIO.BCM) GPIO.setup(22, GPIO.OUT) while count_value > 0: GPIO.output(22, GPIO.HIGH) sleep(0.5) GPIO.output(22, GPIO.LOW) sleep(0.5) count_value = count_value-1 |
そして、これを実行することで天気データと連動して、LEDの点灯回数を変更させることができます。
#晴れのち曇りなど、細かい天気には対応できていません。。。
今回は以上となります。
ここまで読んでいただきありがとうございました。