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

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

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

本文主要用于流程说明,详细源码请参考 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 条评论
登录 后参与评论

相关文章

  • 200行代码落地人脸识别开锁应用

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

    高树磊
  • 光棍极客告诉你:如何用大数据找到女朋友?

    今天是520,你是否还在迷茫如何向喜欢的女生表白?是否还在百度有趣的撩妹技巧?生活在一个充满“数据”的世界,找个女朋友真的很难么?回答是否定的,有了大数据,找女...

    钱塘数据
  • 屌丝必看案例:加州大学光棍极客通过大数据搞定女朋友

    在加州大学洛杉矶分校数学楼5层的一个阁楼里,显示器上闪烁着微弱的灯光。Chris McKinlay正在使用罗拉多州超算为他博士论文(大规模数据处...

    小莹莹
  • 学霸用 Python 分析相亲网站数据,在两万异性中找到真爱!

    如果身在美国,就像其余四千万单身男人一样,注册一下 Match.com, J-Date 和 OkCupid 等相亲网站,坐等真爱上门不就可以了。

    GitHubDaily
  • 只需五步!哈佛学霸教你用Python分析相亲网站数据,在两万异性中找到真爱

    如果身在美国,就像其余四千万单身男人一样,注册一下Match.com, J-Date和OkCupid等相亲网站,坐等真爱上门不就可以了。

    统计学家
  • 只需五步!哈佛学霸教你用Python分析相亲网站数据,在两万异性中找到真爱

    如果身在美国,就像其余四千万单身男人一样,注册一下Match.com, J-Date和OkCupid等相亲网站,坐等真爱上门不就可以了。

    CDA数据分析师
  • 【实战】美数学博士研发找对象算法

    大数据文摘
  • 小冰负责人李笛:微软不缺钱,缺对未来的把握

    作者 | 阿司匹林 ▌小冰的诞生 2013 年 9 月,刚刚加入微软的李笛一直在不停约见微软的各个产品团队。年底的时候,微软的几个同事利用业余时间开发一款叫 ...

    AI科技大本营
  • 地图知识-坐标网

    地理坐标网(经纬网)   为了制作和使用地图的方便,高斯-克吕格投影的地图上绘有两种坐标网:地理坐标网和直角坐标网。   在我国1:1万-1:10万地形图上...

    用户1075292
  • CSS 3D动画概述菜鸟级解读之一

    无论你是前端还是设计师,相信你在网页二维空间上的操作早已经得心应手,JS处理时间线的动画也早已经烂熟于胸。从今天开始,我跟大家分享一些“新”的东西,网页的第三个...

    练小习

扫码关注云+社区

领取腾讯云代金券