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

sycom2600 が 2021年02月28日17時29分26秒 に編集

初版

タイトルの変更

+

IoT温度計の制作 スマートフォンApp連動型

タグの変更

+

温度計

+

ディスクリート

+

サーマルダイオード

+

ESP32

+

Arduino_IDE

メイン画像の変更

メイン画像が設定されました

本文の変更

+

製作経緯 ==== 最近突如増えましたIoT家電。スマートフォンで外出中に制御できたり、一括管理出来たり、いろいろなことが出来て便利です。しかしまだ発展途上故に足りない機能も多かったりするようで...  具体的には IoTエアコンを設置。外出時にONにしよう!とすると、そもそも今の温度が分からない...(Appに表示されない)という事があるようです。 AUTOモードにすれば勝手に指定温度まで上げてくれるそうですが、自宅の現状が分からないのは怖いですよね。 ということでスマホで家の温度が知れるのを作ってよ と製作依頼を友人より受けたので作った次第です。 仕様について ==== - 温度が分かる - そこそこ安定している - 低電力 - 低コスト - 早く欲しいみたいだったのでストック部品で作れる内容 予算はおおよそ1000円ほどで作れると思います。 部品一覧 ==== 2sc1815GR(互換可) 汎用小信号ダイオード 1N4148 x3 金属皮膜抵抗 4.6k 120 1k 5k それぞれ1本 3端子汎用コネクタx1 ↑ここまでがセンサー1つあたりの材料のため、センサーを複数稼働させる場合もっと必要です。 ↓ここからWifi ESP32 dev基板 Cp210x系Driver、及びArduino ESP用プロファイル導入済みのボード認識できるPC スマートフォン側 BlynkApp導入スマートフォン Blynkについて ==== Blynkというカスタマイズ可能なIoT向けプライベートネットワークを可能とするとにかく便利で手軽なプラットフォームの事です。 基礎英語さえできれば何とかなります。 詳しい説明は割愛しますが、今回はこのアプリケーションを用いてアプリ上で温度を見れる所までを行います。興味を持っていただけたら日本語情報も多いのでぜひオリジナル作品にもチャレンジしてみてください。 Esp32について ==== 今回は技適認証済汎用機を用いりました。 他の互換機などでも同様なのですが、書きこみ時にbootスイッチをタイミング良く押してあげなければなりません。 具体的には、プログラムを書き込む際に記載しますが、心配な場合は値は張りますが純正を購入することを推奨します。 回路について ==== センサーの方は以前自分が製作していたサーマルダイオード技術を用いた温度センサーを用いりました。このセンサーはアナログ出力のため、ADCを使用してしまうため他のアナログピンを占有してしまうため、他の物と併用する場合は汎用品のICモジュールなどをご利用ください。 今回の検知範囲は10度がら40度としました。 この温度で一番変位が大きくなるように/.tepm./で検証しながら回路設計していきます。 回路図は以下の通りです。 ![キャプションを入力できます](https://camo.elchika.com/be9d8b99b1ad98321c7919a711fc4d637ebaa7d3/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38323239323631332d336363612d343362322d393138632d3839636233653133656531632f62343161623363392d303335622d343861302d393166652d326531373531633763373331/) blynk導入 ==== 詳しくはgoogle先生に... 簡略的に書きますと まずAppを入れて開く 適当なフリーアドレスを用意して、それで登録 そして新しくプロジェクトを立ち上げるとそのアドレスにURLとか謎のコードが送られてきます。 これをプログラムに書き込み 自分が表示させたり動かしたいソフト上のデバイスを並べて データのやり取りの設定(V0のデータならinputをV0)をするだけです。 プログラム ==== コードだけ欲しい人もいると思うのでまず ```#define BLYNK_PRINT Serial #include <WiFi.h> #include <WiFiClient.h> #include <BlynkSimpleEsp32.h> char auth[] = "blynkのやつをコピペ"; //Authコード char ssid[] = "wifiのssid"; char pass[] = "wifiのpass"; const uint8_t ADC = 34; //ADC(34)を使用 void setup() { Serial.begin(115200); Blynk.begin(auth, ssid, pass); sigmaDeltaSetup(0, 312500); } void loop() { Blynk.run(); } BLYNK_READ(V1){ //アプリに値を送信 int adc = analogRead(ADC); Blynk.virtualWrite(V1, adc); Serial.printf("adc = %d\r\n", adc); } BLYNK_READ(V2){ int adc = analogRead(ADC); int val=adc/40.12; Blynk.virtualWrite(V2, val); Serial.printf("val = %d\r\n", val); } ``` これで完了です。 解説 ==== blynkで新しいプロジェクトを立ち上げた際にEmailに送られるコードをコピペします。 ```char auth[] = "blynkのやつをコピペ"; //Authコード``` これが間違っていたらネットに繋がってもはじかれます 次に自宅のwifi設定。 例ですがWifi-Ex-5Gというwifiがあり、パスワードがqwertyuiopとすると ``` char ssid[] = "Wifi-Ex-5G"; char pass[] = "qwertyuiop"; ``` といった感じです ```BLYNK_READ(V1){ //アプリに値を送信 int adc = analogRead(ADC); Blynk.virtualWrite(V1, adc); Serial.printf("adc = %d\r\n", adc); } ``` は、アプリ上への通信pin V1(バーチャルピン)を使用して送る みたいな捉え方でokです。 これをv2にすればv2対応のアプリ側スライダが動いたり...といった具合です。 詳しい使い方などは参考になる先人様のURLを張っておきますのでご参考に... 感想 ==== ![キャプションを入力できます](https://camo.elchika.com/fb825dabacd97d482a7541270cac1d461b8c3b77/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38323239323631332d336363612d343362322d393138632d3839636233653133656531632f31316632303461362d393931312d343731372d383062362d313463663563326665333635/) 稼働試験中の写真ですが、非常にシンプルな構成で組みやすく、低コストだと思います。また、WIFIを用いたスマートフォン連動というのはとても実用的で今伸びてきている技術です。 とても勉強にもなり作っている という実感が強いため楽しいのでぜひチャレンジしてみてください スマートフォン側の表示は ![キャプションを入力できます](https://camo.elchika.com/bb335a7a9c061f1d8fb39d0be55556056246cb05/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38323239323631332d336363612d343362322d393138632d3839636233653133656531632f38363365323235342d303533372d346262312d613634302d336336373366666530313964/) このように表示でき安定しています。また、公正も容易です。 ![キャプションを入力できます](https://camo.elchika.com/a84f1383fe651e3cd508bdcc2ba50554334514ff/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38323239323631332d336363612d343362322d393138632d3839636233653133656531632f32633536636564362d306465352d343366342d393364392d663562623639633838643332/) 参考文献 ==== セットアップまで https://deviceplus.jp/hobby/entry_069/ deviceplus.jp様 セットアップ後表示設定など http://blog.livedoor.jp/victory7com/archives/48487711.html victory7com様 以上です。