本文所使用到的所有技术与对应的版本号如下:

树莓派:Raspberry Pi 4B;温度传感器:DS18B20;Python:3.7.3;数据库:MariaDB-10.0.28;Canal(Server/Client):1.1.3;Java:1.8;Javax mail:1.5.4

项目所在地址:

Gitee:Temperature Alarm System: 基于 树莓派+DS18B20+Canal 实现 温度报警系统
(gitee.com)

1、系统架构

最近突然想到一种温度报警系统的简单实现思路:大概就是通过DS18B20采集室内温度,树莓派循环读取室内温度值,达到温度报警阈值后,向数据库中写入报警信息。同时搭建一台简单服务器并且在其上部署一台Canal实时监听树莓派中数据库的数据变更事件,获取后发送邮件提醒温度预警。

整个系统可以分为采集层通信层告警层。系统结构如下图所示:


由于整个过程都是线性处理的,因此整个系统理解起来也非常轻松。

2、系统拆解

有了系统架构和简单实现思路后,让我们来思考下如何将系统拆解成一个个小任务并逐个解决。

2.1、数据采集层

对于数据采集层来说,难点在于树莓派如何读取传感器采集的温度信息。

玩过单片机的都知道,对于模拟信号(温度),我们需要一个AD芯片将模拟信号转换成8位、12位或16位的数字信号以高低电平的形式发送给单片机进行相应处理。温度采样精度取决于AD芯片的位数。这种方式处理非常复杂。

而DS18B20这种常用的温度传感器直接输出数字信号体积小抗干扰能力强。并且封装好后只有三根引脚,能够极大节省处理器的IO资源。与树莓派集成使用时,可以通过驱动将温度直接写入树莓派的设备文件中节省大家的硬件驱动开发成本,也不用困扰在各种时序处理逻辑上。

因此,树莓派与DS18B20集成使用,我们可以使用Python读取设备文件的方式获取温度信息。

2.2、通信层

系统的通信层我选用了Canal监听MySQL数据库变更的方案(不要问我为什么搞这么麻烦 (~ ̄▽ ̄)~ ,问就是最近工作中用到了

树莓派+DS18B20+Canal 实现 温度报警系统相关推荐

  1. 树莓派DS18B20温度传感器获取温度

    目录 树莓派使能DS18B20 C程序获取DS18B20温度 树莓派使能DS18B20 sudo raspi-config 进行配置树莓派,启动1-Wire完成使能 sudo reboot  重启树莓 ...

  2. 基于51单片机的温度报警系统

    目录 前言 一.温控系统是什么? 二.设计目的 1.环境需求 2.设计基础 三.设计 1.C51程序设计 2.Proteus仿真 (1).元器件如下 (2).原理图. 总结 前言 微型计算器自20世纪 ...

  3. 监控安装ESXi on Arm的树莓派4b的CPU温度

    在传统的x86服务器上,ESXi可以监控该服务器的cpu温度,如图: cpu温度显示 我们平时玩树莓派时,是可以获取到cpu温度,并且可以通过程序来联动启停风扇的.(网络上教程很多) 当ESXi on ...

  4. 51单片机驱动DS18B20温度传感器测量温度

    51单片机驱动DS18B20温度传感器测量温度 1.DS18B20温度传感器介绍: 2.51单片机驱动DS18B20测量温度 1.DS18B20温度传感器介绍: ①引脚定义 引脚 符号 说明 1 GN ...

  5. 基于51单片机的温度报警系统(程序分装)

    文章目录 目录 前言 一.程序结构 1.1.1 全局变量 1.1.2 静态本地变量 1.2 预处理命令 1.3.1 函数原型 1.3.2 头文件 标准头文件结构. 1.4  *声明和定义* 二.错误示 ...

  6. 基于FPGA的 DS18B20多功能温度显示

    基于FPGA的 DS18B20多功能温度显示 实现功能: 1.实时温度显示在数码管上,更新速率1-2s一次 2.按下按键显示最近30s内的最高温和最低温 不包含板子, 3.按下按键可以存储当前温度,最 ...

  7. 第三十五篇、基于Arduino uno,获取DS18B20温度传感器的温度值——结果导向

    0.结果 说明:先来看看串口调试助手显示的结果,第一个值是空气温度值.如果是你想要的,可以接着往下看. 1.外观 说明:虽然DS18B20温度传感器形态各异,但是原理和代码都是适用的,就是接线可能有点 ...

  8. 树莓派下DS18B20获取实时温度

    文章目录 1. DS18B20温度传感器 2. DS18B20安装及配置 3.基础代码逻辑分析 3.1 逻辑分析 3.2 阶段代码示例 4. 代码及运行结果 4.1 全部代码 4.1 运行结果 1. ...

  9. Linux系统编程:树莓派 ds18b20温度获取(文件IO相关操作)

    文章目录 问题 解答 linux文件io操作文件夹 1.opendir() 2.readdir() 3.closedir() 4.open() 5.read()函数 问题 当树莓派配置好ds18b20 ...

最新文章

  1. FineReport报表和FineBI的差别和各自的优势在哪
  2. 北斗导航 | 卫星导航基础知识(卫星通信调制技术:信号调制、解调:ASK、FSK、PSK:FDMA、TDMA、CDMA、SDMA)
  3. java虚拟机内存空间
  4. php 批量更新死锁,php – 在尝试获取锁定时,哪个查询导致死锁;尝试重新启动事务...
  5. php支付密码控件,Android高仿微信支付密码输入控件实例代码
  6. C/C++指针和取地址操作
  7. LINUX下载编译opusfile/opus-tools
  8. 如何彻底关闭FF新推荐弹出广告
  9. 为何架设好服务器不显示补丁,WSUS补丁服务器分发后,客户端不在管理控制台显示 - winServer论坛 - 51CTO技术论坛_中国领先的IT技术社区...
  10. 2021系统架构设计师考试知识点
  11. arcgis 经纬度转大地坐标_ArcGIS的地理坐标系与大地坐标系
  12. 汇编语言基础知识(二)
  13. google 搜索语法总结
  14. html简单边框制作--特效文字制作及代码,HTML音画介绍之一--基本原理和边框的制作...
  15. iOS 自动生成各种尺寸的App Icon 和 Launch Image( App Icon Gear)
  16. input文本框输入溢出的时候,鼠标悬停显示全部信息
  17. python读取csmar_wind数据转为国泰安数据 stata命令
  18. Win 10系统安装3ds max 2014
  19. 关于pycharm中html在页面访问的记录(授权问题)
  20. word/ppt中如何插入11以上带圆圈的数字序号

热门文章

  1. 【论文阅读】AD-GCL:Adversarial Graph Augmentation to Improve Graph Contrastive Learning
  2. asio(三)、bind
  3. springMVC第一天——入门、整合与参数绑定
  4. UCA-系统工程师学习-使用dpkg管理软件包
  5. 曲速未来:区块链用于房地产是否会起作用
  6. 第十五次ScrumMeeting博客
  7. 三星获欧洲专利居业内之首 中兴首次进入前十
  8. Dijkstra-POJ-2387-Til the Cows Come Home
  9. C++ free指针时的异常
  10. tools1.0.3