专栏首页腾讯云实践案例腾讯云实践案例:基于树莓派实现甲醛在线监测
原创

腾讯云实践案例:基于树莓派实现甲醛在线监测

本案例针对传统甲醛检测的问题进行优化,通过远程在线监测甲醛指标的方式,解决了已有方案中“需现场人工查看”、“检测限于单次”等问题。

本文主要用于流程说明,详细源码请参考 github/SensorOnTencentCloud

(预计耗时 - 1人/时:单人约1小时可完成搭建实践验证。)

1.效果展示

云端展示

腾讯云图 云端展示

终端展示

RapeberryPi 终端展示

2.物料准备

终端部分

  • Rpi(Rapspberry Pi 3B+)
  • Rpi操作系统( raspbian 使用 lite 版)
  • 传感器(UART 甲醛传感器)
  • OLED(I2C OLED屏)

软件部分

3.架构说明

逻辑架构图
技术方案架构图

4.搭建过程

此环节分为三个部分:

  • 终端搭建
  • 云端搭建
  • 终端上报云端联调

注1: 终端搭建完成后,即可进行本地监测

注2: 云端部分是通用接口,可按接口格式,上报并展示其它监测数据

4.1 终端搭建

4.1.1 Rpi系统安装与环境准备

  • 安装Rpi操作系统 安装指引
  • 完成基础配置,使可接入互联网 配置指引
  • clone 代码至 Rpi (路径可自定,此处示例为 /sotc 下同)
  • 执行 init.sh 安装依赖库

4.1.2 硬件接线与配置

a. RPI GPIO图示

RaspberryPi GPIO 示意图

b. 接线示意图

GPIO 硬件接线 示意图

c. 接线说明

传感器

Rpi

Pin4(5V)

Pin2(5V)

Pin3(GND)

Pin6(GND)

Pin6(UART-TxD)

Pin10(UART-RxD)

注:本次使用传感器,硬件接口是1.25mm端子,Rpi是2.5mm端子,使用了 7P1.25转2.5杜邦线,进行连接

OLED

Rpi

VCC

Pin1(3.3V)

SDA

Pin3(SDA)

SCL

Pin5(SCL)

GND

Pin9(GND)

d. 开启I2C接口

按下图示意打开I2C接口

raspi-config
接口管理
I2C管理
确认开启

测试执行

i2cdetect -y 1
查看设备

看到 3C 即识别硬件成功

注:UART默认开启,无需配置

4.1.3 本地监测与展示

a. 本地测试

执行脚本

nptdate cn.ntp.org.cn
/sotc/getdata.py &
sleep 3
/sotc/flusholed.py &

此时OLED应有显示数据。

注1:必须及时对时,避免时间偏差,影响数据可用性

注2:电化学传感器有预热时间,预热时间内数据不稳定

b. 添加启动项

编辑 /etc/rc.local

nptdate cn.ntp.org.cn
/sotc/getdata.py &
sleep 3
/sotc/flusholed.py &

c. 添加计划任务

编辑 /etc/crontab

*/1 * * * * root /sotc/reload.sh

此部分用于进程异常中止后的拉起。

注:基于时间成本与应用环境考虑,未使用守护进程或服务形态

4.2 云端搭建

4.2.1 云数据库

访问 云数据库 控制台 建立库表

表结构

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";

CREATE TABLE `sensordata` (
  `id` int(11) NOT NULL,
  `stime` timestamp NULL DEFAULT NULL,
  `utype` int(11) NOT NULL DEFAULT '0',
  `udata` float NOT NULL,
  `sdata` varchar(256) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `sensordata`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `sensordata`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;

字段

说明

id

自增主键

stime

监测时间

udata

监测数据

utype

监测类型(用于后续扩展)

sdata

监测数据(用于后续扩展)

4.2.2 无服务器云函数

访问 云函数 控制台 建立函数服务

  • 新建服务
  • 配置代码 (录入 github/scf.py 代码)
  • 配置触发方式 (选择API网关触发)
  • 等待调用

注:由于后续使用API网关触发,可后续联调

4.2.3 云API网关

访问 API网关 控制台 配置网关服务,如由上节云函数部分配置触发,则API网关服务已经建立,仅需调整配置,以及下载使用API网关SDK。

具体操作可参考 client_package/readme.md

4.2.4 腾讯云图

访问 云图 控制台 配置展示部分

a. 使用说明

新建大屏 -> 拖选组件 -> 点击数据栏 -> 选择数据库 -> 填写SQL -> 开启自动更新 -> 预览 -> 发布

b. 操作示例图

腾讯云图 简要操作方式

c. 组件配置信息

  • 最新同步时间 - 通用文本
select concat('最新同步时间 ',stime) as value from sensordata order by id desc limit 1
  • 国标系数比 - 水位图
select round((udata)/0.08*100, 2) as value from sensordata order by id desc limit 1
  • 实时读数 - 基本条形图
select round(udata, 3) as x, '' as y from sensordata order by id desc limit 1
  • 10分钟数据 - 基本折线图
select * from (select id, round(udata, 3) as y, date_format(stime, '%H:%i:%S') as x, utype as s from sensordata order by id desc limit 360) as t1 order by id asc
  • 7天数据 - 基本折线图
select distinct (dt), round(AVG(udata),3) as y, dt as x, '0' as s from (select id, date_format(stime, '%Y-%m-%d %H') as dt, udata from sensordata order by id desc limit 604800) as t1 group by dt order by dt ASC

4.3 终端上报云端联调

a. 执行脚本

/sotc/sync_apigw.py

此时云数据库应新增数据,云图应有展示。

注1:如积累数据量过大,API网关可能会有超时,但数据应该能正常录入。

注2:未进行分批上传的原因,也是时间成本与工作环境考量,可自行更改。

b. 添加计划任务

编辑 /etc/crontab

*/1 * * * * root /sotc/sync_apigw.py

此部分用于每分钟同步数据。

4.4 其它

本案例也将于 本周四(20190801) 在 腾讯技术工程直播间 进行直播分享。

欢迎提前预约直播。

腾讯技术工程直播间

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 腾讯技术直播间 | 轻量产品思维!手把手教你搭建在线甲醛监测系统

    ? 扔掉小瓶盖,腾讯云带你体验在线甲醛监测系统! ecky,公众号:腾讯技术工程基于“树莓派+腾讯云”的在线甲醛监测系统 还记得我们7月初推送的这篇有趣又实用...

    腾讯技术工程官方号
  • 课程回顾:API网关技术最佳实践

    随着企业信息系统复杂度的提高,如何统一管理、如何协调多种协议、如何保障外部的安全访问等问题也随之而来。而如今,API网关很好的解决了这一系列问题。通过 API ...

    腾讯云serverless团队
  • 鹅厂分布式大气监测系统:以 Serverless 为核心的云端能力如何打造?

    导语 | 为了跟踪小区级的微环境质量,腾讯内部发起了一个实验性项目:细粒度的分布式大气监测,希望基于腾讯完善的产品与技术能力,与志愿者们共建一套用于监测生活环...

    腾讯云serverless团队
  • 基于“树莓派+腾讯云”的在线甲醛监测系统

    身边朋友在装修新房,顺便来吐槽甲醛检测麻烦,比如 有检测无监测(一次性),比如测试复杂(现场+人工)等等。刚好做为云产品经理,经常想的就是如何了解和验证多云产品...

    代码医生工作室
  • 基于“树莓派+腾讯云”的在线甲醛监测系统

    ? 导语 扔掉小瓶盖,腾讯云带你体验在线甲醛监测系统!本文详述腾讯云多产品组合设计和体验报告 之 “树莓派+腾讯云=在线甲醛监测系统”。涉及腾讯云产品:API...

    腾讯技术工程官方号
  • 码农教你1小时搭个在线甲醛检测系统!

    【导语】扔掉小瓶盖,腾讯云带你体验在线甲醛监测系统!本文详述腾讯云多产品组合设计和体验报告之 “树莓派+腾讯云=在线甲醛监测系统”。涉及腾讯云产品:API网关、...

    腾讯云数据库 TencentDB
  • 【腾讯连连IoT开发大赛】基于TencentOS Tiny的智能甲醛探测与云打印系统

    达特甲醛探测仪是基于英国达特公司设计开发的WZ-S型甲醛检测模组设计开发的,它可以用于检测环境中甲醛的浓度,以提示用户运用科学有效的方法降低甲醛污染,进而使环境...

    morixinguan
  • 装修甲醛怎么办?自制小程序监控的甲醛检测仪

    装修甲醛怎么办?很多人想要购买甲醛检测仪,但在电商平台面对纷繁杂乱的商品列表还是有点手足无措。大家最关心的还是甲醛检测准不准,而单凭商家的广告实在难以判断。

    twowinter
  • 三伏天,这位小哥给“树莓派4”加了个风扇,温度直降20度!(附视频教程)

    最近发布的“树莓派4”性能强大、价格亲民,新智元此前已经做过比较全面的介绍。但如此强大的性能带来的一个副作用就是猛增的发热量。其实在树莓派官网上说它“性能堪比P...

    代码医生工作室
  • 手把手教你自制基于TencentOS Tiny的智能甲醛监测仪

    甲醛是室内一项非常重要的指标,对眼、鼻、喉的黏膜有强烈的刺激作用,最普遍的症状就是眼睛受刺激和头痛,严重的可引起过敏性皮炎和哮喘。由于新房装修场景对甲醛监测的需...

    Mculover666
  • 开源作品:基于TencentOS tiny英国达特甲醛探测仪产品级开发(二)

    本项目基于前面开源的基于腾讯物联网操作系统的危险气体探测仪在软件上只改动了核心检测部分以及部分界面,在操作逻辑风格上与第一个项目基本相同,这就体现了软件代码复用...

    morixinguan
  • 手搓一个分布式大气监测系统(六)云端能力更新、说明及源码放出

    本系列前序文章,已经对硬件层进行了详细的说明,讲解了设备性能、开发、灌装等环节的过程。本篇将对数据上云后的相关流程,进行说明。

    高树磊
  • 甲醛检测仪开源项目-产品级开发(一)

    前阵子开源了一个基于TencentOS tiny物联网操作系统的危险气体探测仪项目,这次,我们再来开源一个新的项目-甲醛检测仪,但是做项目之前,有必要了解下接下...

    morixinguan
  • 【公告】IoT迷你赛获奖名单

    各位参加腾讯云IoT产品体验的伙伴们!感谢大家近一个月以来的努力和付出,大家在体验过程中给产品提了很多优秀的改进意见,并基于腾讯云IoT产品做出了不少优秀的作品...

    腾讯云物联网团队
  • 手机控制的浇花神器

    不知道其他人有没有这样的顾虑,就是每次需要外出一些时日的时候总是担心家里的花无人浇水会干死。于是就想着是否能自己动手做一个可以用手机操控实现浇花的“半自动浇花器...

    云加社区
  • 用树莓派做一个人脸识别开锁应用

    ? 作者:eckygao,腾讯 CSIG 云产品部 1.案例概述 1.1 背景 实现一个人脸识别进行开锁的功能,用在他的真人实景游戏业务中。总的来说,需求...

    腾讯技术工程官方号
  • 【IoT应用创新大赛】基于LoRa的智慧办公场景方案

    随着物联网技术的发展,越来越多的应用需求被提及,整个物联网产业链的基础设施也得到快速发展。以腾讯、阿里为首的头部云计算企业,纷纷推出了物联网设备接入的基础设施(...

    古月瘦水
  • 200行代码落地人脸识别开锁应用

    2019年国庆,帮朋友实现了一个人脸识别进行开锁的功能,用在他的真人实景游戏业务中。几个月来运行稳定,体验良好,借着这个春节宅家的时间,整理一下这个应用的实现过...

    高树磊
  • 【腾讯连连IoT开发大赛】打工人快乐窝-快速打造一个让打工人倍感安心的家

    起这个标题是因为,对于很多年轻人来说,买房困难,只能租房,但是租房面临着很多问题,其中很重要的就是财产生命安全,以及环境对健康的影响,这两年爆出过很多次类似闯入...

    每天都要晨练撸码哦

扫码关注云+社区

领取腾讯云代金券