最简单的物联网毕业设计开发

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

毕业设计:基于STM32+ESP8266的厨房预警系统


前言

提示:这里可以添加本文要记录的大概内容:

随着当今社会家庭式安全事故的频繁发生,以此为背景设计了一款家庭式火灾预警设备,主要交互采用32+ESP8266与服务器交互的手段来进行实现。


提示:以下是本篇文章正文内容,下面案例可供参考

一、设计大纲

1:系统整体设计思路

1.1:硬件设计思路

1.2:嵌入式软件设计思路

1.3:上位机软件设计思路

2:硬件部分

3:嵌入式软件部分

4:上位机软件部分

总结

一、设计大纲

1:系统整体设计思路

主控制器开始工作后,所控外设开始采集环境数据,无线网络模块也开始工作,将主控制器处理的数据上传至服务器,在上位机软件中通过调用相应语句将实际数据进行提取解析,根据所编写的逻辑程序进行命令执行。

1.1:硬件设计思路

系统上电后,主控制器工作,此时温湿度传感器和气体传感器开始采集环境数据,并将数据传输给主控制器进行处理。同时,无线网络模块也开始工作,将主控制器处理的数据上传至服务器。系统硬件结构包括STM32控制器、传感器、无线网模块、声光报警、执行器和显示模块,共同组成了整个系统。系统硬件构成如下图“图所示。
在这里插入图片描述

1.2:嵌入式软件设计思路

本次嵌入式系统的软件设计,主要从嵌入式软件外设的初始化进行介绍其中温湿度检测、气体浓度检测、MQTT服务器订阅、声光报警、时间计时等方面的嵌入式软件功能会着重说明,从中分析本次设计的基础逻辑和功能实现。本次系统总体框架按照当下主流的自主物联网开发框架结构设计,因此此次系统实际设计中主要从三个层面来进行划分:数据层、网络层、用户层。系统的总体框架示意图如“下图所示”。通过数据层、网络层和用户层三层间的交互来完成整体控系统的设计。在这里插入图片描述

1.3:上位机软件设计思路

本章结合系统嵌入式软件设计内容,主要对用户层程序进行分析,其中主要从上位微信小程序的模板结构、风格样式、行为逻辑进行分析。实际使用中遵循嵌入式软件所要实现的功能进行实际分析做出相应的逻辑操作页面,以应对在实际使用中上位机软件的适配性。
在这里插入图片描述

2:硬件部分

硬件设计时主要用到了STM32控制器、AHT20温湿度传感器、ESP8266网络模块、LED报警、风扇和OLED模块,功能底板共同组成了整个系统。(在实际使用中可以根据自身的学习程度绘制集成化的板子,可以不再受限于模块插接的方式来进行实现)功能底板如下:
在这里插入图片描述
实物如下:
在这里插入图片描述

3:嵌入式软件部分

本章对=系统整体软件功能进行了分析,将每个功能模块的嵌入式软件进行了分析,其中主要包括了传感器数据的采集和无线数据传输程序,良好的编程思路可以使整个系统运行更加可靠,迅速。该部分软件采用Keil进行设计。下代码块是主程序部分部分代码:

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "ds1302.h"
#include "Printf.h"
#include "oled.h"
#include "AHT.h"
#include "MQ.h"
#include "Key.h"
#include "RGB.h"
#include "esp8266.h"
#include "onenet.h"
#include "MqttKit.h"

extern u8 final;

u16 speed = 500;
u8 ft;
u8 Flag;

char Pub_Buff[256];//上传数据的存储数组

const char *devSubTopics[] = {"/iot/1938/chufangsub"};  //需要改动,需要订阅提前设置好的TOPICS
const char devPubTopics[] = {"/iot/1938/chufangpub"};

float Temp = 0;
float Wetness = 0;
int gas = 0;

int main(void)
{

    unsigned short timeCount = 0;	//发送间隔变量
    unsigned char *dataPtr = NULL;

    RCC_DeInit();
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
    delay_init();	    	 //延时函数初始化
    Usart1_Init(115200);
    printf("Usart1 init OK\r\n");	//串口初始化
    Usart2_Init(115200);
    printf("Usart2 init OK\r\n");	//串口初始化
    ESP8266_Init();
	printf("ESP8266 init OK\r\n");	
    ADC_Configuration();
    printf("MQ-2 init OK\r\n");	
    ds1302_gpio_init();
	printf("DS1302 init OK\r\n");	
    OLED_Init();
	printf("OLED init OK\r\n");	
    AHT20_GPIO_Init();
    printf("AHT20 init OK\r\n");	
    KEY_Init();
    RGB_Init();
	printf("RGB init OK\r\n");	
    OLED_Clear();


    while(OneNet_DevLink())			//接入OneNET
        delay_ms(500);
    printf("接入OneNET成功");
    OneNet_Subscribe(devSubTopics, 1);//订阅设置上的数据上行Topic

    while(1)
    {
        if(timeCount % 2== 0)
        {
            AHT20_Wokr();
            ADC_Trans();
			ds1032_read_realTime();
			printf("%d\r\n",gas);//把AD值转换成百分比0~99 
            printf("temp:%f,Hum:%f", Temp,Wetness);

        }
		OLED_time_dispaly();
        OLED_AHT20_display();
        oled_Noxiousgas();
//				Set_n();
        if(++timeCount >= 8)									
        {
            UsartPrintf(USART_DEBUG, "OneNet_Publish\r\n");
			sprintf(Pub_Buff, "{\"Temp\":%.1f,\"Hum\":%.1f,\"gas\":%d}", Temp, Wetness, gas);//发送相应的数据
            OneNet_Publish("/iot/1938/chufangpub", Pub_Buff);//订阅的上传消息的topic,发送的消息

            timeCount = 0;
            ESP8266_Clear();
        }
        dataPtr = ESP8266_GetIPD(3);//15ms获取平台返回的数据
        if(dataPtr != NULL)
		OneNet_RevPro(dataPtr);
        delay_ms(10);
    }
}

4:上位机软件部分

上位机使用微信小程序开发者工具进行开发,实际使用中涉及到网络传输等问题,下面是网络连接的部分代码可供参考:

 connectmqtt:function(e){ 
 // 网络连接
    var that = this
    const options={
    connectTimeout:4000,
    clientId:'lhj'+Math.ceil(Math.random()*10),
     port:8084,
     username:'c4775c60ebb6f4f6eff6b21659bbecf4',
     password:'189466330'
      }
    client = mqtt.connect('wxs://t.yoyolife.fun/mqtt',options)
    client.on('connect',(e)=>{
      console.log('连接成功')
      client.subscribe('/iot/1938/chufangpub' , { qos: 0 }, function (err){
        if (!err) {
            // client.publish('123', 'Hello mqtt')
            console.log("订阅成功")
          }
      })
    })
    // 信息监听事件
    client.on('message',function(topic,message){
        let tem={}
        tem = JSON.parse(message)
        that.setData({
          temp:tem.Temp,
          hum:tem.Hum,
          gas:tem.gas
        })
        console.log(tem)
        console.log('收到'+message.toString())
      })
    client.on('reconnect',function(error){
        console.log('重连')
    })
    client.on('error',function(error){
        console.log('失败')
    })

本次设计仅供参考,在设计中出现类似的问题可以向我提问,除此也可以访问以下链接去向此人进行提问。点击跳转

物联网毕业设计csdn主要是基于物联网技术的一个毕业设计项目。物联网是指通过互联网将物体与物体之间连接起来,实现信息的集成和共享,为人们提供更智能化、便捷化的生活服务。 在这个毕业设计项目中,首先需要对物联网技术有一定的了解和研究。可以通过阅读相关的学术论文、书籍和参考案例,了解物联网的发展现状、应用场景、关键技术等。可以从传感器技术、通信技术、数据处理与存储、安全性等方面深入探讨。 其次,需要确定设计的目标和实现的功能。可以选择一个具体的场景作为设计的应用背景,例如智能家居、智能交通、智慧医疗等。然后根据这个场景,设计相应的物联网系统架构,并明确所需的功能和需求。可以考虑使用云平台、大数据分析、可视化展示等技术实现。 接着,进行系统的设计和搭建。可以选择合适的硬件设备和传感器,参考现有的开源项目或者自行开发相应的硬件模块。对于软件方面,可以使用常见的编程语言,如Java、Python等,根据设计需求实现相应的功能和模块。 最后,进行实验和实现效果评估。将设计的物联网系统部署到实际场景中,进行实验和测试,确保系统能够稳定运行并达到设计目标。评估可以通过数据收集和分析、系统性能测试等方式进行。 总结:物联网毕业设计csdn是一个基于物联网技术的毕业设计项目,需要对物联网技术进行研究并搭建相应的系统。通过设计目标的确定、系统的搭建和实验的评估,最终实现一个能够运行稳定并能够达到设计目标的物联网系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值