nara-12 が 2021年05月14日13時23分10秒 に編集
初版
タイトルの変更
ドレミの音をブザー音で天気を教えくれる
タグの変更
IoT
AI
obnizIoTコンテスト
距離センサー
メイン画像の変更
本文の変更
目次 1. はじめ 2. デモ動画 3. 部品 4. 設計図 5. ソースコード 6. プログラム ・はじめ スマホを使わず、すぐに今日の天気を知らせてくれて目が覚めるような 音が欲しいと思い、作りました。 ・デモ動画 こちらのyoutubeのURLからお願いします。 今回は青森が雨だった場合を撮りました。 https://youtu.be/qy_H-9unRXM ・部品 今回はモバイルバッテリーを使いましたが、近くにコンセントや延長コードに差しても良いです。 | 部品名称 | 個数 | |:---:|:---| | obniz board | 1個 | | cheero Canvas 3200mah モバイルバッテリー | 1個 | | ブレットボード| 1個 | | SHARP 2Y0A21 距離センサー | 1個 | | オーディオファン電子ブザー80dB タイプDC3-24V | 1個 | | uxcell ジャンプワイヤ XH2.54 40 ピンリボンワイヤー | 2個 | ・設計図 obnizボードのピン0にブザーの赤線、ピン1に黒線 距離センサーはピン7に白線、ピン8に黒線、ピン9に黄線 ![キャプションを入力できます](https://camo.elchika.com/7ed1cb16cf92a87e3983bc52e3f19a7109bd9d32/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39336238373933382d393633652d343664642d616632652d6432633633376136616538372f35653332326335362d633639622d343361312d393331642d633363623032373834376239/) ・ソースコード 距離センサーから1cmの距離に感知した時にobnizのディスプレイに今の天気の情報が表示されて、その天気によってブザーがドレミの音を鳴らす仕組みとなっています。 ```obnizのソースコード <script> $("#bploading").text("実行中"); (async function(){ var obniz, gp2y0a21yk0f, speaker; obniz = new Obniz('0944-8414'); await obniz.connectWait(); gp2y0a21yk0f = obniz.wired("GP2Y0A21YK0F",{"vcc":9, "gnd":8, "signal":7}); speaker = obniz.wired("Speaker",{"signal":0, "gnd":1}); obniz.display.print('Hello👋 ') if (await gp2y0a21yk0f.getWait() > 1 && _ai.sunny.includes( await _ai.getWeather('aomori') )) { obniz.display.clear(); obniz.display.print('今日は晴れ☺️') speaker.play(523);await ObnizUI.Util.wait(1*500);speaker.stop();; speaker.stop(); } else if (await gp2y0a21yk0f.getWait() > 1 && _ai.cloudy.includes( await _ai.getWeather('aomori') )) { obniz.display.clear(); obniz.display.print('今日は曇り😔') speaker.play(262);await ObnizUI.Util.wait(1*500);speaker.stop();; speaker.stop(); } else if (await gp2y0a21yk0f.getWait() > 1 && _ai.rain.includes( await _ai.getWeather('aomori') )) { obniz.display.clear(); obniz.display.print('今日は雨😭') speaker.play(392);await ObnizUI.Util.wait(1*500);speaker.stop();; speaker.stop(); } else if (await gp2y0a21yk0f.getWait() > 1 && _ai.snow.includes( await _ai.getWeather('aomori') )) { obniz.display.clear(); obniz.display.print('今日は雪😳') speaker.play(494);await ObnizUI.Util.wait(1*500);speaker.stop();; speaker.stop(); } })(); ``` ・プログラム ![キャプションを入力できます](https://camo.elchika.com/3caaa649094f05a48793127948e00cdad29bed85/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39336238373933382d393633652d343664642d616632652d6432633633376136616538372f35636163636138642d346638662d346533392d613631612d363439333533343333616561/)