0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用DS18B20实现的GSM远程汽车空调温度控制系统

电子设计 2018-09-10 08:49 次阅读

随着无线通信信息传感技术的迅猛发展和日渐成熟, 通过信息传感设备和网络将物品联接成物联网, 以实现物品的自动识别、定位、跟踪、监控和管理为目标的服务已成为可能。物联网技术在国民经济中的应用越来越广泛, 近年来引起学术界和工业界的广泛重视, 目前已成为全球的热点问题, 许多国家都将物联网的发展提高到国家级的战略高度, 本文就是从物联网的角度出发提出一种以GSM 无线网络为基础, 通过温度传感器, 将用户手机、汽车空调组合成一个小型物联网的应用设计。现代汽车中的空调一般是利用手工进行控制的,空调只有等到司机进入驾驶室才能开启或关闭,这就使得在炎热的夏天或寒冷的冬天, 刚进入车内时由于空调没有开启,人会感觉到异常的燥热或寒冷,因此设计和制造出能监控车内温度并根据监测到的温度情况来进行提前远程控制开启车内空调系统的设备便提到人们日常生活的议事日程上来,本设计就是为满足这一要求而提出来的。

1 系统的组成和工作原理

系统是由两大部分组成, 一部分是由STC89C52RC单片机中心的温度采集和继电器控制部分, 另一部分是以GSM 移动通信网、TC35I 和用户手机组成的数据的远程传输部分。系统的组成框图见图1 所示。

图1 系统组成方框图

系统的工作原理是: 用户通过手机发一条温度查询指令, 指令以短消息的方式通过GSM 短信息服务中心发送到安装在车内的TC35I, 模块接收到指令后通过串口把指令传送到STC89C52RC 单片机, 单片机启动DS18B20 采集车内温度信息, 再通过单片机和TC35I 把采集到的温度信息通过GSM 短信息服务中心传回到用户手机上, 如果车内温度过高或过低, 则用户可通过指令控制车内继电器开关来开启车内空调从而达到致冷或致热的效果。

2 系统的硬件设计

系统的硬件设计部分包括微控制器模块、DS18B20温度采集模块、继电路开关控制模块、电源模块和TC35I模块。

2.1 微控制器模块

控制器模块主要完成温度的采集、继电器开关的控制及和TC35I 的串口通信等。考虑到模块的驱动能力、功耗及性价比等因素, 系统采用宏晶公司的STC89C52RC 芯片, 该款芯片具有功耗低、控制和抗干扰能力强、性价比高的优点。微控制器具有8 KB 的FlashROM 存储器,512 B 的RAM 和2 KB 的EEPROM 存储器, 内部还集成了看门狗电路和UART, 具有在系统编程和在应用编程的功能, 无需专门的仿真器和编程器,因此选用该款控制器可以为本系统的设计带来很大的便利。

2.2 温度采集模块

系统中的温度采集模块采用DALLAS 公司生产的高精度、高可靠性的DS18B20 温度传感器, 它具有体积小、硬件开销低、抗干扰能力强、精度高的特点, 采用单总线数据通信, 全数字温度转换及输出, 最高12 位分辨率,精度可达±0.5℃, 检测温度范围为-55℃~+125℃, 因此它能满足本系统的设计要求。DS18B20 与微控制器的连接电路见图2 所示。

图2 STC89C52RC 微控制器模块和DS18B20 的连接电路图

2.3 继电器开关控制模块

继电器开关模块由TLP521 -4 、ULN2803 和SRD -12VDC 及三极管构成, 由微控制器输出的信号经过三极管构成的开关电路送往TLP521 -4 光耦芯片再通过ULN2803 达林顿管的放大后用来驱动SRD-12DC 继电器, 进而达到控制空调的各种开关的作用, 继电器开关控制模块与微控制器的电路连接图如图3 所示。

图3 继电器控制模块电路图

2.4 TC35I 模块

TC35I 模块是Simens 推出的一款双频900/1800 MHz高度集成的GSM 模块。它设计小巧、功耗很低, 可以为很多通信应用提供经济高效的解决方案。它支持EGS900 和GSM1800 双频, 数据传输的内容支持语音、数据、短消息和传真服务, 通信接口采用RS232( 指令和数据的双向传送),供电电源采用单电源3.3 V~5.5 V 的电压, 适用的范围包括: 便携电脑的低功耗通信设备、遥测遥感、远程信息处理和通信等工业领域。本系统中TC35I 与微控制器的电路连接图如图4 所示。

图4 TC35I 模块电路连接图

2.5 电源模块

系统电源模块采用了LM78L05 和LM2941S 两芯片将外部12 V 的直流供电电压转换为系统所需要的5 V和4.2 V 的电压, 电源连接电路图如图5 所示。

图5 电源连接电路图

3 系统的软件设计

系统的软件模块部分主要包括GSM 通信模块、DS18B20 温度采集模块和继电器开关控制模块部分的软件设计, 系统的工作流程如图6 所示。

图6 系统工作流程图

3.1 GSM 通信模块的程序设计

GSM 通信模块的程序则由TC35I 通过微控制器的串口发送与GSM 短信息有关AT 指令来和用户手机进行交互的, 其具体的工作流程如图7 所示, 另外本系统中执行的AT 指令[ 2 ,5]如表1 所示。

表1 系统中执行的AT 指令

3.2 DS18B20 温度采集模块的程序设计

温度采集模块部分的程序设计也主要由微控制器通过单总线的方式来完成DS18B20 的初始化并根据用户手机发过来的指令读取温度信息并反馈给用户手机,其工作流程图如图8 所示。

继电器开关控制部分的软件设计主要是根据用户从手机发过来的开关指令, 由微控制器通过置位或复位相关的端口来达到的。

图7 TC35I 工作流程图

图8 DS18B20 工作流程图

本文提出了一种以GSM 短信息中心为基础的远程汽车空调温度控制系统的设计方法, 经实际的制作和调试验证, 该系统能够稳定、可靠地运行, 该系统还具有扩展方便、无线传输距离远,可广泛应用于远距离控制领域。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5998

    文章

    43956

    浏览量

    620674
  • GSM
    GSM
    +关注

    关注

    9

    文章

    831

    浏览量

    122263
  • DS18B20
    +关注

    关注

    10

    文章

    765

    浏览量

    80082
收藏 人收藏

    评论

    相关推荐

    请问ds18b20两条线是怎么实现的?

    ds18b20两条线是怎么实现的? 没有VCC 只接了数据跟GND口驱动代码是一样的吗?
    发表于 11-07 06:55

    机智云采用MCU方案采集DS18B20温度,一直无法读取数据怎么解决?

    单片机:STC8A8K64S4A12;ESP8266-01 采用机智云的MCU方案,51单片机的程序是自动生成的,基础功能已经实现,但是一直无法读取DS18B20数据,DS18B20控制
    发表于 11-06 07:45

    DS18B20可以实现并联测温吗?

    分别读取两个DS18B20温度
    发表于 10-24 07:45

    ds18b20怎么把默认的12位温度改成9位?

    ds18b20怎么把默认的12位温度改成9位
    发表于 10-17 06:05

    DS18B20采样温度的精度可以达到多少?

    DS18B20采样温度的精度可以达到多少
    发表于 10-12 08:14

    DS18B20 数字温度计特点

    一.DS18B20特点 DS18B20 数字温度计提供12位(二进制)温度读数的数字型传感器。传感器仅需要单总线接口与CPU连接,实现信号送
    的头像 发表于 09-11 11:19 1300次阅读
    <b class='flag-5'>DS18B20</b> 数字<b class='flag-5'>温度</b>计特点

    如何使用Nano100来读DS18B20

    : NuTiny-EVB-Nano130-LQFP128 v1.1 MCU与DS18B20到PD.0的DS18B20通信读DS18B20,然后通过串端输出温度,作为浮体类型。
    发表于 08-30 08:07

    如何使用Mini51来读DS18B20

    MCU与DS18B20至P5.2进行通信,读DS18B20,然后通过串端输出温度,作为浮体类型。 DS18B20温度分辨率为12比特。 港
    发表于 08-29 07:08

    如何使用Nano100来读DS18B20

    : NuTiny-EVB-Nano130-LQFP128 v1.1 MCU与DS18B20到PD.0的DS18B20通信读DS18B20,然后通过串端输出温度,作为浮体类型。
    发表于 08-22 07:54

    使用Mini51来读DS18B20

    MCU与DS18B20至P5.2进行通信,读DS18B20,然后通过串端输出温度,作为浮体类型。 DS18B20温度分辨率为12比特。 港
    发表于 08-22 06:08

    Proteus教程第四讲:DS18B20温度测量

    Proteus教程第四讲:DS18B20温度测量
    的头像 发表于 06-14 11:19 1114次阅读
    Proteus教程第四讲:<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>测量

    【笔记】多路DS18B20温度的读取

    多路DS18B20温度传感器的读取原理如下:1.初始化:首先需要初始化GPIO引脚的配置,将其设置为推挽输出模式。这个引脚将用于与DS18B20传感器进行通信。2.启动温度转换:在读取
    的头像 发表于 06-08 09:49 2852次阅读
    【笔记】多路<b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>的读取

    【正点原子STM32精英V2开发板体验】DS18B20温度采集

    输出,用户可以通过一些简单的算法,将数据还原为温度值。其分辨率可以达到12位,满足一般情况下对温度采集的需要。与模拟温度传感器相比,DS18B20省去了信号调理、A/D转换等通道处理电
    发表于 05-03 19:31

    DS18b20传感器读数问题如何解决?

    想扩展它以使用防水 DS18b20 温度探头。使用内置的 C 库,我能够从探头读取温度,但我正在努力解决如何将值传回我的应用程序的其余部分的问题。 本质上,我想定义一个函数
    发表于 04-27 07:04

    ds18b20模块未加载是怎么回事?

    嗨,我尝试使用 ds18b20 模块将我的软件更新到版本 3.0.0.0 中的新 lua 模块,但是它不会加载: 代码:全选NodeMCU 3.0.0.0 built
    发表于 04-26 08:10