首页资讯科技 多语言实现Arduino“高温监控仪”

多语言实现Arduino“高温监控仪”

牟晓东借助于温度传感器、风扇模块和几个LED灯,我们利用Arduino开发制作一个“高温监控仪”:当环境温度处于较适宜的温度范围时(比如28℃以下),绿色LED灯亮,风扇模块无动作;当温度有小幅度升高时(28℃以上、30℃以下),黄色LED…

牟东

在温度传感器、风扇模块和几个LED灯的帮助下,我们利用Arduino开发制造了一个“高温监控器”:当环境温度在一个合适的温度范围内(比如28℃以下),绿色LED亮起,风扇模块不动作;当温度稍有上升(28℃以上,30℃以下)时,黄色LED灯发出预警,风扇模块低速转动,使风降温,直至恢复正常;当温度较高时(30℃以上),红色LED灯发光报警,风扇模块高速旋转,快速冷却风...在整个过程中,屏幕每3秒钟显示一次实时检测的温度数据。1.实验设备和电路连接

实验器材:Arduino UNO主板一个,DHT11温湿度传感器一个,风扇模块一个,绿色、黄色和红色LED灯各一支,面包板一块,各色杜邦线若干;对照设计好的电路接线图进行器材连接(如图1)。

实验设备:Arduino UNO主板一块,DHT11温湿度传感器一块,风扇模块一块,绿黄红LED灯一块,面包板一块,各种颜色的杜邦线若干根;根据设计的电路接线图连接设备(如图1所示)。

首先,将Arduino的5V和GND通过杜邦线连接至面包板一侧的红色和蓝色线槽;接着,将绿色、黄色和红色LED灯的短腿(负极)均插接至蓝色线槽,长腿(正极)则分别插接至a列某行插孔中,再通过同种颜色的杜邦线将正极与Arduino的11号、12号和13号数字引脚相连;然后,将温度传感器和风扇模块的VCC端和GND端均通过杜邦线与面包板的红色、蓝色线槽连接,二者的信号端则分别插接至Arduino的2号和3号数字引脚;最后,通过数据线将Arduino与计算机USB接口连接,完成电路连接(如图2)。

首先将Arduino的5V和GND通过杜邦线连接到面包板侧的红蓝线槽;然后将绿色、黄色、红色LED灯的短腿(负极)插入蓝色线槽,长腿(正极)分别插入A列的一排插孔,然后正极通过同色的杜邦线与Arduino的11号、12号、13号数字引脚连接;然后,温度传感器和风扇模块的VCC端子和GND端子通过杜邦线缆与面包板的红蓝线槽连接,它们的信号端子分别插入Arduino的2号和3号数字引脚;最后通过数据线将Arduino与电脑的USB接口连接,完成电路连接(如图2)。

2.Arduino IDE代码编程实现“高温监控”

在Arduino IDE中对DHT11温湿度传感器进行编程控制的前提是要安装DHT.h库,首先依次点击菜单“项目”-“加载库”-“管理库”项,在弹出的“库管理器”中以“DHT11”为关键词进行搜索,会出现一个名为“DHT sensor library(by Adafruit)”的库,显示支持DHT11(目前最新版本为1.4.2);接着,点击“安装”按钮(如图3),在弹出的提示窗口中点击“Install all”按钮进行下载和安装;结束后返回“加载库”中查看,底部“推荐的库”中就会显示有“DHT sensor library”项,说明安装成功。

在Arduino IDE中编程控制DHT11温湿度传感器的前提是安装DHT.h库。首先依次点击菜单项“项目”-“加载库”-“管理库”,在弹出的库管理器中搜索“DHT11”,会出现一个名为“DHT传感器库(由Adafruit提供)”的库。然后,点击“安装”按钮(如图3),在弹出的提示窗口中点击“全部安装”按钮下载安装;完成后回到“加载库”查看,底部的“推荐库”会显示“DHT传感器库”项,表示安装成功。

首先导入DHT.h库:“#include ”,并且通过语句“DHT dht(2, DHT11);”对连接在2号数字引脚的温度传感器信号端进行初始化;然后定义Fan、GreenLED、YellowLED和RedLELD四个变量,对风扇模块(3号数字引脚)、绿色(11号)、黄色(12号)和红色(13号)LED灯进行引脚编号声明:“int Fan = 3;”“int GreenLED = 11;”“int YellowLED = 12;”和“int RedLED = 13;”;接下来,在setup()函数中先通过语句“Serial.begin(9600);”设置串口监视器的波特率,再通過语句“dht.begin();”开启DHT11温度传感器的数据通讯,最后通过pinMode()对风扇模块和三个LED灯的引脚模式均设置为输出模式:“pinMode(Fan, OUTPUT);”“pinMode(GreenLED, OUTPUT);”“pinMode(YellowLED, OUTPUT);”和“pinMode(RedLED, OUTPUT);”(如图4)。

首先导入DHT.h库:“#include”,传递语句“DHT dht(2,DHT 11);”初始化连接到2号数字引脚的温度传感器的信号端子;然后定义了fan、GreenLED、YellowLED、RedLELD四个变量,并声明了Fan模块(3号数字引脚)、green(11号)、yellow(12号)、red(13号)LED灯的引脚号:“int Fan = 3;”" int GreenLED = 11"" int YellowLED = 12"和“int RedLED = 13”;接下来,在setup()函数中,首先传递语句“serial . begin(9600);”设置串口监视器的波特率,然后传递语句“DHT . begin();”打开DHT11温度传感器的数据通讯,最后通过pinMode()将风扇模块和三个LED灯的pin mode设置为输出模式:“pinMode(Fan,OUTPUT);”"引脚模式(绿色,输出);""引脚模式(黄色LED,输出);"和“引脚模式(红色LED,输出);”(图4)。

在loop()函数中先定义浮点型变量Temperature,通过“float Temperature = dht.readTemperature();”语句实现对检测温度数据的读取,然后将该数据在串口监视器中输出:“Serial.print("当前温度为:");”“Serial.print(Temperature);”和“Serial.println("℃");”;接着,构建“if…else if…else…”三分支选择结构,对温度数据进行数值区间判断:如果温度在28℃以下——“if (Temperature 28.00 Temperature

注意,DHT11温湿度传感器的数据采样频率不能太高,因此通过语句“delay(3000);”来实现3秒钟的延迟;最后,关闭LED灯和风扇模式:“digitalWrite(GreenLED, LOW);”“digitalWrite(YellowLED, LOW);”“digitalWrite(RedLED, LOW);”和“analogWrite(Fan, 0);”,完成程序的编写(如图5)。

在loop()函数中,首先定义浮点变量Temperature,并传递“float Temperature = DHT . read Temperature();”语句读取检测到的温度数据,然后在串口监视器中输出数据:" Serial.print("当前温度为:");"" Serial.print(温度);"和“serial . println(“℃”);然后构造一个“if…else if…else…”的三分支选择结构,判断温度数据的数值区间:如果温度低于28℃——“if(temperature 28.00 temperature)注意DHT11温湿度传感器数据的采样频率不能太高,所以语句“delay(3000);“实现3秒钟的延迟;最后关闭LED灯和风扇模式:“digitalWrite(GreenLED,低);" " digitalWrite(黄色,低);" " digitalWrite(红色,低);”和“analogWrite(范,0);",完成编程(如图5)。

将程序保存、编译并上传到Arduino,在三种不同的环境温度下测试“高温监控器”。串口显示器会每三秒显示一次温度数据的实时检测值,同时会触发不同颜色的LED灯或风扇模块产生相应的预设“动作”。3.Python实现“高温监视器”

首先通过语句“import time”和“from pinpong.board import Board,pin,DHT11”导入time和Pinpong库的相关内容,初始化Arduino uno开发板:“Board(“uno”)。begin()";然后,DHT11温湿度传感器、风扇模块、三个LED灯的对应管脚用五句话声明,包括管脚号和输入或输出方式(注意风扇模块是PWM输出):“DHT11 = DHT11(管脚。”)“范=销(销。D3,Pin.pwm)" "绿色LED =引脚(pin.d11,引脚。OUT)" "黄色LED =引脚(pin.d12,引脚。OUT)”和“RedLED = Pin(引脚。D13,pin.out)”。

在“while True:”循环结构中,先建立变量Temperature并為其赋值:“Temperature = dht11.temp_c()”,即获取温度传感器的摄氏度数据,并且将它打印输出:“print('当前温度为: ',Temperature,'℃')”;然后再建立“if…elif…else…”三分支选择结构,对变量Temperature的数值进行判断,当检测的环境温度在28℃以下时:“if Temperature 28.00 and Temperature 在“while True:”的循环结构中,首先建立变量Temperature并赋一个值:“Temperature = dht11.temp_c()”,即获取温度传感器的温度数据并打印出来:“print('当前温度为:',温度,'℃')”;然后建立“if…elif…else…”的三分支选择结构来判断变温的值。当检测到的环境温度低于28℃时,“如果温度28.00和温度”

保存程序,按功能键F5运行,测试Arduino“高温监视器”。效果和用Arduino IDE代码编程完全一致(图6)。4.思维+图形编程实现“高温监控”

首先点击Mind+左下角的“展开”项,将Arduino Uno主控板和DHT11/22温湿度传感器加载到主界面;然后在“循环执行”中建立一个名为“temperature”的变量,赋值为“reading pin 2'DHT1' temperature (℃)”,在串口监视器中以9600的波特率输出字符串;然后建立“如果…则执行…否则…则执行…否则…”的三分支选择结构,以数值区间判断变量“温度”的值:如果小于等于28℃,则“将数字引脚11的输出设置为高电平”(绿色LED亮起);如果大于28℃且小于等于30℃,则“将数字引脚12的输出设置为高电平”(黄色LED亮),“将PWM引脚3的输出设置为127”(风扇模块中速旋转);否则(即温度高于30℃时),执行“将数字引脚13的输出设置为高电平”(红色LED亮起)和“将PWM引脚3的输出设置为255”(风扇模块高速旋转);最后,等待3秒,将三个led全部设置为低电平,关闭PWM值为0的风扇模块。

将程序保存后点击“上传到设备”项,测试Arduino“高温监控仪”,同样也会实现每隔3秒钟检测一次环境温度的功能,并且对不同的温度数据进行开关对应颜色的LED灯及风扇模块不同转速的控制,与使用代码编程实现的效果是完全一致的(如图7)。

保存程序后,点击“上传到设备”项,对Arduino“高温监控器”进行测试,同样会实现每3秒检测一次环境温度的功能,控制相应颜色的LED灯和不同温度数据下风扇模块的不同转速,与使用代码编程达到的效果完全一致(图7)。

本文来自网络,不代表管理窝立场。转载请注明出处: https://www.guanliwo.com/a/zx/26392.html
上一篇Scratch小游戏大鱼吃小鱼
下一篇 打造活力舞台,音频动态柱形图设计
管理窝

作者: 管理窝

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部