极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5231|回复: 4

基于Microduino的温度报警器

[复制链接]
发表于 2016-7-22 00:36:19 | 显示全部楼层 |阅读模式
本帖最后由 topdog 于 2016-7-22 00:53 编辑

夏天到了,上海的室内气温也很高。宝宝想开空调,但是外婆说要到30摄氏度才可以开。我就基于Microduino给她做了个温度报警器。
当室内温度超过30摄氏度的时候就播放音乐,oled上显示“开空调 ”。
主要的模块:32u4,AM2321,buzzer,oled,hub。mcookie也是这些模块。
原理介绍:
1,测温度 用AM2321把温度测量出来,用的库在 https://github.com/wangdong/AM2321
#include <AM2321.h>

void readByAM2321()
{
AM2321 am2321;
am2321.read();
float temp = am2321.temperature/10.0;
float humidity = am2321.humidity/10.0;
Serial.println(temp);
Serial.println(humidity);
}
串口输出是为了方便调试,可以注释掉。
2,oled显示用的u8glib库已经更新到1.19.1,IDE可以下载安装新版本
打开IDE,选择sketch-->include library -->manage libraries 输入u8glib,选择最新版本安装。
16.JPG
代码如下:
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);
void loop() {
u8g.firstPage();
do {
u8g.setFont(u8g_font_unifont);
u8g.drawStr( 0, 20, "temp");
u8g.setPrintPos(70, 20);
u8g.print(temp);
u8g.print(" ");
u8g.print("c");

u8g.drawStr( 0, 42, "Humidity");
u8g.setPrintPos(70,42);
u8g.print(humidity);
u8g.print(" ");
u8g.print("%");

if(temp>30)
{
u8g.drawStr( 0,63, "Open air conditioning");
}
else
if(temp<30);
{
u8g.drawStr( 0,63, "");
}
} while( u8g.nextPage() );
}
字体选择u8g_font_unifont,第一行显示温度,第二行显示湿度,第三行显示Open air conditioning,温度超过30度就显示,不超过不显示。
3,buzzer编曲

温度报警器.JPG

直接把雪绒花的简谱转换成频率和时间,在程序里就是song和noteDurations两个数组。
温度超过30度就会播放音乐,清凉的雪绒花旋律响起。当空调打开,环境温度低于30度时buzzer停止 noTone。
if(temp>30)
{
song_play();
}
else
if(temp<30);
{
noTone(buzzer_pin);
}
delay(500);

成品效果视频
代码分享到github
回复

使用道具 举报

发表于 2016-7-22 07:52:45 | 显示全部楼层
漂亮,实用,点赞。
回复 支持 反对

使用道具 举报

发表于 2016-7-22 09:14:58 | 显示全部楼层
很不错!的确,温度不高的话,尽量少开空调,而且不宜设定太低的温度,经常看到空调开16、7度,睡觉盖被子。如果把遥控的功能加上,就更好了,可以设定温度和开启空调!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-22 21:12:03 | 显示全部楼层
林定祥 发表于 2016-7-22 07:52
漂亮,实用,点赞。

谢谢指导,一起学习。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-22 21:12:21 | 显示全部楼层
164335413 发表于 2016-7-22 09:14
很不错!的确,温度不高的话,尽量少开空调,而且不宜设定太低的温度,经常看到空调开16、7度,睡觉盖被子。 ...

谢谢指导,一起学习和进步。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2020-7-5 03:34 , Processed in 0.049782 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表