最終発表


プレゼン資料:こちらからダウンロード
作成データ(筐体):こちらからダウンロード
動作の動画 その1(ショート動画):こちら
動作の動画 その2:
  1. import doyolab
  2. import time
  3. #シリアルポートを入力-------------------------
  4. serial_port='/dev/cu.usbmodem1201'
  5. #-------------------------------------------
  6. #Arduinoとのシリアル通信設定-------------------
  7. my_arduino = doyolab.set_serial(serial_port,9600)
  8. #-------------------------------------------
  9. #user_key、sub_idの設定---------------------
  10. #自分のユーザーkeyを書く
  11. user_key1='y6nP71kPXap6Q89ZWTr2easHWxIzxo'
  12. #subIDはどのデバイスからのデータか、どのプロジェクトのデータかなどを認識するために使います
  13. sub_id1='pc'
  14. #-------------------------------------------
  15. #while Trueは無限ループ#----------------------
  16. while True:
  17.     # Arduinoからreadlineコマンドでデータを取得し、data_from_arduinoという変数に格納
  18.     data_from_arduino=my_arduino.readline()
  19.     #stripコマンドで、data_from_arduinoの中の余計な文字を削除
  20.     #さらにintで文字で送られてきたデータをint型に変換
  21.     data=int(data_from_arduino.strip())
  22.     print(data)
  23.     # データの設定--------------------------------
  24.     datetime_data = ""
  25.     int_data = data #Arduinoから受け取った値をここでint_dataにいれる
  26.     float_data = ""
  27.     txt_data = ""
  28.     # -------------------------------------------
  29.     # データの送信---------------------------------
  30.     # user_key
  31.     # sub_id
  32.     # 日付データ(空白にしてもサーバーで自動で日付を入れてくれる):datetim_data
  33.     # 整数データ:int_data
  34.     # 実数データ(小数を含むデータ):float_data
  35.     # テキストデータ:txt_data
  36.     ret = doyolab.sendData_To_doyolabIoTserver(user_key1, sub_id1, datetime_data, int_data, float_data, txt_data)
  37.     print(ret)
  38.     # -------------------------------------------
  39. #-------------------------------------------
  40. # IoTサーバーからデータの取得----------------------------------------------------
  41.     # user_key
  42.     # sub_id
  43.     # データ数:最新のデータからいくつのデータを取得するか?下記の例では1(最新のデータのみ)
  44.     data_list = doyolab.getData_From_doyolabIoTserver(user_key1, sub_id1, 1)
  45.     # リスト形式で取得される
  46.     print(data_list)
  47.     #0番目のデータの塊の中の2番目のデータを読みたい(0から始まるので、本当は3番目)
  48.     int_data =int(data_list[0][2])
  49.     print(int_data)
  50.     # --------------------------------------------------------------
  51.     # int_dataが300より大きかったら、'1'を送信(点灯させる)、それ以外の時は'0'を送る(消灯させる)
  52.     if 950 <= int_data < 1000:
  53.         to_arduino = '1';
  54.     if 900 <= int_data < 950:
  55.         to_arduino = '2';
  56.     if 850 <= int_data < 900:
  57.         to_arduino = '3';
  58.     if 800 <= int_data < 850:
  59.             to_arduino = '4';
  60.     if 750 <= int_data < 800:
  61.             to_arduino = '5';
  62.     if 700 <= int_data < 750:
  63.             to_arduino = '6';
  64.     else:
  65.         to_arduino = '0';
  66.         # Arduinoにデータを送る
  67.     my_arduino.write(to_arduino.encode())
  68.     time.sleep(5) # 指定した秒数を待つ(msでなく秒なので、注意)  サーバーに負荷がかかるので5より小さい値は設定しないでください。(実装する際は可能な限り大きな数字にしてください)

  1. int from_pc='0';
  2. int speaker_pin = 12;
  3. const int vol_pin = 0;
  4. #include <Adafruit_NeoPixel.h>
  5. #define PIN 13 // 信号用のピンを指定
  6. #define NUMPIXELS 12 // LEDの数を指定
  7. int brightness=20;//数値を変更して明るさ変更
  8. Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
  9. void setup() {
  10.  Serial.begin(9600);
  11.  pixels.begin(); // NeoPixel出力ピンの初期化
  12.  pixels.setBrightness(brightness);
  13. }
  14. void loop() {
  15.   pixels.clear(); // すべてのLEDの色を0にセット
  16.   int val=analogRead(vol_pin);
  17.   Serial.println(val);
  18.   delay(500);
  19.   int i=0;
  20.   
  21.   if(val<1000){
  22.     tone(12,val);
  23.     }else{
  24.     noTone(12);
  25.     }
  26. if(Serial.available() > 0){
  27.  from_pc = Serial.read();
  28.  }
  29.   if (from_pc=='1'){
  30.       pixels.setPixelColor(0, pixels.Color(0,255,255));
  31.       pixels.setPixelColor(2, pixels.Color(0,255,255));
  32.       pixels.setPixelColor(4, pixels.Color(0,255,255));
  33.       pixels.setPixelColor(6, pixels.Color(0,255,255));
  34.       pixels.setPixelColor(8, pixels.Color(0,255,255));
  35.       pixels.setPixelColor(10, pixels.Color(0,255,255));
  36.       pixels.setPixelColor(12, pixels.Color(0,255,255));
  37.       pixels.show();
  38.   }else if (from_pc=='2'){
  39.       pixels.setPixelColor(0, pixels.Color(127,255,212));
  40.       pixels.setPixelColor(2, pixels.Color(127,255,212));
  41.       pixels.setPixelColor(4, pixels.Color(127,255,212));
  42.       pixels.setPixelColor(6, pixels.Color(127,255,212));
  43.       pixels.setPixelColor(8, pixels.Color(127,255,212));
  44.       pixels.setPixelColor(10, pixels.Color(127,255,212));
  45.       pixels.setPixelColor(12, pixels.Color(127,255,212));
  46.       pixels.show();
  47.   }else if (from_pc=='3'){
  48.  
  49.       pixels.setPixelColor(0, pixels.Color(0,255,127));
  50.       pixels.setPixelColor(2, pixels.Color(0,255,127));
  51.       pixels.setPixelColor(4, pixels.Color(0,255,127));
  52.       pixels.setPixelColor(6, pixels.Color(0,255,127));
  53.       pixels.setPixelColor(8, pixels.Color(0,255,127));
  54.       pixels.setPixelColor(10, pixels.Color(0,255,127));
  55.       pixels.setPixelColor(12, pixels.Color(0,255,127));
  56.       pixels.show();
  57.   }else if (from_pc=='4'){
  58.      pixels.setPixelColor(0, pixels.Color(0,128,0));
  59.       pixels.setPixelColor(2, pixels.Color(0,128,0));
  60.       pixels.setPixelColor(4, pixels.Color(0,128,0));
  61.       pixels.setPixelColor(6, pixels.Color(0,128,0));
  62.       pixels.setPixelColor(8, pixels.Color(0,128,0));
  63.       pixels.setPixelColor(10, pixels.Color(0,128,0));
  64.       pixels.setPixelColor(12, pixels.Color(0,128,0));
  65.       pixels.show();
  66.   }else if (from_pc=='5'){
  67.       pixels.setPixelColor(0, pixels.Color(240,128,128));
  68.       pixels.setPixelColor(2, pixels.Color(240,128,128));
  69.       pixels.setPixelColor(4, pixels.Color(240,128,128));
  70.       pixels.setPixelColor(6, pixels.Color(240,128,128));
  71.       pixels.setPixelColor(8, pixels.Color(240,128,128));
  72.       pixels.setPixelColor(10, pixels.Color(240,128,128));
  73.       pixels.setPixelColor(12, pixels.Color(240,128,128));
  74.       pixels.show();
  75.   }else if (from_pc=='6'){
  76.       pixels.setPixelColor(0, pixels.Color(0,0,205));
  77.       pixels.setPixelColor(2, pixels.Color(0,0,205));
  78.       pixels.setPixelColor(4, pixels.Color(0,0,205));
  79.       pixels.setPixelColor(6, pixels.Color(0,0,205));
  80.       pixels.setPixelColor(8, pixels.Color(0,0,205));
  81.       pixels.setPixelColor(10, pixels.Color(0,0,205));
  82.       pixels.setPixelColor(12, pixels.Color(0,0,205));
  83.       pixels.show();
  84.    }else {
  85.       pixels.setPixelColor(0, pixels.Color(255,255,255));
  86.       pixels.setPixelColor(2, pixels.Color(255,255,255));
  87.       pixels.setPixelColor(4, pixels.Color(255,255,255));
  88.       pixels.setPixelColor(6, pixels.Color(255,255,255));
  89.       pixels.setPixelColor(8, pixels.Color(255,255,255));
  90.       pixels.setPixelColor(10, pixels.Color(255,255,255));
  91.       pixels.setPixelColor(12, pixels.Color(255,255,255));
  92.       pixels.show();
  93.    
  94.   }
  95. }
今期、初めて電子工作・IoTに取り組んだが正直理想のクオリティまでは持っていけず悔しい。が、タイムラグはあれどサーバーを介して遠隔で機械を光らせることもできたし、音階も奏でることはできたので、少し自信になった。
それから、今期は班リーダーになったものの、なかなかメンバーを作業しやすいように・スケジュール通りに作業を進められるように良い感じにフォローできず、グループメンバーには大変申し訳なかったと思う。
それでも一緒に行動してくれた班のメンバーには感謝しかない。

前のページに戻る