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を供給するようにしましょう
これが便利だと感じる人はいなかったりして。。。
投稿者の人気記事
-
Makato-kan
さんが
2024/05/17
に
編集
をしました。
(メッセージ: 初版)
-
Makato-kan
さんが
2024/05/17
に
編集
をしました。
(メッセージ: 写真追加した)
-
Makato-kan
さんが
2024/05/17
に
編集
をしました。
-
Makato-kan
さんが
2024/05/17
に
編集
をしました。
-
Makato-kan
さんが
2024/05/17
に
編集
をしました。
ログインしてコメントを投稿する