LattePanda workshop Note : https://goo.gl/oB7jZN CAVEDU Education Email:[email protected] FENG-CHIH,HSU
LattePanda workshop Note : https://goo.gl/oB7jZN
CAVEDU Education
Email:[email protected]
FENG-CHIH,HSU
スペック(1)
• CPU: Intel Cherry Trail Z8350 Quad Core Processor
• メイン周波数: 1.44GHz (1.92GHz Burst Frequency)
• OS: Windows 10 Home Edition (アンアクティベート)
• RAM: 4GB DDR3L
• ストレージ容量: 64GB
• GPU: Intel HD Graphics, 12 EUs @200-500Mhz, single-channel memory
• USB 3.0 x 1, USB 2.0 x 2
• Wi-Fi 802.11n 2.4G
• Bluetooth 4.0
スペック(2)
• ビルトインArduinoコプロセッサ: ATmega32u4 (Arduino Leonardo) • ビデオ出力: HDMI and MIPI-DSI • オンボードタッチパネルオーバーレイコネクタ • (Onboard touch panel overlay connector) • 100Mbps イーサネット サポート • Intel(Cherry Trail)プロセッサ GPIO x 6pins • Atmega プロセッサ GPIO x 20pins • Gravity インターフェースコネクタ x 6pins • 電源: 5V@2A • ボード寸法: 88 x 70mm / 3.46 x 2.76" • パッケージ寸法: 110 x 94 x 30 mm/4.33 x 3.70 x 1.18” • 内容量: 55g • 総重量: 100g
明日の東京の天気
• 日本の温度取得のチュートリアル (JSON)
– http://weather.livedoor.com/weather_hacks/webservice
• 東京の温度のデータ取得のAPI
– http://weather.livedoor.com/forecast/webservice/json/v1?city=130010
※今回はlivedoorAPIを利用します。
JSONを扱うのに便利なwebsite
• http://jsoneditoronline.org/
JSON フォーマット
• 1. object(オブジェクト)
– EX:{collection, collection ,…}
• 2. collection(コレクション)
– EX: {name:value}
• 3. Array(配列)
– EX: [collection, collection]
• 1. エンコーディング方式:UTF-8
• 2. モジュールをインポート:
– json: 東京の温度データのフォーマット方式
– urllib:URLのレスポンスを読み取れるようにする、 urllib.urlopen(url): URLのデータを読み取る
• 4. json.loads(response.read()): JSONフォーマットをパースしてPythonのコンパイルフォーマットにする
東京の温度データを取得する
東京の温度データを取得する
• 5. data_list*‘forecasts’+[1]*‘dateLabel’++data_list*‘title’++data_list*‘forecasts’+[1]*‘telop’+を出力します。
['forecasts'][1]
['dateLabel'] =明日
東京の温度データを取得する
• 5. data_list*‘forecasts’+[1]*‘dateLabel’++data_list*‘title’++data_list*‘forecasts’+[1]*‘telop’+を出力します。
data_list*‘title'+ =東京都 東京 の天気
東京の温度データを取得する
• 5. data_list*‘forecasts’+[1]*‘dateLabel’++data_list*‘title’++data_list*‘forecasts’+[1]*‘telop’+を出力します。
['telop'] =曇り
data_list['forecasts'][1]
東京の温度データを取得する
• 6. “最高気温は”+str(data_list*‘forecasts’+[1]*‘temperature’+*‘max’+*‘celsius’])+‘°C’ と出力します。
['temperature']['max']
data_list['forecasts'][1]
['celsius']=27
(参考)Python 3.X系の場合のソースコード
#!/usr/bin/python
#-*- coding: UTF-8 -*-
import urllib.request, json
url = “http://weather.livedoor.com/forecast/webservice/json/v1?city=130010”
response = urllib.request.urlopen(url)
data_list = json.loads(response.read())
print (data_list[‘forecasts’][1][‘dateLabel’]+data_list[‘title’]+data_list[‘forecasts’][1][‘telop’])
print (“最高気温は”+str(data_list[‘forecasts’][1][‘temperature’][‘max’][‘celsius’]+’℃’))
• loop() ,…- – (1)Serial.available() – “Serial”データがまだ読めないとき Serial.available()>0
– (2) read_meg = read_meg + char(Serial.read()); – Serial.read()で、一度に1バイトのデータを読み取り、それを文字型(char型)に変換します。
– (3) read_meg.trim();
– 最初と末尾のスペースを取り除いた形の文字列を取得します。
Example_2 :天気アラート
Example_2 :天気アラート
• loop() ,…-
– (4) if (read_meg.equals("1c"))
– pin LED読み取った文字列が”1c”であれば13ピンのLEDを消灯します。
– (5) if (read_meg.equals("1o"))
– pin LEDpin LED読み取った文字列が”1o”であれば13ピンのLEDを点灯します。
Example_2 :天気アラート
• ソフトウェアを開く:IDLE(PythonGUI)を開いて下さい。
• FileOpenC:/Desktop/workshop/opendata_jp_ver2.py
Python:天気アラート
• 1. print If int(data_list['forecasts'][0]['temperature']['max']['celsius']) >30: – data_list*‘forecasts’+[0]*‘temperature’+*‘max’+*‘cels
ius’+=東京都の最高気温
• 2. 30度以上になったら – “1o”を送信し、LEDを点灯します。
– 30度以下になったら”1c”を送信し、LEDを消灯します。
(参考)Python 3.X系の場合のソースコード
#!/usr/bin/python
#-*- coding: UTF-8 -*-
import urllib.request, urllib.parse, urllib.error, json, serial
ser = serial.Serial(“COM5”, 9600) // COMportはボードによって変わります
url = “http://weather.livedoor.com/forecast/webservice/json/v1?city=130010”
response = urllib.request.urlopen(url)
data_list = json.loads(response.read())
print(data_list['forecasts'][0]['dateLabel']+data_list['title']+data_list['forecasts'][0]['telop'])
print("最高気温は"+str(data_list['forecasts'][0]['temperature']['max']['celsius']+'℃'))
if int(data_list['forecasts'][0]['temperature']['max']['celsius'])>30:
ser.write(b'1o\r')
else:
ser.write(b'1c\r')
> conda install –c anaconda pyserial=2.7
(1) C:\Program Files\Anaconda3 にアクセス権限を付ける
(2)pyserialをインストール
(3)以下のソースコードを作成して実行
(参考)実行時
> python opendata_jp_ver2.py
(4) IDLEではなくコマンドプロンプトから直接pythonコマンドで実行する
※IDLEだとpyserialを参照できないためエラーになります。
※2.X系のソースコードを3.Xに変換するときは2to3 コマンドを使うと便利です。 (ただし、pyserialについては対応されません。)