Funpack9—SensorTile.box接入Homeassistant
原来SensorTile.box 物联网盒子这么好玩!快来一起学习!!!使用Nodered接入Homeassistant,万物互联。 操作部分请看视频,hass配置代码部分请在附件下载
标签
嵌入式系统
STM32
机器学习
颜七岁
更新2021-06-21
1112

 内容简介:

本期的SensorTile.box是一款集成超多传感器的物联网盒子,主控采用低功耗STM32L4R9,运行频率为120 MHz的ARM Cortex-M4,这是一款非常优秀的低功耗MCU。同时在盒子里面还内置了蓝牙4.2模块。

SensorTile.box有多种开发方案,资料也是非常的多,其他我就不一一介绍了,今天主要和大家分享利用SensorTile.box来实现比较简单的云端数据可视化。

盒子功能介绍:

SensorTile.box可以实现以下应用

  • 专为皮带定位而优化的计步器
  • 支持云AI学习的婴儿哭泣检测
  • 气压计/环境监测
  • 车辆/货物追踪
  • 振动监测
  • 指南针和倾角计
  • 传感器数据记录器

SensorTile.box上集成了大量的传感器

  • 数字温度传感器(STTS751)
  • 6轴惯性测量单元(LSM6DSOX)
  • 3轴加速度计(LIS2DW12和LIS3DHH)
  • 3轴磁力计(LIS2MDL)
  • 高度计/压力传感器(LPS22HH)
  • 麦克风/音频传感器(MP23ABS1)
  • 湿度传感器(HTS221)

本期任务要求:

此次我做的是任务二:

搭建可随身携带的环境监测系统,记录一段时间的环境数据,并导出查看(要求解释数据的变化)

我认为导出有点繁琐,那能不能实现不通过内部的SD卡从而实现实时数据的可视化呢?

今天给大家介绍一款基于node.js的物联网可视化开发平台-Node-red。

Node-red介绍(地址:ip+1880)

这个项目是由IBM新兴技术服务团队构建的可视化物联网编排工具,可基于浏览器的流程编辑器连接设备、服务器和 API 应用。

此外他是一个可视化的项目,后台使用的是NodeJS语言,提供了Web页面,来编写Flow。经常玩智能家居的朋友,一定听说过或者操作过Homeassistant,Homeassistant国内也有不错的讨论社区,他可以实现智能家居的云端或者本地化运行,极大的增加智能家居的可玩性。Node-RED可以担任智能家居的自动化大脑,他可以实现数据的采集,判断和执行。你可以通过树莓派,R2S等基于linux的设备通过命令来安装Nodered。

Node-RED平台的特点

  • 可视化,直接在浏览器拖拽创建Flow
  • 平台可使用模块丰富
  • 支持http,mqtt,websocket,tcp,utp协议
  • 使用Nodejs事件驱动的非阻塞模型,非常适合在低成本硬件运行
  • 完全开源,可以自主开发

 

安装云端环境

安装Node-red

本期我已树莓派4B为例安装Nodered。

你可以通过官网的教程来进行搭建,非常的简单。

官网地址:https://nodered.org/

如何安装呢?

你可以直接使用一键安装的命令进行安装。

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

 

如果你对安装过程有疑问,可以访问官网安装建议:https://nodered.org/docs/getting-started/raspberrypi

Docker环境可以使用:

 docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red

如果你对安装过程有疑问,可以访问官网的docker安装环境地址:https://nodered.org/docs/getting-started/docker

推荐大家依照自己熟悉的安装环境来操作。

 

介绍EMQ—Mqtt服务器(地址:ip+18083)

安装完毕后我们还需要一个MQTT的服务器,这里推荐大家一个开源的MQTT服务器平台。

EMQ官网:https://www.emqx.cn/products/broker

EMQ X Broker 是基于高并发的 Erlang/OTP 语言平台开发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT 消息服务器。

安装EMQ

因为树莓派的环境是基于Debian的,所以我这里采用官网提供的Debian安装命令进行安装,如果你想用其他系统或者环境,推荐访问:https://www.emqx.cn/downloads#broker

Debian环境

下载命令:

wget https://www.emqx.cn/downloads/broker/v4.3.3/emqx-debian10-4.3.3-amd64.deb

安装命令

sudo apt install ./emqx-debian10-4.3.3-amd64.deb    

运行

sudo emqx start

 

Docker环境可以使用:

docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:4.3.3

现在我们安装好了Nodered和mqtt服务器,那接下来给大家带来系统框图,更好理解本次教程的框架。

Fv1FOqf9YOxk--t4qY7sTK88A3Qy

云端所需要的工具我们做好了之后, 开始从传感层开始吧。

使用ST BLE Senor APP制作一个带有环境监测的传感器:

1.创建环境监测固件。

2.选择温度,湿度,气压传感器并生成固件。

3.上传制作好的固件。

 

使用ST BLE Senor APP自带的MQTT客户端。

1.手机端连接我们的SensorTile.box,点击Cloud Logging。

2.这里我们点击最后一个Generic MQTT(通用的MQTT)。

3.输入我们的MQTT地址(本地可以通过路由器后台查看)端口号:1883。

4.这里的用户我们需要去本地的EMQ-MQTT服务端去创建。

5.进入到EMQ后台,点击左侧菜单栏的最下面:通用-用户-新建用户,输入我们的用户名和密码(这里我们作为发送的客户端账户)。

6.在手机端输入我们的MQTT账户和密码即可。

7.点击Connet连接到我们本地端(因为我们使用的是本地的服务器所以手机WiFi要连接到路由器上)。

 

Nodered采集信息

1.我们先到MQTT服务器上新建一个订阅的MQTT账号。

2.用户名要和手机的MQTT区别开来(例如:mqtt-nodered)。

3.登录到Nodered的后台,在作业的Flow中找到mqtt in这个控件。

4.新建一个MQTT类型,输入我们本地飞mqtt地址和端口要(与前面一致)。

5.返回之后,输入我们的主题。

Temperature 主题:温度
Humidity 主题:湿度
Pressure 主题:气压
Battery 主题:电量

6.制作好MQTT的订阅消息,我们接下来使用Function控件来提取温度、湿度、气压、电量的数值。

7.每个代码块对应我们要获取的数据函数(这里是三个控件的整理,如有疑问以视频为主)。

//温度
t=JSON.parse(msg.payload);
node.log(typeof t);
msg.payload=t.Temperature.toFixed(2);
return msg;
//湿度
h=JSON.parse(msg.payload);
node.log(typeof h);
msg.payload=h.Humidity.toFixed(2);
return msg;
//气压
p=JSON.parse(msg.payload);
node.log(typeof p);
msg.payload=p.Pressure.toFixed(2);
return msg;

8.为了让数据显示出来。我们在拖动下面的dashboard 一个gauge,y一个chart控件(请参考视频步骤)。

9.点击界面右上角的部署,然后打开nodered的前端UI界面(地址:http://(主机ip)+:1880/ui)就可以看到我们的温度,湿度,气压的数据了。

如果你正在使用Homeasstant,完全可以使用这样的方式来获取SensorTile.box的传感数据, 这样它不仅仅是一个传感器盒子这么简单。

 

教程操作部分较多,推荐大家观看视频进行操作!

Noed-red部分参考代码详见附件:

 

附件说明:

stm32box.json 存放homeassistant配置文件的 stm32box.json存放nodered配置文件的,全选也可以直接导入到nodered中(导入在nodered界面右上角,三横杠-导入,粘贴即可)

活动心得:

SensorTile.box的玩法多种多样,今天我给大家带来不一样的方式来实现数据记录。通过此案例,给大家介绍了SensorTile.box和Nodered平台,希望这篇文章对你有所启发。感谢硬禾学堂和得捷电子举办的FunPack第九期的活动。每一期的板子都不一样的开发方式和乐趣。

 

附件下载
stm32box.json
hass_mqtt.json
团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号