Arduinoの配線
Lチカの配線を作ってください。
ブレッドボードを使わずに直接LEDをArduinoに挿しても構いません。
Arduinoのプログラム
int val=0;
int from_pc='0';
void setup() {
pinMode(13,OUTPUT);
Serial.begin(9600);
}
void loop() {
if(Serial.available() > 0){
from_pc = Serial.read();
}
//1をON、0をOFFと考える
//1が送られてきたらLEDを点灯、0だったら消灯
if (from_pc=='1'){
digitalWrite(13,HIGH);
}else if (from_pc=='0'){
digitalWrite(13,LOW);
}
}
pythonフォルダをダウンロード&解凍
ここからdfLinkのpythonファイルをダウンロードしてください。
ダウンロードしたzipファイルを解凍後、フォルダ名を「iot_test」など適切な名前に変更しましょう。
※Windowsの注意
Windowsの場合はzipファイルをダブルクリックして、中にあるdfLink_sampleというフォルダだけをデスクトップなどに移動させてから名前の変更を行ってください。
VSCodeでフォルダを開く
フォルダごとVSCodeで開きましょう。
開き方がわかならない方は
ブートキャンプでやったVSCodeでフォルダを開く動画を参考にしてください。
Pythonのプログラム
main.pyに下記のプログラムをコピペします。
import dfLink
import time
#端末設定---------------------
#端末keyを指定してください。
pkey=''
#-------------------------------------------
#シリアルポートを入力-------------------------
#serial_serch.pyでシリアルポートを検索してください
serial_port=''
#-------------------------------------------
#Arduinoとのシリアル通信設定-------------------
my_arduino = dfLink.set_serial(serial_port,9600)
#-------------------------------------------
# --------------------------------------------------------------
while True:
# IoTサーバーからデータの取得----------------------------------------------------
data_list = dfLink.getData_From_dfLink(pkey=pkey)
# リスト形式で取得される
print(data_list)
# --------------------------------------------------------------
#最初データ(0番目)の塊の中の2番目のデータを読みたい(0から始まるので、本当は3番目)
try:
int_data =int(data_list[0][2])
print(int_data)
# int_dataが1だったら、'1'を送信(点灯させる)、それ以外の時は'0'を送る(消灯させる)
if int_data==1:
to_arduino = '1';
else:
to_arduino = '0';
#Arduinoにデータを送る
my_arduino.write(to_arduino.encode())
except:
print("データなし")
time.sleep(1)#指定した秒数を待つ(msでなく秒なので、注意)
端末keyの入力
プログラム中の端末keyには、グループ1の人たちがdfLinkで作成した端末keyを入力します。(絶対に間違えるので、コピペしましょう。)
こんな感じです。
#端末keyを指定してください。
pkey='bbbbbbbbbbbbbbbbbbbb'
serial_serch.pyでシリアルポートを検索
- serial_serch.pyを実行し、Arduinoと繋がっているシリアルポートの名前を調べまます。
- 複数表示された場合などはArduino IDEからどのシリアルポートを使っているかしらべて、そのシリアルポート名をコピーします。windowsの場合、COM3などCOM数字の表示になっています。
main.pyを変更
3-5でコピペしたシリアルポートをmain.pyの中のserial_portという変数にコピーしたシリアルポート名を代入します。
例(macの場合):名前はmacでも各々異なります。
serial_port='/dev/tty.usbmodem14301'
実行
main.pyを実行しましょう。(データがありません)とでていればOKです。
エラーがでたら、インタープリターを設定しなおしてください。
動画:インタープリターの設定