×

Particle.io数据的魔镜模块

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-19

李明聪

分享资料个

描述

介绍

我需要找到一种更好的方法来监控我的花园中的数据,所以一年前我使用Particle.io Mesh 硬件构建了In-Plants 。这些设备运行良好,电池寿命长,数据准确,但是通过ThingSpeak.com监控数据 很麻烦。

 
 
 
pYYBAGOX6qaAbgCTAA_S9J3Z-9I300.jpg
 
1 / 2健康植物
 

每当我想检查我的植物状态时,必须导航到ThingSpeak前端是一个非常简单的障碍,我从未看过它,导致我的植物继续被忽视。

pYYBAGOX6ueAKtkZAAx4HSyiLF0311.jpg
被忽视的植物男孩:(
 

所以我决定升级并投资一个智能镜子,以便在我的花园旁实时显示我的植物数据。如果您不熟悉,智能镜子是一种双向镜子系统,玻璃后面有一个电子显示屏。使用Magic Mirror很容易复制它们,特别是如果您有一个备用的 Raspberry Pi,并且您可以向其中添加自己的自定义模块

 
 
 
poYBAGOX6wGATX2JAAOPp09I3xw169.jpg
 
1 / 2标准魔镜
 

我为我的 Particle 设备创建了一个魔镜模块,现在我可以轻松地一目了然地消化来自我的Particle.io设备网络的数据。它工作得非常好,所以我决定写一个快速指南,介绍如何将该模块用于任何其他使用 Particle 技术的引擎。

poYBAGOYuDOAGMk1AACf4cq7Dhk279.png
魔镜模块 MMM-ParticleStatus(有些不健康)
 

步骤 0:制作魔镜

那里有很多魔镜指南,所以我不会在这一步上花太多时间。查看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

第 1 步:克隆模块

在 Magic Mirror 上的 shell 中运行以下命令,将 Magic Mirror MMM-ParticleStatus模块克隆到适当的位置:

cd ~/MagicMirror/modules 
git clone https://github.com/NickEngmann/MMM-ParticleStatus.git

第 2 步:设置配置文件

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 对象,如下所述。

pYYBAGOYuDeATwvQAAJ3xtM1MZ4117.png
事件配置
 

如果您将事件数组留空,则不会显示任何内容

事件数组的示例

事件示例 1

events:
    {
        deviceId: "a------------8",
        name: "moisture_level_percentage",
        icon: "leaf",
        nickname: "lettuce",
        states: [16, 30]
    },

如果湿度水平百分比事件返回的数据在“ 16-30”范围内,则显示绿色叶子图标,否则显示红色叶子图标。

poYBAGOYuDqAI8v1AAAJ1HNAsAA902.png
湿度水平百分比返回“16 - 30”之外的内容的示例
 

事件示例 2

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"范围内,则显示绿色的电池半边图标,否则显示红色的电池半边图标。它还将显示下面事件返回的数据。

pYYBAGOYuD6AIvC5AAAODIfuIyw574.png
device_battery_voltage 返回 3.901 的示例,在 2.9 - 4.5V 范围内
 

事件示例 3

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 设备,一个显示水分含量状态和原始数据,而另一个显示设备的电池电量和原始数据。

第3步:就是这样!

保存您的配置文件并重新启动您的魔镜显示器。每当您的粒子设备发布数据时,您应该会在魔镜上看到您的事件图标和属性弹出。

 
 
 
poYBAGOYuEyAVcMzAATueXeg7SE802.jpg
 
1 / 3工厂数据流式传输
 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !