ウェアラブルデバイスを一人メーカーで作ってみよう!
#IoT #電子工作 #Wearabledevice #アルコールセンサ #LED #Arduino #seeedstudio
ついにIoT関連投稿100回目になった妄想ダイスキOKstyleです。
以前、アルコールセンサーでの検知まではやりました。パソコンで数値を見ながらでは不便なので、今回はパソコンがなくても、数値によって5段階でLEDを光らせるようにしました。
①ミニブレッドボードとLED、抵抗などなどセッティング
ミニブレッドボードを使いながら、LEDと抵抗を刺していって、こんな感じで組み立てはハンダ付けもないので、あっさりとできました!
②Arduino IDEでスケッチを作成
組み立てまでは順調にいって、1時間弱でできました。
しかし、そこからが意外と大変でした。
まずは、他の方のスケッチを参考に「これならいける!」と思ったもので書き込むものの、数値が上がってもLEDが光らない!
なぜだー!?となりながら、原因がわからず、実はその日は諦めてしまいました。
別の日に優秀なエンジニアの方に助けてもらいながらやってみました。
そしたら、原因がわかりました!アルコールセンサーの値が1023からセンサーにかかる抵抗の分を引いているので、0から数字があがっていくわけではなく、1023からカウントダウンしていっていました。
ということで、スケッチに
「 level = 1023 – sensorValue; 」の一文を追加して、0からカウントしていくようにしました。
Arduino IDE上で、検証・コンパイルして、Arduinoに書き込みました!
<Arduino IDE スケッチ>
/* アルコールチェッカ Arduino UNO 版 */ //Alcohol Sensor DAT Pin is connected to Analog Input Pin 0 (A0) #define analogInDatPin 0 int sensorValue = 0; int level=0; void setup() { // LEDの色はお好みで! pinMode(13, OUTPUT); // D13ピン・ミント色 pinMode(12, OUTPUT); // D12ピン・レモン色 pinMode(11, OUTPUT); // D11ピン・ピーチ色 pinMode(10, OUTPUT); // D10ピン・ピーチ色 pinMode(9, OUTPUT); // D9ピン・トマト色 // はじめはぜんぶ消灯 digitalWrite(13, 0); digitalWrite(12, 0); digitalWrite(11, 0); digitalWrite(10, 0); digitalWrite(9, 0); Serial.begin( 9600 ); // open the serial port at 9600 bps Serial.println( "setup done.\n" ); } void loop() { // 0~20 : 全LED消灯 if (level < 400) { digitalWrite(13, 0); digitalWrite(12, 0); digitalWrite(11, 0); digitalWrite(10, 0); digitalWrite(9, 0); } // 20~50 : ミント色点灯 if (level >= 400 and level < 500) { digitalWrite(13, 1); digitalWrite(12, 0); digitalWrite(11, 0); digitalWrite(10, 0); digitalWrite(9, 0); } // 50~70 : レモン色点灯 if (level >= 500 and level < 600) { digitalWrite(13, 0); digitalWrite(12, 1); digitalWrite(11, 0); digitalWrite(10, 0); digitalWrite(9, 0); } // 70~85 : ピーチ色点灯(1つ) if (level >= 600 and level < 700) { digitalWrite(13, 0); digitalWrite(12, 0); digitalWrite(11, 1); digitalWrite(10, 0); digitalWrite(9, 0); } // 85~100 : ピーチ色点灯(2つ) if (level >= 700 and level < 800) { digitalWrite(13, 0); digitalWrite(12, 0); digitalWrite(11, 1); digitalWrite(10, 1); digitalWrite(9, 0); } // 100~1023 : トマト色点灯…泥酔? if (level >= 800) { digitalWrite(13, 0); digitalWrite(12, 0); digitalWrite(11, 0); digitalWrite(10, 0); digitalWrite(9, 1); } sensorValue = analogRead( analogInDatPin ); // read the analog value Serial.print( "sensor test value = " ); // Disply the results in serial monitor. level = 1023 - sensorValue; Serial.println( level ); // sensorValue goes down when alcohol is detected. delay(1000); }
③動作確認してみた!
もちろん三ツ星片手に高々と〜!オリンオンビールです!
オリオンビールの缶の口にアルコールセンサーをセットして、しばらく数分待つと、、、LEDが緑色に点灯!お〜、ちゃんとセンサーの値に対して光りました!
パソコンにつないで、値も確認しました!Arduino IDE モニター数値はだんだんあがっていきます!ちなみに電池を電源にできるようにしたので、モバイル持ち歩いて動作させることもできます(^^)
ちゃんと試作①が動作してほっとしました!!次はデータ蓄積などなどステップしてきます。
今日も最後まで読んでいただき、ありがとうございましたm(_ _)m