草庐IT

基于单片机的北斗定位无人机救火系统(两种程序:单片机与android系统app程序源码)

白茶丫 2023-06-23 原文
功能:

本次设计是一个基于北斗定位的无人机灭火系统,本次设计主要通过北斗系统定位,能够将获取到的位置信息通过无线通讯技术传输到无人机上,进行火灾救援。本次设计需求主要为一下几点:

  1. 北斗定位获取火灾位置信息;
  2. 烟雾传感器,火焰传感器监测火情;
  3. 火灾位置信息可视化;
  4. 无线通讯传递火灾位置信息。

研究方法:

本次设计主要通过北斗定位模块获取火灾位置,并通过火焰传感器和烟雾传感器进行火情监测,通过OLED显示器将火灾信息进行可视化显示,并通过无线传输技术将信息传递给无人机模拟模块。

  1. 绪论
    1. 研究背景及研究意义
      1. 研究背景

无人消防技术在现如今已经使一种新型的工业技术,被广泛的使用在工业生产之中。在国内,国外已经有许多消防人员使用无人机进行对火灾现场的勘察,监测火灾现场情况并且通过以上措施保证了大多数救火人员的安全。

在此之前,基于无线通信勘察火场的科技少之又少,因技术、工程、资金问题,这样的技术很少有人进行尝试。但是随着科技的普及,无人机等一众无线通信技术进入大众的视野,而工业级无人机也在各个工业领域当中发挥着自己的作用,尤其是在消防这一部分,通过无人机代替人力救火以及投放物资等工作,这对于消防人员来说重要性不言而喻。

无人机在火灾发生时可以做到灾情巡查,监控追踪,辅助救援,辅助监督等各项功能,在火灾发生时起到了极大的作用,例如在天津大爆炸时,在火灾救援中我国各部门也曾利用无人机对事故现场进行高空监查,为灾情决策提供了有效地帮助。在火灾发生时无人机监控具有机动速度快、使用成本低、维护和操作性高等技术优点。也可以对个别干旱地区对火灾可以有及时的预警和对火灾各种动态的信息准确把握和及时的了解。

综上所述,对灾情准确的信息把握和灾情地理位置的准确定位是对公民安全的加强保护以及减少火灾对城市以及工业火灾造成的损失。

      1. 研究意义

本次设计是基于北斗卫星定位技术的救火系统。在科技飞速进步的今天,火灾对国家公民的生命安全的威胁已经不容忽视。在火灾发生时为了减少火灾带来的损失,对于火灾时信息的获取以及准确的灾情定位是十分关键的一步。在近几年,在火灾发生时救火英雄奋不顾身,身陷火海之中进行灾情救援以及灭火工作,这对于消防员而言是一个十分危险的救援工作,若可以在火灾发生时第一时间获取火灾信息并对火灾地点进行准确的定位获取火源位置,这不仅对于公众来说是安全的保障,对于消防人员来说这更是十分重要的一个救火举措。

当灾害发生时,使用无线通讯技术进行灾情侦察,利用北斗定位进行火源定位,这对于一些急难险重的灾情现场是起到重大作用的,可以有效地避免人员伤亡,避免人员进入有害气体,易燃易爆的去环境中进行侦察,又能全面的,细致的掌握火灾的动态信息以及地理位置。

    1. 国内外研究现状
      1. 国内研究现状

在国内无人机救火技术已经原来越成熟,西北工业大学航空学院李占科老师团队研制了 2消防灭火救援无人机。一款针对高层住宅火灾,无人机携带的4枚灭火弹能破窗而入,15米内能做到高精准度瞄准;一款针对森林火灾,无人机能往下投掷灭火弹,至少能覆盖50平米的范围。实现无人机救援,不仅需要无线传输技术还需要通过北斗定位对火灾地点的准确把控。

北斗卫星虽然远在天边,但是北斗技术却近在身旁,北斗的定位、导航功能广泛的应用在地图导航、工业监测等领域,在国内一部智能手机就有不少基于北斗卫星的应用,而且在对地质灾害预警中北斗定位也可以24小时不间断的对灾害进行实时监测,在此次抗击新冠肺炎疫情之中,北斗也提供了包括无人机精准喷洒消毒液、物流精准配送、医院数字施工等“硬核技术”支持。除此之外,北斗还有最具有特色的功能就是可以进行短报文通信支持1000字内容的短报文。

      1. 国外研究现状

全球卫星导航系统已经深入到各国安全、经济、军事、民用等领域。在国外以产业化程度较高的GPS定位系统为例,这已经是一种全球高新技术产业得以广泛应用的代表。国外在卫星定位的系统中,也广泛用于航空、航海、监测以及大多数工业和民用领域。

全球共有四大卫星导航系统,除了我国的北斗卫星定位系统之外,还有美国的GPS、俄罗斯的“格洛纳斯”、欧洲的“伽利略”,目前技术最成熟的依然是美国的GPS系统。在2019年底,GPS在工作的卫星总共有30颗,可以为超过40亿人进行民用、商用以及军事工业提供定位导航等服务。

    1. 研究内容与研究方法
      1. 研究内容

本次设计是一个基于北斗定位的无人机灭火系统,本次设计主要通过北斗系统定位,能够将获取到的位置信息通过无线通讯技术传输到无人机上,进行火灾救援。本次设计需求主要为一下几点:

  1. 北斗定位获取火灾位置信息;
  2. 烟雾传感器,火焰传感器监测火情;
  3. 火灾位置信息可视化;
  4. 无线通讯传递火灾位置信息。

1.3.2  研究方法

本次设计主要通过北斗定位模块获取火灾位置,并通过火焰传感器和烟雾传感器进行火情监测,通过OLED显示器将火灾信息进行可视化显示,并通过无线传输技术将信息传递给无人机模拟模块。

  1. 硬件系统的方案选择和设计

2.1  系统的主控模块

2.1.1  主控芯片的方案

方案一:EPSON单片机作为本次设计的主控芯片。EPSON单片机以低电压,低功耗和内置LCD驱动器的特点在世界上享有名誉,其广泛应用于工业控制,医疗设备,家用电器,仪器仪表,通信设备和手持式消费类产品等领域。但是其在软件编程方面较为复杂,不利于本次设计的功能实现,维护消耗较高。

方案二:Scenix单片机作为本次设计的主控芯片。Scenix单片机优点在于其具有柔性化IO端口,每一个IO端口都可以进行单独的编程设计,采用专用串行电缆可以对目标进行在线实时的仿真,但是此类单片机价格较为昂贵,且功能对于本次设计而言不需要使用到的功能较多,会造成不必要的资源浪费。考虑Scenix在制作成本方面较高,并且制造元件的过程对环境污染较大的情况下,使用Scenix系列单片机作为系统的主控机显然不符合设计要求。

方案三:选用STC89C52RC单片机作为本次设计的主控芯片。STC89C52RC是一款低功耗、高性能的COMS8位微处理器,该芯片具有经典的51内核,较传统的51单片机而言其具有3个16位的定时器/计数器,4个外部中断,并且具有更高的运行速度。且该芯片可以实现本次设计的全部功能且不会造成资源浪费价格低廉。

综上所述,本次设计选择方案三STC89C52RC芯片作为本次设计的主控芯片。

2.1.2  主控模块的设计

作为一款多功能、实用性高、高性能的单片机,STC89C52RC具有基本的标准功能。使用一个轻触按键与电容电阻可以组成一个系统的复位电路。复位电路在按下按键时可以使系统恢复到最初的数据和初始的功能。复位电路上的电容与电阻主要作用是控制复位的时间,因此在设计复位电路是需要选取合适的电阻和电容,本次设计选择10uF的电容和10K的电阻以及一个轻触按键组成复位电路,其中电阻的作用还有保护IO口。

除了复位电路之外,STC89C52RC单片机还可以与晶振和电容组成一个外部的时钟电路,时钟电路为单片机提供了一个基本的工作时序,在后续的编程中,单片机的每一次执行指令都会按照这个时序进行。在本次设计中选取11.0592NHz的晶振和30pF的瓷片电容组成一个外部时钟电路。并采用DC-5V的直流电模块对本次设计的主控模块进行供电。主控模块的设计如图1-1所示。


1-1 单片机最小系统

2.2  显示模块的方案和设计

2.2.1  显示模块的方案

方案一:选择LCD1602显示器作文本次设计的显示模块。LCD1602显示器具有功耗低,占据IO口少的优点,且其在程序的设计上较为简介方便调用。因此LCD1602广泛的用于各种电子产品之中。其缺点在于根据其内部结构,无法在强光之下进行有效的显示。多用来显示一些英文、数字和简单的符号。

方案二:选在OLED显示器作为本次设计的显示模块。OLED显示器具有高性能,多样化显示和体积小等优点,虽然其编程较为复杂不利于维护,但是产品本身十分的耐用,可以通过程序的控制进行中文、英文、数字和复杂符号的显示。

综上所述,根据本次设计的需求,需要中文对火情进行更进一步的说明显示,因此本次设计选择使用OLED显示器作文本次设计的显示模块。

2.2.2  OLED显示器的硬件设计


OLED显示器在本次设计中OLED显示器的SLC与SDA脚接在单片机的P2.6和P2.7OI口上,为的是在后续的编程中可以实现OLED显示器与主控芯片单片机进行的通信。具体的实现显示过程将在本文后续的软件设计中阐述,在此不再一一赘述。OLED显示器的硬件电路如图1-2所示所示。

图1-2 OLED显示模块

2.3  烟雾监测模块

在本次设计中,选择MQ-2烟雾传感器作为本次设计的烟雾监测模块。本次设计需要烟雾传感器与ADC0832数模转换芯片一起工作,因为MQ-2烟雾传感器检测到的烟雾值是模拟量,但是STC89C52RC主控芯片无法直接处理模拟信号,因此需要在MQ-2烟雾传感器与主控芯片单片机之间串联一个ADC0832数模转换芯片将模拟量转化为数字量在送达单片机进行处理。


MQ-2烟雾传感器是一款灵敏度高且应用广泛的传感器,该传感器具有探测范围广,灵敏度高、响应快、稳定性好、寿命长、驱动电路简单等优点,其在工业上用于检测工业废气的泄露避免造成污染和人员受伤。在生活中该芯片还可以用于检测家中的有害气体产生尤其是在冬天时家家户户取暖会造成的甲烷中毒等,MQ-2传感器都可以第一时间监测发现。

ADC0832芯片是一款高效的数模转化芯片。该芯片具有体积小,性能高,兼容性好,耗能低,性价比高等优点。在本次设计中,MQ-2烟雾传感器与ADC0832芯片的IN2管脚相连以便将监测到的模拟量传入数模转化芯片内做处理。在ADC0832芯片的使用过程中一般将其DI端口与DO端口相连在一起,因为ADC0832芯片在输出时DI口可能会与DO口不同时生效会造成数据乱码。随后将DI口与DO口与主控芯片单片机的P1.4IO口相连,将CS端口与P1.5相连,SCLK端口与P1.3相连,通过DI数据输入端可以实现通道功能的选择。烟雾监测模块如图1-3所示。

图1-3 MQ2烟雾检测模块

2.4  ESP8266无线通讯模块

ESP8266无线通讯模块在本次设计中主要是作为整个系统与接收端的通信模拟。ESP8266模块将主控芯片通过各个子模块收集到的火灾动态情况传输给接收端,并进行实时显示,本次设计中,使用手机作为接收端,手机上的的显示与OLED显示器上的显


示数据进行实时通信,从而达到无人机监测火灾情况的设计目的。ESP8266模块与传统的蓝牙模块相比,ESP8266具有WIFI功能,可以将本次设计的系统端作为一个局域网之内的设备,该模块工具有三种通信模式:STATION模式,AT模式,STATION+AT共存模式。本次设计中使用的是AT模式。

ESP8266是一款超低功耗的UART-WiFi透传模块,并广泛地应用在生活和工业的各个领域之中。常应用于:智能电网,智能交通,智能家居,手持设备,工业控制等。在本次设计中使用者可以将物理设备连接到WIFI无线网络上,进行互联网或者局域网通信。ESP8266可支持板载PCB天线,IPEX接口和邮票孔接口三种形式。ESP8266模块还具有体积小,维护价格低,性价比高,性能好等优点。因为ESP8266无线传输模块的额定工作电压为3.3V,因此本次设计需要在ESP8266无线传输模块与电源之间接入一个5V降3.3V的降压模块。ESP8266无线通讯硬件设计如图1-4所示。

图1-4 ESP8266无线通信模块

2.5  火焰检测模块

本次设计中需要对火灾的情况进行实时显示,因此,在本次设系统的工作过程中,需要火焰传感器对实时现场的火焰进行检测。火焰传感器是由各种燃烧生成物、中间物、高温气体、碳氢物质以及无机物质为主体的高温固体微粒构成的。火焰的燃烧具有连续的光谱和气体辐射,火焰传感器通过火焰的性质进行红外检测。本次设计采用的是红外火焰传感器,该传感器可以检测到一些波长在700纳米-1000纳米范围内的热源,再热产生活中和工业上经常使用这一类传感器制作灭火机器人进行远程灭火操作。该传感器具有体积小,高性能,耐用性强,灵敏度高等优点。火焰传感器模块硬件设计如图1-5所示。


1-5 火焰传感器监测模块

2.6  北斗定位模块


北斗卫星导航系统是中国正在自主研发、独立运行的全球卫星导航系统。北斗卫星导航系统由三个部分组成:空间段,用户段和地面段。北斗定位不仅有可以导航的功能,最主要的是海记游实时定位的功能,由于其性能好,在国内已经越来越普及,常用于私家车导航,工业导航,灾害救援定位等功能,北斗定位系统是一款高性能,误差小,可靠性强,耐用的系统。在本次设计中,北斗定位模块的主要功能在于,使无人机在监测火灾与寻找火源的过程中进行定位,通过定位,将经纬度等信息发送到主控模块单片机中,并显示在OLED显示器上,再通过ESP8266无线传输模块将火情和经纬度坐标传输到手机模拟的接收端。在本次设计中,北斗模块和ESP8266连接在同一个继电器上,模拟无人机在寻找火源和飞行过程中启用ESP8266模块,当无人机确定火源之后保持飞行状态时,北斗定位模块监测到的经纬度坐标固定,此时单片机发送指令导通继电器使北斗定位模块工作,同时ESP8266无线传输模块工作并对各个模块的数据进行传输。北斗定位模块硬件设计如图1-6所示。

图1-6 北斗定位模块

2.7  温度检测模块

本次设计需要对火灾现场进行温度的采集,在火灾现场需要一个耐高温,实用性强,可靠性高的温度监测芯片。本次设计中选取的温度检测芯片是由美国DALLS公司制造的DS18B20传感器,该传感器具有监测范围广,且精度高等优点,在实际情况中,近距离监测火灾现场现场时,周围的温度是十分高的,因此需要一个温度检测芯片监测现场温度以达到使用者对于火情的判断。

DS18B20温度传感器是一个单总线协议的数字传感器,该传感器占用IO口少,且体积小,抗干扰能力强。因为是数字传感器,因此检到的温度值可以直接在传感器内部生成数字量传送到单片机内部,而单片机也可以通过总线发送指令给DS18B20传感器进行实时的温度检测。单总线双向传输信息,当单片机接收到来自DS18B20温度传感器传来的温度时,会将数据整理并通过ESP8266无线通信模块传输到接收端上。DS18B20温度检测模块硬件设计如图1-7所示。


图1-7 温度检测模块

资料包括:

 原理图:

 程序:

需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

有关基于单片机的北斗定位无人机救火系统(两种程序:单片机与android系统app程序源码)的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby - 如何指定 Rack 处理程序 - 2

    Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

  3. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  4. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  5. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  6. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  7. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  8. ruby - 检查是否通过 require 执行或导入了 Ruby 程序 - 2

    如何检查Ruby文件是否是通过“require”或“load”导入的,而不是简单地从命令行执行的?例如:foo.rb的内容:puts"Hello"bar.rb的内容require'foo'输出:$./foo.rbHello$./bar.rbHello基本上,我想调用bar.rb以不执行puts调用。 最佳答案 将foo.rb改为:if__FILE__==$0puts"Hello"end检查__FILE__-当前ruby​​文件的名称-与$0-正在运行的脚本的名称。 关于ruby-检查是否

  9. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

  10. 程序员如何提高代码能力? - 2

    前言作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以程序员在程序开发过程中的代码能力也是根据平时开发中的业务实践来积累和提升的。提高代码能力核心要素程序员要想提高自身代码能力,尤其是新晋程序员的代码能力有很大的提升空间的时候,需要针对性的去提高自己的代码能力。提高代码能力其实有几个比较关键的点,只要把握住这些方面,就能很好的、快速的提高自己的一部分代码能力。1、多去阅读开源项目,如有机会可以亲自参与开源

随机推荐