我需要找到一种更好的方法来监控我的花园中的数据,所以一年前我使用Particle.io Mesh 硬件构建了In-Plants 。这些设备运行良好,电池寿命长,数据准确,但是通过ThingSpeak.com监控数据 很麻烦。
每当我想检查我的植物状态时,必须导航到ThingSpeak前端是一个非常简单的障碍,我从未看过它,导致我的植物继续被忽视。
所以我决定升级并投资一个智能镜子,以便在我的花园旁实时显示我的植物数据。如果您不熟悉,智能镜子是一种双向镜子系统,玻璃后面有一个电子显示屏。使用Magic Mirror很容易复制它们,特别是如果您有一个备用的 Raspberry Pi,并且您可以向其中添加自己的自定义模块。
我为我的 Particle 设备创建了一个魔镜模块,现在我可以轻松地一目了然地消化来自我的Particle.io设备网络的数据。它工作得非常好,所以我决定写一个快速指南,介绍如何将该模块用于任何其他使用 Particle 技术的引擎。
那里有很多魔镜指南,所以我不会在这一步上花太多时间。查看Magic Mirror GitHub以获取详细指南,但如果您有 Raspberry Pi 和显示器,它就像运行 bash 安装脚本一样简单:
bash -c "$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)"
然后启动魔镜:
cd ~/MagicMirror && DISPLAY=:0 npm start
在 Magic Mirror 上的 shell 中运行以下命令,将 Magic Mirror MMM-ParticleStatus模块克隆到适当的位置:
cd ~/MagicMirror/modules
git clone https://github.com/NickEngmann/MMM-ParticleStatus.git
Magic Mirrors 利用名为config.js的配置文件(位于~/MagicMirror/config/config.js中)向 Magic Mirror 添加模块和自定义项。将以下代码添加到您的配置文件中。
{
module: "MMM-ParticleStatus",
position: ,
header: "My Particle Devices",
particleUsername: "default@gmail.com",
particlePassword: "defaultpassword",
clientId: "notrealclientId", //optional
clientSecret: "notrealclientSecret", //optional
debug: false, // optional
events: [{event_object}]
}
将“ default@gmail.com ”和“ defaultpassword ”替换为您的实际粒子用户名和密码。如果您要发布 PRIVATE 事件,则需要包含您的 clientId 和 clientSecret。如果要调试事件流,请将 debug 设置为 true。
现在您已准备好使用事件对象填充事件数组
MMM-ParticleStatus 模块监听事件。对于您希望在魔镜上拥有的每个指示器,为事件组成一个唯一的名称,例如“LightStateChange”、“Garage”或“Car”。不要为状态创建单独的事件(例如“LightOn”和“LightOff”);只是一个总括事件。
每次想要更新魔镜上的指标状态时,使用Particle 固件中的Particle.publish("Event Name", "New State")发布到该事件,如下图所示:
if(switch just turned on>){
Particle.publish("Light", "On");
}
if(switch just turned off>){
Particle.publish("Light", "Off");
}
另一个例子:
float voltage = analogRead(BATT) * 0.0011224;
Particle.publish("device_battery_voltage", String(voltage));
每个设备可以有多个事件并使用多个设备。
您可以在此处阅读Particle.publish上的官方 Particle 文档。
事件数组(格式如下所述)。
配置中的events
字段采用特殊的 JS 对象,如下所述。
如果您将事件数组留空,则不会显示任何内容
events:
{
deviceId: "a------------8",
name: "moisture_level_percentage",
icon: "leaf",
nickname: "lettuce",
states: [16, 30]
},
如果湿度水平百分比事件返回的数据在“ 16-30”范围内,则显示绿色叶子图标,否则显示红色叶子图标。
events:
{
deviceId: "a------------8",
name: "device_battery_voltage",
icon: "battery-half",
nickname: "tomatoes",
states: [2.9, 4.5],
show_data: true
}
如果device_battery_voltage事件返回的数据在 " 2.9-4.5"范围内,则显示绿色的电池半边图标,否则显示红色的电池半边图标。它还将显示下面事件返回的数据。
events:
{
deviceId: "b------------8",
name: "device_sensor_online",
icon: "leaf",
nickname: "rosemary",
states: ["off", "on"]
},
如果device_sensor_online事件返回的数据返回"off",那么它会返回一个红色的叶子图标,但如果事件返回的数据是"on" ,那么它会显示一个绿色的叶子图标。
{
module: "MMM-ParticleStatus",
position: "top_bar",
header: "Particle Devices", //Change this as you see fit
config: {
particleUsername: "default@gmail.com",
particlePassword: "defaultpassword",
clientId: "notrealclientId", //optional
clientSecret: "notrealclientSecret", //optional
debug: false, //optional
events:
[
{
deviceId: "e------------f",
name: "moisture_level_percentage",
nickname: "lettuce",
icon: "leaf",
states: [16, 30]
},
{
deviceId: "e------------d",
name: "moisture_level_percentage",
icon: "leaf",
nickname: "lavender",
states: [16, 30]
},
{
deviceId: "e------------d",
name: "device_battery_voltage",
icon: "battery-half",
nickname: "lavender",
states: [2.9, 4.5],
show_data: true
},
]
}
此配置将显示 3 个图标,两个事件用于湿气水平百分比,一个用于设备电池电压。数组中的第二个和第三个事件都来自同一个 Particleio 设备,一个显示水分含量状态和原始数据,而另一个显示设备的电池电量和原始数据。
保存您的配置文件并重新启动您的魔镜显示器。每当您的粒子设备发布数据时,您应该会在魔镜上看到您的事件图标和属性弹出。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !