Makato-kanのアイコン画像
Makato-kan 2024年05月17日作成 (2024年05月17日更新)
製作品 製作品 閲覧数 351
Makato-kan 2024年05月17日作成 (2024年05月17日更新) 製作品 製作品 閲覧数 351

digisparkでDS18B20のID取得してエクセルに保存する

digisparkでDS18B20のID取得してエクセルに保存する

初めに

DS18B20という安価で使いやすい温度センサーがあります。
複数同時接続して使う場合はセンサーのIDを取得すると便利です。
digisparkはソフトウェアキーボードとしてPCに接続できる機能があります
そこでIDをエクセルなどに直接書き込めるようにしたもの作りました

部品表

Digispark
10kΩ抵抗
なるべく小さいポリスイッチ(ポリフューズ)
配線材料

配線

DigisparkのVCC,GND,P2を使います
DS18B20はdataとDigisparkのP2を接続します
10kΩ抵抗はポリフューズを経由してVCCとP2を接続します

プログラム

DS18B20センサーのライブラリをインストールすると使えるサンプルプログラムをベースに
接続ピンを決め打ちにして、ソフトウェアキーボードでIDを出力するようにいじりました。

search-DS18B20

// FILE: oneWireSearch.ino // AUTHOR: Rob Tillaart // VERSION: 0.1.02 // PURPOSE: scan for 1-Wire devices + code snippet generator // DATE: 2015-june-30 // URL: http://forum.arduino.cc/index.php?topic=333923 // // inspired by http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html // // Released to the public domain // // 0.1.00 initial version // 0.1.01 first published version // 0.1.02 small output changes #include "DigiKeyboard.h" #include <OneWire.h> int pin = 2; //DigisparkにDS18B20を接続したピン番号 void setup() { DigiKeyboard.update(); //digitalWrite(pin, HIGH); //このプルアップでは動作しませんでした。 DigiKeyboard.print(""); findDevices(pin); } void loop() { } uint8_t findDevices(int pin) { OneWire ow(pin); uint8_t address[8]; uint8_t count = 0; if (ow.search(address)) { do { count++; for (uint8_t i = 0; i < 8; i++) { DigiKeyboard.print("0x"); if (address[i] < 0x10) DigiKeyboard.print("0"); DigiKeyboard.print(address[i], HEX); if (i < 7) DigiKeyboard.print(","); } DigiKeyboard.println(""); } while (ow.search(address)); } return count; }

環境設定 "Arduino_IDEを使っています"

ボードマネージャー ”http://digistump.com/package_digistump_index.json” を
追加してdigisparkをインストールしますが 現在リンク切れのようで 
Unofficial list of 3rd party boards support urlsに記載のある 
"Digistump maintained: https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json" を基本設定に追加してdigisparkをインストールします。

使い方

エクセルなどを起動して文字入力可能な状態にします
 DigisparkをUSB端子に接続するとLEDが点滅し5秒後位にDS18B20のIDが表示されます。
もしもIDが途中までしか表示されない場合は→キーを何回か押すと表示されます

制作例

気付いた事

パソコンのUSB端子に差してから何らかの応答がDigisparkから無いとUSBのエラーになってしまうので
DigiKeyboard.update();の後にDigiKeyboard.print("");を実行しています。

DS18B20のVCCとGND逆に接続して電気入れると5秒くらいでDS18B20が焦げ臭くなります
危険なのでポリスイッチなどを経由してVCCを供給するようにしましょう

これが便利だと感じる人はいなかったりして。。。

1
Makato-kanのアイコン画像
屋外で温度湿度を測定し記録するので、壊れやすいと思い大量にDHT11とESP-WROOM-02を購入したのですが思いのほか壊れなかったので、何にでもDHT11をくっつけています。
ログインしてコメントを投稿する