博舍

基于Arduino UNO板的人体红外报警实验 基于Arduino的智能浇水系统

基于Arduino UNO板的人体红外报警实验

一、设备

ArduinoUNO开发板,HC-SR501传感器,蜂鸣报警器

二、蜂鸣器工作原理

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

实物图片(正反面)

实物图片(自带接线端子)

VCC-----------3.3V-5V

I/O-----------开发板pin

GND-----------开发板GND

蜂鸣器工作原理图

 三、相关代码

#defineHWPin2//宏定义一个2号口引脚“Pin”#defineBuzzer3//定义蜂鸣器3号引脚voidAlarm()//蜂鸣器发出警报{for(inti=0;i

使用Arduino构建植物浇水系统

 

在本教程中,我们将学习如何制作植物浇水系统

如果一切正常,使用湿度传感器、水泵并闪烁绿色LED以及OLED显示器和Visuino。

第1步:您需要什么ArduinoUNO(或任何其他Arduino)在这里获取土壤湿度传感器模块,在这里获取跳线面包板在这里获取OLED显示屏在这里获取水泵在这里获取继电器在这里获取1X红色LED,1X绿色LED在此处获取Visuino程序:下载Visuino第2步:电路 将OLED显示引脚[VCC]连接到Arduino引脚[5V]将OLED显示引脚[GND]连接到Arduino引脚[GND]将OLED显示引脚[SDA]连接到Arduino引脚[SDA]将OLED显示引脚[SCL]连接到Arduino引脚[SCL]将Arduino5V连接到压电蜂鸣器模块引脚VCC将ArduinoGND连接到绿色LED负极引脚将ArduinoGND连接到红色LED负极引脚将Arduino数字引脚3连接到绿色LED负极引脚将Arduino数字引脚2连接到红色LED负极引脚将Arduino5V连接到湿度传感器模块引脚VCC将ArduinoGND连接到湿度传感器模块引脚GND将Arduino模拟引脚0连接到湿度传感器模块引脚A0将继电器VCC引脚(+)连接到Arduino5V引脚将继电器GND引脚(-)连接到ArduinoGND引脚将继电器信号引脚(S)连接到Arduino数字引脚10将电源12V(+)连接到泵红线(+)将电源12V(-)连接到继电器引脚(com)将泵黑线(-)连接到继电器引脚(NO)第3步:启动Visuino,并选择ArduinoUNO板类型    1/2 

要开始对Arduino进行编程,您需要从此处安装ArduinoIDE:https://www.arduino.cc/。

请注意,ArduinoIDE1.6.6中存在一些严重错误。确保您安装的是1.6.7或更高版本,否则本教程将无法运行!如果您尚未按照本教程中的步骤设置ArduinoIDE以对ArduinoUNO进行编程!Visuino:https://www.visuino.eu也需要安装。启动Visuino,如第一张图所示点击Visuino中Arduino组件(图1)上的“工具”按钮出现对话框时,选择“ArduinoUNO”,如图2所示

第4步:在Visuino中添加和设置组件    1/6 

添加“OLED显示”组件

添加2X“比较模拟值”组件

双击DisplayOLED1并在元素窗口中将文本字段拖到左侧,然后在属性窗口中将大小设置为3

关闭元素窗口

选择CompareValue1并在属性窗口中将“比较类型”设置为ctBiggerOrEqual并将值设置为0.7选择CompareValue2并在属性窗口中将“比较类型”设置为ctSmaller并将值设置为0.7第5步:在VisuinoConnect组件中    1/3 将Arduino模拟引脚0连接到CompareValue1引脚输入、CompareValue2引脚输入、DisplayOLED1>TextField1引脚输入将CompareValue1引脚输出连接到Arduino数字引脚2将CompareValue1引脚输出连接到Arduino数字引脚10将CompareValue2引脚输出连接到Arduino数字引脚3将DisplayOLED1引脚I2C输出连接到Arduino板I2C引脚输入第6步:生成、编译和上传Arduino代码 

在Visuino中,在底部单击“构建”选项卡,确保选择了正确的端口,然后单击“编译/构建和上传”按钮。

第7步:播放

如果给ArduinoUNO模块供电,LED应该会闪烁(红色水不够,绿色足够水)并且OLED显示屏会显示湿度,如果水位过低,泵将开始加水。

恭喜!您已经使用Visuino完成了您的项目。还附上了我为本教程创建的Visuino项目,您可以下载并在Visuino中打开它:https://www.visuino.eu

Visuino使用Arduino构建入侵检测系统

在本教程中,我们将使用连接到ArduinoUNO和Visuino的XYC-WB-DC微波雷达运动传感器来检测半径约5m的任何运动,包括薄壁。

第1步:您需要什么ArduinoUNO(或任何其他Arduino)XYC-WB-DC5.8GHz微波雷达运动传感器跳线OLED显示屏(可选)引领Visuino程序:下载Visuino第2步:电路

引领:

将LED正极引脚连接到Arduino数字引脚[13]将LED负极引脚连接到Arduino负极引脚[GND]

XYC-WB-DC传感器:

将XYC-WB-DC引脚[O]连接到Arduino数字引脚[7]将XYC-WB-DC引脚[-]连接到Arduino负极引脚[GND]将XYC-WB-DC引脚[+]连接到Arduino正极引脚[3.3V]

OLED显示屏:

将OLED引脚[SDA]连接到Arduino引脚[SDA]将OLED引脚[SCL]连接到Arduino引脚[SCL]将OLED引脚[VCC]连接到Arduino正极引脚[5v]将OLED引脚[GND]连接到Arduino负极引脚[GND]第3步:

您需要做的就是拖放组件并将它们连接在一起。Visuino将为您创建工作代码,因此您不必浪费时间创建代码。它将快速轻松地为您完成所有艰苦的工作!Visuino非常适合各种项目,您可以轻松构建复杂的项目!

下载最新强大的Visuino软件

第4步:启动Visuino,并选择ArduinoUNOBoardType    1/2 

要开始对Arduino进行编程,您需要从此处安装ArduinoIDE:http://www.arduino.cc/。

请注意,ArduinoIDE1.6.6中存在一些严重错误。确保您安装的是1.6.7或更高版本,否则本教程将无法运行!如果您尚未按照本教程中的步骤设置ArduinoIDE以对ArduinoUNO进行编程!Visuino:https://www.visuino.eu也需要安装。启动Visuino,如第一张图所示点击Visuino中Arduino组件(图1)上的“工具”按钮出现对话框时,选择“ArduinoUNO”,如图2所示

第5步:在Visuino中添加组件    1/5 添加OLED“SSD1306/SH1106OLEDDisplay(I2C)”组件并双击,在“Elements”对话框中:将“填充屏幕”元素拖到左侧并在属性窗口中设置颜色“tmcBlack”将“文本字段”元素拖到左侧并在属性窗口中设置大小:“1”,文本:“检测到移动”添加“延迟”组件并在属性窗口中设置间隔:“2000000”第6步:在VisuinoConnect组件中 将Arduino数字输出引脚[7]连接到Arduino数字引脚[13]将Arduino数字输出引脚[7]连接到“DisplayOled1”组件>绘制Text1引脚[时钟]将Arduino数字输出引脚[7]连接到“Delay1”组件引脚[开始]将“Delay1”组件引脚[Out]连接到“DisplayOled1”组件>绘制Screen1引脚[Clock]将“DisplayOLED1”引脚[Out]连接到ArduinoI2C引脚[In]第7步:生成、编译和上传Arduino代码    1/2 

在Visuino中,按F9或单击图1所示的按钮生成Arduino代码,然后打开ArduinoIDE

在ArduinoIDE中,点击Upload按钮,编译并上传代码(图2)

第8步:播放

如果您为ArduinoUNO模块供电,显示屏将开始显示“检测到运动”,并且在雷达传感器周围+-5m半径内检测到的每个运动都会有一个LED亮起。

恭喜!您已经使用Visuino完成了您的项目。还附上了我为本教程创建的Visuino项目。您可以在Visuino中下载并打开它:https://www.visuino.eu

基于STM32的智能温室大棚

本文将具体说明植物试验基地温室大棚监控系统设计开发详情和流程,该系统可实现以下这些功能:

    本系统设计主要有两大方向,一为自动操控界面,系统自动监测环境并根据监测到的参数执行相应的操作;二为人为手动控制,人为的监测环境并操控功能的打开。

    本系统设计带有OLED页面操作,操作方式为按键操作。系统搭建有记忆模块AT24C02,存储参数阈值(如温湿度、土壤湿度等),人为改变阈值,可实现监控不同植物的生长环境,并因为是将环境参数阈值存储在记忆模块,所以可实现掉电,参数改变仍保留的功能。

下面将简单介绍系统实现的某个功能,就不一一列举了。

一、系统自动控制

OLED显示屏上显示系统监测到的土壤含水量、日光强度、CO₂浓度、空气温度、空气湿度等重要信息;该系统设置有温湿度阀值、二氧化碳浓度阀值、土壤湿度阈值,阀值超标蜂鸣器报警提示;温湿度度阀值和二氧化碳阀值超标开启风扇降温通风,土壤湿度过低开启水泵浇水,光照强度低于阀值开启补光灯;系统通过WIFI连接网络,手机远程查看系统数据,并且可通过机智云APP控制开关风扇、灯光、水泵。

                                系统自动监测页面                              

 二、人为监控页面

人为监控操作页面

第一个图标是监控空气温湿度、第二个为监控土壤湿度、第三个为光照强度、第四个为二氧化碳浓度、第五个为阈值设计、第六个为WiFi联网

 

人为查看光照强度

 使用按键选择查看光照强度,并且通过按键2进入补光模式

 

         补光模式(二档)

联网模块---通过esp8266与机智云服务段建立连接

机智云操控页面

功能的部分代码

 

 获取光照强度、土壤湿度:

​#include"adc.h"/***********************函数名:ADC1_Init函数功能:模数转换初始化形参:void返回值:void函数说明:光敏电阻---PA5--ADC12_IN5土壤湿度传感器--PA4---ADC12_IN4************************/voidADC1_Init(void){GPIO_InitTypeDefGPIO_InitStructure;ADC_InitTypeDefADC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//使能ADC1GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);ADC_DeInit(ADC1);ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//连续转化模式设置ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//数据左对齐ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//软件触发ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//独立模式ADC_InitStructure.ADC_NbrOfChannel=1;//通道数ADC_InitStructure.ADC_ScanConvMode=DISABLE;//扫描模式禁止设置ADC_Init(ADC1,&ADC_InitStructure);//ADC_TempSensorVrefintCmd(ENABLE);//开启内部温度传感器ADC_Cmd(ADC1,ENABLE);//使能指定ADC外设ADC_ResetCalibration(ADC1);//使能复位校准while(ADC_GetResetCalibrationStatus(ADC1));//等待复位校准结束ADC_StartCalibration(ADC1);//开启AD校准ADC_GetCalibrationStatus(ADC1);//等待AD校准结束}/***********************函数名:get_Adc_Value函数功能:换取采样值形参:u8ch返回值:u16函数说明:ch转换通道ADC_SampleTime_239Cycles5采样时间值采样时间选择最长1采样通道数量光敏电阻---PA5--ADC12_IN5土壤湿度传感器--PA4---ADC12_IN4************************/u16get_Adc_Value(u8ch)//通道一采样值{ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);//ADC匹配通道ADC_SoftwareStartConvCmd(ADC1,ENABLE);//ADC软件转换启动while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待采样结束returnADC_GetConversionValue(ADC1);//放回采样值}/***********************函数名:Get_light_Value函数功能:光照强度形参:void返回值:void函数说明:光敏电阻---PA5--ADC12_IN5---0x05土壤湿度传感器--PA4---ADC12_IN4--0x04************************/u8light_value,soil_value;u8buf3[20];u8buf4[20];u8light_flag=0;u8soil_flag=0;voidGet_light_Value(void){light_value=0;u16Rec=0;Rec=get_Adc_Value(0x05);//获取采样数值light_value=100-((100*Rec)/4096);//光照强度百分比sprintf((char*)buf3,"光照强度:%d%%LX",light_value);if(light_flag==0){Oled_ShowAll(4,0,buf3);//显示中英字符串}if(light_flag==1){Oled_ShowAll(6,0,buf3);//显示中英字符串}}/***********************函数名:Get_soil_Value函数功能:土壤湿度形参:void返回值:void函数说明:光敏电阻---PA5--ADC12_IN5---0x05土壤湿度传感器--PA4---ADC12_IN4--0x04************************/voidGet_soil_Value(void){soil_value=0;u16Rec=0;Rec=get_Adc_Value(0x04);//获取土壤采样数值soil_value=100-((100*Rec)/4096);//土壤强度百分比if(soil_flag==0){sprintf((char*)buf4,"土壤湿度:%d%%",soil_value);Oled_ShowAll(4,0,buf4);//显示中英字符串}if(soil_flag==1){sprintf((char*)buf4,"soil:%d%%",soil_value);Oled_ShowAll(4,64,buf4);//显示中英字符串}}​

如想获取整个代码的同学,可添加本人QQ1972218606。

本人可接单片机系统设计,学生价,有兴趣的可联系本人。

如本文章所设计的系统,淘宝上设计做出实物至少要8百左右,本人则需要一半的价格便可,如果只需要代码则更便宜,可自行上淘宝查看,欢迎有兴趣的朋友联系。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇