用Arduino UNO R3 做一个温度湿度显示加报警的设备( 送给想学单片机不懂编程的坛友)
作为一个混迹于数码之家几年的数码爱好者,从来没玩过单片机,看到单片机的文章都像看天书,以至于看到了单片机文章都懒得点,最接近单片机的操作无非是刷个路由器固件,比如MTK系列的7620等等。一直觉得自己最多能算个电子爱好者,但是作为一个搞系统集成的,项目经常会接触一些单片机设备,虽然不需要我们去懂后台如何运作,但是总觉得要去尝试了解一下单片机。—— 可能和很多坛友一样,没接触前都会说“
我不会编程,如何玩单片机,搞不来。” 但是最近找到一款叫“
啃萝卜“的软件后觉得一切都变简单了,有点类似用中文编程,于是最近买了一套Arduino UNO R3 的板子和一些传感器,开始了我的单片机之旅,这些分享出来是想大家一起学习单片机,让自己的电子设备智能起来。
今天是周末,材料到了有几天了,都测试了一遍确认都是好的,开始了我的第一个有功能的单片机设备制作,让初次接触的坛友尽量一次实验成功,增加研究单片机的信心,本人也是第一写单片机的帖子 可能错误很多,希望大家指正。
今天要通过用一个
Arduino uno R3 板子和一个
DHT11 温湿度传感器 一个
IIC 12864 Oled显示屏,用尽量详细的步骤来制作实现下列功能电路。
用屏幕显示温度 湿度,当温度到一定的程度报警的功能,当然延伸一下可以去尝试报警的同时打开风扇降温。先看看效果吧
一:材料
Arduino uno r3 主板一块
12864 IIC 借口OLED一块
DHT11 温湿度传感器一个
杜邦线若干。
更建议的是传感器直接买一个9合1的传感器集合,插上即用增加成功率和后期扩展的方便不用到处拉线。
以上这些材料成本在40左右。
二 :软件
啃萝卜
https://www.kenrobot.com/ 现在好像投资人合技术团队有问题已经不更新了,但是无法否定它的方便性,对我们这些入门编程用它很方便,我就是用它试制成功今天这个单片机设备的。
三:连线
四:程序
如果手头已经有以上硬件的同学,按照上面的链接方式,用“啃萝卜“打开附件刷入即可工资,记得把需要的几个库文件下载好。
五:程序讲解。(看8楼)
/**
* Copyright(C), 2018-2038, KenRobot.com
* FileName: sketch_dec01h.ino
* Author: 啃萝卜
* Create: 2018/12/01
* Modify: 2018/12/01
*/
#include <DHT.h>
#include <U8glib.h>
int buzzer_0 = 5;
DHT dht11_0(4, DHT11);
U8GLIB_SSD1306_128X64 u8g_0(U8G_I2C_OPT_NONE);
void setup() {
pinMode(buzzer_0, OUTPUT);
dht11_0.begin();
Serial.begin(9600);
}
void loop() {
float A = dht11_0.readHumidity();
float b = dht11_0.readTemperature();
u8g_0.firstPage();
do {
u8g_0.setPrintPos(0, 10);
u8g_0.setFont(u8g_font_fixed_v0r);
u8g_0.print("Song Gei Shu Ma Zhi Jia");
u8g_0.setPrintPos(0, 35);
u8g_0.setFont(u8g_font_9x18);
u8g_0.print(" Wen C");
u8g_0.setPrintPos(10, 60);
u8g_0.setFont(u8g_font_9x18);
u8g_0.print("Shi %");
u8g_0.setPrintPos(55, 35);
u8g_0.setFont(u8g_font_fur20);
u8g_0.print(b);
u8g_0.setPrintPos(60, 60);
u8g_0.setFont(u8g_font_9x18);
u8g_0.print(A);
if (dht11_0.readTemperature() >= 24) {
tone(buzzer_0, 329, 200);
delay(200);
tone(buzzer_0, 261, 200);
delay(200);
}
} while (u8g_0.nextPage());
}
[ 此帖被liuwenhao在2018-12-01 20:19重新编辑 ]