sycom2600のアイコン画像
sycom2600 2021年02月28日作成 (2021年02月28日更新)
製作品 製作品 閲覧数 2321
sycom2600 2021年02月28日作成 (2021年02月28日更新) 製作品 製作品 閲覧数 2321

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

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

製作経緯

最近突如増えました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./で検証しながら回路設計していきます。
回路図は以下の通りです。
キャプションを入力できます

blynk導入

詳しくはgoogle先生に...
簡略的に書きますと
まずAppを入れて開く

適当なフリーアドレスを用意して、それで登録

そして新しくプロジェクトを立ち上げるとそのアドレスにURLとか謎のコードが送られてきます。
これをプログラムに書き込み
自分が表示させたり動かしたいソフト上のデバイスを並べて
データのやり取りの設定(V0のデータならinputをV0)をするだけです。

プログラム

コードだけ欲しい人もいると思うのでまず

#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";

といった感じです

//アプリに値を送信
  int adc = analogRead(ADC);
  Blynk.virtualWrite(V1, adc);
 
  Serial.printf("adc = %d\r\n", adc);
}

は、アプリ上への通信pin V1(バーチャルピン)を使用して送る
みたいな捉え方でokです。
これをv2にすればv2対応のアプリ側スライダが動いたり...といった具合です。
詳しい使い方などは参考になる先人様のURLを張っておきますのでご参考に...

感想

キャプションを入力できます
稼働試験中の写真ですが、非常にシンプルな構成で組みやすく、低コストだと思います。また、WIFIを用いたスマートフォン連動というのはとても実用的で今伸びてきている技術です。
とても勉強にもなり作っている という実感が強いため楽しいのでぜひチャレンジしてみてください
スマートフォン側の表示は

キャプションを入力できます
このように表示でき安定しています。また、公正も容易です。
キャプションを入力できます

参考文献

セットアップまで
https://deviceplus.jp/hobby/entry_069/
deviceplus.jp様
セットアップ後表示設定など
http://blog.livedoor.jp/victory7com/archives/48487711.html
victory7com様

以上です。

sycom2600のアイコン画像
こんにちは。電子工作をまったりやっている機械科高校生です。作るものは完全に私利私欲を満たすもの又は思い付きな作品が多いと思います。作品とも言いにくいものばかりですが独学なので寛容な心で見ていただけたら幸いです(笑) 多趣味過ぎて電子工作はペース遅めですが、ながーくやっていきたいと考えています。
ログインしてコメントを投稿する