通信工程毕设 单片机(stm32)远程智能宠物喂养系统 |
您所在的位置:网站首页 › 示波器探头的针断了该怎么换线 › 通信工程毕设 单片机(stm32)远程智能宠物喂养系统 |
文章目录
0 前言1 简介2 主要器件3 实现效果4 设计原理4.1 硬件部分4.2 模块介绍DHT11温湿度传感器ESP-01S WIFI模块光照传感器
4.3 软件设计
5 部分核心代码5 最后
0 前言
🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是 🚩 单片机(stm32)远程智能宠物喂养系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:3分🧿 毕设项目分享:见文末! 1 简介随着社会的发展和人民生活水平的不断提高,也有着非常多的工作压力。与人的交往也会有很多的压力,于是,越来越多的人选择养一只小宠物陪伴自己。但是目前,宠物不像人一样,可以选择搭建自己的舒适居住环境,在这种背景和情况下,做一个智能的宠物家居系统显得非常有趣和有必要。 本项目基于中科蓝讯(Bluetrum)AB32VG1开发板,结合rt-thread物联网操作系统,同时外接ESP8266模块,通过MQTT协议连接阿里云物联网平台。开发板上云后,就可以实时的上传开发板采集到的传感器数据,同时通过云平台提供的web界面设计,可以展示出数据的值,也可以通过控件来完成对设备的控制,从而实现远程监控的作用。 2 主要器件 stm32开发板rt-thread物联网操作系统ESP8266模块MQTT协议连接阿里云物联网平台B-LUX-V20光照检测模块SSD_1306 OLED模块风扇 加热片 加湿器DHT11温湿度传感器 3 实现效果
本项目采用AB32VG1开发板作为主要的控制中心,连接ESP8266模块,整体的架构如下框图所示: 1.两路I2C,主要连接OLED和光照传感器 2.两路UART,一路用于外接下载和调试,另外一路用于连接8266模块 3.GPIO控制,由于风扇,加热片,加湿器都是5V供电,所以需要利用光耦隔离输出 本模块主要用到的外设: 1.ESP8266模块 2.B-LUX-V20光照检测模块 3.SSD_1306 OLED模块 4.风扇 5.加热片 6.加湿器 7.DHT11 4.2 模块介绍 DHT11温湿度传感器简介 简介 ESP8266 系列模组是深圳市安信可科技有限公司开发的一系列基于乐鑫ESP8266的低功耗UART-WiFi芯片模组,可以方便地进行二次开发,接入云端服务,实现手机3/4G全球随时随地的控制,加速产品原型设计。 AT指令可以细分四种类型: 1.测试指令:AT+=? 该命令用于查询设置指令的参数以及取值的范围 2.查询指令:AT+? 该命令用于返回参数的当前值 3.设置指令:AT+= 该命令用于设置用户自定义的参数 4.执行指令:AT+ 该命令用于执行受模块内部程序控制的变参数不可变的功能 ESP8266的AT指令一览 简介 光敏传感器是最常见的传感器之一,它的种类繁多,主要有:光电管、光电倍增管、光敏电阻、光敏三极管、太阳能电池、红外线传感器、紫外线传感器、光纤式光电传感器、色彩传感器、CCD和CMOS图像传感器等。光传感器是目前产量最多、应用最广的传感器之一,它在自动控制和非电量电测技术中占有非常重要的地位。光敏传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测,只要将这些非电量转换为光信号的变化即可。 总结:照射光敏二极管的光强不同,通过光敏二极管的电流大小就不同,所以可以通过检测电流大小,达到检测光强的目的。利用这个电流变化,我们串接一个电阻,就可以转换成电压的变化,从而通过ADC读取电压值,判断外部光线的弱。 优点 采用灵敏型光敏电阻传感器比较器输出,信号干净,波形好,驱动能力超过15mA。配可调电位器可调节检测光线亮度工作电压3.3V-5V输出形式 :数字开关量输出(0和1)设有固定螺栓孔,方便安装原理图 本项目利用了rt-thread的进行系统控制,利用一些rt-thread的软件包进行物联网上层驱动的开发工作。并且通过利用RT-ThreadStudio加快编译开发AB32的环境,使得整体开发效率较高。 rt-thread提供了丰富的软件包可以直接使用,其系统架构也是采用了系统与应用分层的设计思想,使得开发者不用关注底层架构的具体实现细节,包括也不需要特别对riscv架构有很深刻的理解也能够快速上手。这对于嵌入式应用开发者来说非常的友好,在现在stm32涨价缺货的情况下,也能够很好的进行业务逻辑的设计。 软件的设计流程如下: 本项目主要的难点在于物联网云平台与设备的连接问题,采用MQTT连接物联网平台,目前ESP8266已经做的非常的稳定了,且在阿里云物联网平台上也提供了相关的SDK配置的教程,可以连接上自己的服务器即可。由于ESP8266只有一个半串口,UART0可以收发,UART1只有TX,所以可以将ESP8266的串口打印映射到UART1,而将UART0作为与单片机通信的协议串口。这样就能够解决单片机与模块之间的通信问题,接下来就是自定义协议,其通信协议的制定按照协议框架即可。 而在云端配置web时,阿里云平台也可以利用阿里云IoT Studio进行控制和显示界面设计,其直接可以调用内部接口,将数据进行控制和显示,非常的方便。 而单片机则主要负责业务处理、协议解析、传感器数据采集。在进行程序设计的时候,可以按照posix API接口进行设计,最后各种模块之间各种独立工作,完成整个项目设计。 5 部分核心代码 /开启传感器发送线程 static void send_thread_entry(void *parameter) { uint8_t temp_val = 22; uint8_t humi_val = 18; uint8_t light_val = 102; while(1) { //发送温度 // if(temp_val>40) // { // temp_val = 0; // } // else // { // temp_val++; // } rt_kprintf("send temp val is %d\n", show_temp); ab_send_msg(AB_TEMP, 0, show_temp); rt_thread_mdelay(1000 * 10); //10s 上传 //发送湿度 // if(humi_val>40) // { // humi_val = 0; // } // else // { // humi_val++; // } rt_kprintf("send temp val is %d\n", show_humi); ab_send_msg(AB_HUMI, 0, show_humi); rt_thread_mdelay(1000 * 10); //10s 上传 //发送光线强度 // if(light_val>500) // { // light_val = 0; // } // else // { // light_val++; // } rt_kprintf("send temp val is %d\n", 69); ab_send_msg(AB_LIGHT, 0, show_light); rt_thread_mdelay(1000 * 10); //10s 上传 } } void sensor_send_task(void) { send_thread = rt_thread_create("sendto", send_thread_entry, RT_NULL, 1024, 18, 10); if (send_thread != RT_NULL) { rt_thread_startup(send_thread); } else { rt_kprintf("creat task err!\n"); } } int main(void) { uint32_t val; rt_uint8_t temp,humi; int cnt = 0; int show_flag = 0; rt_kprintf("Hello, world\n"); ssd1306_bitmap(); dht11_init_pin(); ab32_uart1_init(); sensor_send_task(); blux_v20_Init(); fan_init(); hdr_init(); ptc_init(); fan_off(); hdr_off(); ptc_off(); //RGBLeds_Init(); while (1) { //RunningWaterLamp(); //获取LED值 if(get_ctrl_val(ESP_LED, &val)) { rt_kprintf("led val is %d\n", val); } //获取FAN值 if(get_ctrl_val(ESP_FAN, &val)) { show_fan_flag = 1; show_fan_val = val; if(val == 1) { fan_on(); } else { fan_off(); } rt_kprintf("fan val is %d\n", val); } //获取PTC值 if(get_ctrl_val(ESP_PTC, &val)) { show_ptc_flag = 1; show_ptc_val = val; if(val == 1) { ptc_on(); } else { ptc_off(); } rt_kprintf("ptc val is %d\n", val); } //获取加湿器值 if(get_ctrl_val(ESP_HUMIDIFIER, &val)) { show_hdr_flag = 1; show_hdr_val = val; if(val == 1) { hdr_on(); } else { hdr_off(); } rt_kprintf("humidifier val is %d\n", val); } rt_thread_mdelay(500); get_temp_humi(&temp, &humi); show_temp = temp; show_humi = humi; // show_light = range()%100; if(show_fan_flag || show_ptc_flag || show_hdr_flag) { //说明有数据,立即刷新 show_net_set(show_fan_flag, show_ptc_flag, show_hdr_flag, val); cnt = 0; show_fan_flag = 0; show_ptc_flag = 0; show_hdr_flag = 0; } cnt++; if(cnt >= 10) { if(show_flag == 0) { ssd1306_set_main_1(show_temp, show_humi, show_light); show_flag = 1; // fan_on(); // hdr_off(); // ptc_off(); } else if(show_flag == 1) { ssd1306_set_main_2(show_fan_val, show_ptc_val, show_hdr_val); show_flag = 0; // fan_off(); // hdr_on(); // ptc_on(); } else { } cnt = 0; } } }🧿 毕设项目分享:见文末! 5 最后**项目分享: ** https://blog.csdn.net/m0_984093 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |