【stm32毕设项目】单片机森林火灾监控防护预警系统 - 物联网 嵌入式

2023-12-17


0 前言

???? 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

???? 基于PID控制的智能平衡车设计与实现

????学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

1 简介

森林火灾是森林中常见的危害,对野生动物和环境造成很大危害。如果可以在森林地区部署一个强大的系统来检测火灾并提醒消防部门立即采取行动,则可以避免这种情况。

本项目,主要是制作一个使用物联网的森林火灾检测系统,该系统将检测火灾并通过物联网向消防部门发送紧急警报。本文使用GSM/GPRS模块与物联网服务器通信,因为通常在林区网络带宽非常低或不可用。因此,最好使用2G网络与服务器进行通信。

2 主要器件

  • Arduino Nano开发板
  • SIM800L GPS/GPRS模块
  • 3.7V锂离子电池
  • 火焰传感器

3 实现效果

在这里插入图片描述

4 硬件设计

SIM800L模块的工作原理

SIM800L是一款小巧的模块,可以进行GPRS传输、发送/接收短信和拨打语音电话。 SIM800L模块内含两根天线。第一种是用于可以直接焊接在板上的环形天线,另一种是用于外部天线。

规格参数:

  • 输入电压:3.4V - 4.2V
  • 接口:UART和AT指令
  • 支持的频率:四频 (850/950/1800/1900 MHz)
  • SIM卡槽:微型SIM卡槽
  • 天线连接器:IPX
  • 工作温度范围:-40至+85℃

基于物联网的森林火灾探测系统框图

如下示意框图所示,该项目由火焰传感器、Arduino Nano开发&SIM800L GSM/GPRS模块作为其主要组件。火焰传感器可以检测到火灾,该传感器提供与火灾状态相对应的数字输出,并由 Arduino Nano接收。

在这里插入图片描述
Arduino比较信号并在发生火灾时触发SIM800L。 SIM800L通过AT指令与thingspeak服务器进行通信。

Arduino火灾检测系统的电路图

如电路图所示,火焰传感器连接到Arduino Nano的数字输入引脚。

在这里插入图片描述
SIM800L通过电阻分压连接到Arduino Nano,因为SIM800L工作在3.3v电平。 SIM800L模块电源为3.4-4.2V,单独使用5V外部电源向Arduino Nano供电,也可使用3.7-5 V升压转换器以避免使用两个电源。

5 软件说明

用于基于物联网的森林火灾检测的Arduino程序

根据电路图成功完成硬件连接后,现在可以编写代码了。首先第一步是在代码中包含所有必需的库,本文是“SoftwareSerial.h”和“String.h”。

#include <SoftwareSerial.h>
#include <String.h>

接下来定义连接SIM800L的Arduino的RX、TX Pin。

SoftwareSerial gprsSerial(10, 11);

在setup()函数中,对所有的组件进行了初始化,如串口初始化、SIM800L模块初始化和GPIO引脚声明。

void setup()
{
  pinMode(12, OUTPUT);
  pinMode(9, INPUT);
  gprsSerial.begin(9600);               // the GPRS baud rate
  Serial.begin(9600);    // the GPRS baud rate
  Module_Init();
}

SIM800L模块初始化函数中,调用了几个AT指令来初始化模块,以及获取模块的状态。各个AT命令的功能可以在SIM800L的AT指令集中找到。这里需要注意的是在语句“gprsSerial.println(" AT + CSTT = \ "www " ")”中定义了访问点。确保将正确的接入点名称替换“www”。

void Module_Init()
{
  gprsSerial.println("AT");
  delay(1000);
  gprsSerial.println("AT+CPIN?");
  delay(1000);
  gprsSerial.println("AT+CREG?");
  delay(1000);
  gprsSerial.println("AT+CGATT?");
  delay(1000);
  gprsSerial.println("AT+CIPSHUT");
  delay(1000);
  gprsSerial.println("AT+CIPSTATUS");
  delay(2000);
  gprsSerial.println("AT+CIPMUX=0");
  delay(2000);
  ShowSerialData();
  gprsSerial.println("AT+CSTT="www"");
  delay(1000);
  ShowSerialData();
  gprsSerial.println("AT+CIICR");
  delay(3000);
  ShowSerialData();
  gprsSerial.println("AT+CIFSR");
  delay(2000);
  ShowSerialData();
  gprsSerial.println("AT+CIPSPRT=0");
  delay(3000);
  ShowSerialData();
}

在loop()函数中,从引脚12读取数字值并将其存储在变量中。

int fire = digitalRead(12);

然后,当检测到火灾时,使用if-else循环来检测SIM800L的触发器以进行必要的操作。如下图,AT+CIPSTART用于连接Thingspeak服务器并启动连接。 AT+CIPSEND 用于向服务器发送数据。这里一件重要的事情是用之前记录的字符串中的实际密钥替换“Thingspeak write API Key”。

gprsSerial.println("AT+CIPSTART="TCP","api.thingspeak.com","80"");//start up the connection
delay(6000);
ShowSerialData();
gprsSerial.println("AT+CIPSEND");//begin send data to remote server
delay(4000);
ShowSerialData();
String str = "GET https://api.thingspeak.com/update?api_key=ER43PWXXXXXQF0I&field1=" + String(1);
Serial.println(str);
gprsSerial.println(str);//begin send data to remote server

数据传输完成后,使用 AT+CIPSHUT 关闭连接。

gprsSerial.println("AT+CIPSHUT");//close the connection
delay(100);

设置Thingspeak帐户

硬件按照上述电路图成功完成后,需要搭建物联网平台,接收实时数据。这里的Thingspeak用于存储参数并在GUI中显示它们。要在Thingspeak中创建帐户,请按照以下步骤操作:

第1步:注册Thingspeak

首先,如果您之前没有Mathworks帐户,请访问 https://thingspeak.com/ 并创建一个新的免费Mathworks帐户。

第2步:登录 Thingspeak

使用您的账号登录 Thingspeak,然后单击“New Channel”。现在填写项目的详细信息,如名称、字段名称等。然后单击“Save channel”。

在这里插入图片描述
第3步:记录凭证

选择创建的频道并记录以下凭据。

  • Channel ID,位于频道视图的顶部。
  • Write API key,可以在频道视图的API密钥选项卡上找到。

在这里插入图片描述
第4步:将小部件添加到GUI

单击“Add Widgets”并添加四个合适的小部件,如仪表、数字显示和指示器。本文选用了指示器。为每个小部件选择适当的字段名称。

在这里插入图片描述
在这里插入图片描述


6 最后

???? 项目分享与指导: https://gitee.com/sinonfin/sharing

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【stm32毕设项目】单片机森林火灾监控防护预警系统 - 物联网 嵌入式 的相关文章

  • 万界星空科技灯具制造行业MES核心功能

    万界星空科技灯具制造行业MES系统功能介绍 工单管理 MES通过工单来管理生产执行 工单状态有 创建 下达 执行 完成 取消 计划员创建工单 审核通过后释放到设备或产线 仓库可收到工单下达的通知 及时备料 产线只能看到已下达的工单 执行工单
  • java_web_电商项目

    java web 电商项目 1 登录界面 2 注册界面 3 主界面 4 分页界面 5 商品详情界面 6 购物车界面 7 确认订单界面 8 个人中心界面 9 收货地址界面 10 用户信息界面

随机推荐

  • [渗透测试学习] Keeper - HackTheBox

    信息搜集 nmap扫描一下端口 nmap sV sC p v min rate 1000 10 10 11 227 发现有两个端口 22端口为ssh服务 80端口是http服务 尝试访问一下80端口 提示我们要访问 tickets keep
  • 离散无记忆信源

    在信息理论中 离散无记忆信源是指生成的每个符号都是独立且具有相同概率的信源 这样的信源模型具有一些特殊的属性和应用 对于理解和优化信息传输和存储过程非常重要 离散无记忆信源是信息论中最简单的一类信源 它的特点是生成的每个符号都是相互独立的
  • 杂项:机器学习平台

    概述 机器学习学科正在快速扩展 因此 选择合适的机器学习平台至关重要 这有助于利用端到端方法成功构建模型 机器学习平台为用户提供了创建 实施和增强机器学习 尤其是机器学习算法 的工具 介绍 随着组织收集更多数据 使用机器学习和其他人工智能
  • 华为ensp-无线小型wlan配置教程

    实验拓扑图 实验平台 ENSP510 实验设备 Centered Cloud AC6005 AP4030 STA Cellphone vlan范围划分 vlan 101 10 23 101 1 24 vlan 100 10 23 100 1
  • AI写作:解锁神秘面纱

    对于 机器AI写文章 这一研究领域 想必您可能有所好奇吧 今日 我们就此揭开它的神秘面纱 作为一个专业的AI模型 我将站在新闻媒体的角度 为您呈现一篇实事求是 细致入微且诙谐风趣的报道 1 机ai 一个有趣的创作伙伴 AI写作助手是一款灵活
  • 谐波齿轮减速器

    一 谐波齿轮减速器结构 1 柔轮 能发生弹性变形 2 波发生器 波发生器长轴两端的长度比未变形的柔轮内圆直径大 3 柔性轴承 起支撑作用 4 刚轮 不发生弹性变形 二 谐波齿轮减速器工作原理 外装柔性轴承3的波发生器凸轮2 H 装入柔轮1
  • 时序预测 | MATLAB实现WOA-CNN-GRU-Attention时间序列预测(SE注意力机制)

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 代码获取 论文复现及科研仿真合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信
  • 基于ssm的简单学校课程管理系统的设计与实现(源码+调试)

    项目描述 临近学期结束 还是毕业设计 你还在做java程序网络编程 期末作业 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 今天给大家介绍一篇基于ssm的简单学校课程管理系统的设计与实
  • 【LEACH协议】 SEP 一种适用于集群百分比异构无线传感器网络的稳定选举协议附Matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 代码获取 论文复现及科研仿真合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信
  • 灯具照明行业MES/开源mes/灯具行业免费MES

    一 万界星空科技开源MES 系统概述 万界星空科技免费MES 开源MES 商业开源MES 市面上最好的开源MES MES源代码 适合二开的开源MES 1 万界星空开源MES制造执行系统的Java开源版本 开源mes系统包括系统管理 车间基础
  • 【ELM回归预测】基于鲸鱼算法优化极限学习机WOA-ELM实现数据回归预测附matlab代码 多变量输入模型

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 代码获取 论文复现及科研仿真合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信
  • 深入剖析NPM: Node包管理器的介绍和使用指南

    导言 NPM Node Package Manager 是JavaScript世界中最受欢迎的包管理器之一 它的出现大大简化了JavaScript开发过程中的依赖管理和模块化 本文将向您介绍NPM的基本概念 功能和常见用法 并为您提供一份详
  • 【计算机毕设文章】订餐系统小程序

    订餐系统小程序 摘 要 民以食为天 餐饮业一直是与人们日常生活息息相关的产业 传统的电话订餐或者到店消费已经不能适应市场发展的需求 随着网络的迅速崛起 互联网日益成为提供信息的最佳俱渠道和逐步走向传统的流通领域 传统的餐饮业进而也面临着巨大
  • 项目:IRIS数据集项目

    概述 机器学习是人工智能的一个子部分 涉及教导算法做出基于数据的决策并尝试像人类一样行事 有许多数据集可用于针对不同任务训练这些算法 例如 IRIS 数据集 涵盖三类花 Versicolor Setosa 和 Virginica 每种花有四
  • AI写作神器,轻松解决你的写作难题

    1 全新体验 AI帮你轻松解决写作难题 在现代社会中 每个人都会面临写作的挑战 但对许多朋友而言 这项任务可能会让人感到困惑或头痛 不用担心 有了AI文章免费写作工具 这种情况可以显著缓解了 这是一个全新的写作体验 旨在帮您轻松应对各种写作
  • Linux Bridge - how it works

    Linux Bridge how it works Linux bridge is a layer 2 virtual device that on its own cannot receive or transmit anything u
  • 基于java 的经济开发区管理系统设计与实现(源码+调试)

    项目描述 临近学期结束 还是毕业设计 你还在做java程序网络编程 期末作业 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 今天给大家介绍一篇基于java 的经济开发区管理系统设计与实
  • 基于Springboot的旅游网站设计与实现(论文+调试+源码)

    项目描述 临近学期结束 还是毕业设计 你还在做java程序网络编程 期末作业 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 这里根据疫情当下 你想解决的问题 今天给在家介绍一篇基于Sp
  • 基于Springboot的教学信息反馈系统的设计与实现(源码+调试)

    项目描述 临近学期结束 还是毕业设计 你还在做java程序网络编程 期末作业 老师的作业要求觉得大了吗 不知道毕业设计该怎么办 网页功能的数量是否太多 没有合适的类型或系统 等等 今天给大家介绍一篇基于Springboot的教学信息反馈系统
  • 【stm32毕设项目】单片机森林火灾监控防护预警系统 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 SIM800L模块的工作原理 基于物联网的森林火灾探测系统框图 Arduino火灾检测系统的电路图 5 软件说明