編集履歴一覧に戻る
nara-12のアイコン画像

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/)