[防水 DS18B20 传感器套件 教程_2] 陪你洗澡的洗澡喵~
我不得不承认,洗澡可以大大帮助放松。 而且我更偏爱热水浴,无论是夏天还是冬天。 但是当无法估计水温是否合适时,可能会令人烦恼。 除此之外,当我们大部分人在浴缸中享受自己时,我们都需要一个计时器。所以我决定制作这样一个BATHING COMPANION。卡通形象来自RIPNDIP。https://mc.dfrobot.com.cn/forum.php?mod=image&aid=39358&size=300x300&key=093adefddf0aea3e&nocache=yes&type=fixnonehttps://mc.dfrobot.com.cn/forum.php?mod=image&aid=39358&size=300x300&key=093adefddf0aea3e&nocache=yes&type=fixnonehttps://mc.dfrobot.com.cn/forum.php?mod=image&aid=39358&size=300x300&key=093adefddf0aea3e&nocache=yes&type=fixnone步骤1.设计和材料准备
所需物料清单:
[*]RGB LED模块 5050
[*]DFRduino Nano 3.0(兼容Arduino Nano)
[*]# LR44纽扣电池盒
[*]高品质 micro USB数据线
[*]DS18B20 防水温度传感器套件
some PMMA, and some wire
我们需要两个功能:I. 一个定时器(我总是会呆在浴室化太多时间来思考人生。。。Orz)II.温度传感器(我不想再总是做这样的动作)解决方案I. 我用arduino IDE做了一个计时器,并用LED来提醒你时间。II. 我将防水DS18B20传感器作为“猫尾”来测量温度,并用通过用LED在猫脸显示“腮红’’来告知使用者水温是否合适。
另外我们还需要一个盒子来装这些传感器
设计草图:
步骤2. 电路设计及连接 & 代码
#include <OneWire.h>
#include <RGBLED.h>
RGBLED myled = RGBLED(9,10,11);
int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2
//Temperature chip i/o
OneWire ds(DS18S20_Pin);// on digital pin 2
int ledPin = 9; // Connect LED on pin 9, or use the onboard one
int KEY = 3; // Connect Touch sensor on Digital Pin 3
void setup(){
Serial.begin(9600);
pinMode(ledPin, OUTPUT); // Set ledPin to output mode
pinMode(12, OUTPUT);
pinMode(KEY, INPUT); //Set touch sensor pin to input mode
}
void loop(){
float temperature = getTemp();
Serial.println(temperature);
delay(100); //just here to slow down the output so it is easier to read
if(temperature >= 30) { //Read Touch sensor signal
digitalWrite(12, LOW);
digitalWrite(ledPin, HIGH); // if Touch sensor is HIGH, then turn on
}
else if(digitalRead(KEY)==HIGH){
delay(1800000);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
delay(20000);
}
else{
digitalWrite(ledPin, LOW); // if Touch sensor is LOW, then turn off the led
}
}
float getTemp(){
//returns the temperature from one DS18S20 in DEG Celsius
byte data;
byte addr;
if ( !ds.search(addr)) {
//no more sensors on chain, reset search
ds.reset_search();
return -1000;
}
if ( OneWire::crc8( addr, 7) != addr) {
Serial.println("CRC is not valid!");
return -1000;
}
if ( addr != 0x10 && addr != 0x28) {
Serial.print("Device is not recognized");
return -1000;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end
byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
for (int i = 0; i < 9; i++) { // we need 9 bytes
data = ds.read();
}
ds.reset_search();
byte MSB = data;
byte LSB = data;
float tempRead = ((MSB << 8) | LSB); //using two's compliment
float TemperatureSum = tempRead / 16;
return TemperatureSum;
}
步骤3. 结构设计
我希望解构尽可能简洁。因此,我模仿树莓派等MCU保护壳的做法,用激光切割亚克力制作了一个外壳。
然后用手钻打孔,用螺丝固定
步骤4.整体组装
Hint: 可以调节螺丝,以确保外壳可以收容“猫尾’’
自己尝试一下咯!!
漂亮,还能这么玩 川山甲的壳 发表于 2017-8-10 14:35
漂亮,还能这么玩
多谢,抬爱~ 视频视频{:5_121:} 本帖最后由 Frankie34 于 2017-10-22 08:05 编辑
Forgotten 发表于 2017-8-11 10:17
视频视频
_______________________________
厉害了 顶一个 所以,这个真的可以给猫咪洗澡?
页:
[1]