Sigfox kWh Meter
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
| ||||
| ||||
|
关于这个项目
1) 简而言之
本教程将帮助您创建一个将旧感应式功率计连接到 Internet 的设备。它究竟是一种什么样的仪表?它是最古老但仍在使用的功率计。它有一个转盘,它的四周涂有反光漆,并带有一点黑色条纹。每次看到那个黑色的部分经过,就代表完成了一个旋转。本项目120匝相当于消耗1度电。
2) 微控制器、物联网网络和其他使用的东西
所以,我们需要 Arduino MKRFOX1200 , 其中有 Sigfox (这就是网络)连接。 Sigfox 是 LPWAN 网络,允许将任何东西连接到互联网。该网络在 ISM 频段 868 MHz 下工作,允许我们每天上行发送 140 条消息(每条 12 字节的有效载荷)。但这不仅仅与网络有关。 Sigfox 为我们提供了自定义处理消息方式的机会。事实上,所有消息都存储在 Sigfox 云中,我们可以从那里通过定义它们的目的地 - 回调等来检索它们。
事情说:
ThingSpeak 是一个物联网平台,用于用户友好地显示数据。在这个项目中,Sigfox 回调目标在转移发生后立即使用图表显示收到的消费。
一个 更多 时间 - 哪个 电动 能源 力量 消费 米 将 我们 使用?
这个:
3) 实用的东西
- 1. 连接 全部 列出 零件 作为 显示 在 接线 图表。 我不会解释连接背后的理论,如果有什么不清楚的,请随时提问。不要忘记给它一些果汁:)(USB 移动电源,或您的笔记本电脑 USB 输出等)。
- 2. 写 一 代码。 您会在本页底部找到附加的代码。同样,如果您不清楚代码中的任何内容,请随时提问。
- 3. 创建 事说 渠道 与 分析 .在 https://thingspeak.com/ 上注册并创建频道号。 1 通过为其命名、描述和字段 1 - Consumption. 创建频道号2 基于通道号1,但名称不同。然后在通道号上选择 Matlab 分析选项。 2 并编写以下代码:
readChannelID =TYPE_CHANNEL1_ID_HERE;readAPIKey ='TYPE_CHANNEL1_READ_API_KEY_HERE'; writeChannelID =TYPE_CHANNEL2_ID_HERE;writeAPIKey ='TYPE_CHANNEL2_API_KEY_HERE';data =thingSpeakRead(readChannelID, 'ReadKey', readAPIKey,'OutputFormat','table'); analysisData =data;analyzedData.('Consumption') =(data.('Consumption') + YOUR_CURRENT_CONSUMPTION_STATUS_IN_WH)/1000;thingSpeakWrite(writeChannelID,analyzedData, 'WriteKey', writeAPIKey);
- 4. 创建 Sigfox 回调。 我希望您已经在后端注册了您的 MKRFOX1200,所以我将跳过有关如何执行此操作的教程。登录 https://backend.sigfox.com/ 后,转到回调部分并按如下方式创建一个:
- 类型:数据上行
- 频道:网址
- 自定义负载配置:status::uint:32:little-endian
- 网址模式:
https://api.thingspeak.com/update?api_key=
EXPLAINED1
&field1={customData#status}
- 使用 HTTP 方法:GET
*EXPLAINED1 - 将其替换为 Channel 1 ThingSpeak WriteApiKey
4) 设备安装&背后的逻辑
所以你已经完成了这个项目中最困难的部分。现在用双面胶带将 CNY70 传感器连接到功率计的玻璃上 - 注意将其放在旋转盘的中心(图安装 )。接下来,按两次设备按钮并进行校准 - 如果传感器读取磁盘的反射部分,则二极管应亮起。如果传感器读取黑色条纹,二极管应该熄灭。校准成功后,再按一次设备按钮。现在设备开始读取功耗并使用 Sigfox 每 30 分钟将此值发送到 Internet。读取精度设置为 25 Wh(在我们的例子中每 3 个磁盘转动一次)。
5) 最终输出
完成所有这些步骤后,您将能够在如下漂亮的 ThingSpeak 图表中看到您的实际电能消耗。
代码
- Sigfox kWh 电能功率计
Sigfox kWh 电能功率计Arduino
这是使您的功率计智能化的 .ino 代码。#includeint DIODE =13;int BTN =12;int BTN_state =0;int BTN_prev =0;int BTN_NR_OF_PRESS =0;int CALC =0;unsigned long i =0;uint32_t CONSUMPTION =0;boolean SHINE =false;boolean KARDAN =false;void setup() { pinMode(DIODE, OUTPUT); pinMode(BTN,输入); Serial.begin(9600); if (!SigFox.begin()) { Serial.println("SigFox 模块不可用。"); }}void loop() { int senzor =analogRead(A3); BTN_state =digitalRead(BTN); if (BTN_state !=BTN_prev) { if (BTN_state ==HIGH) { BTN_NR_OF_PRESS++; } } BTN_prev =BTN_state; if (BTN_NR_OF_PRESS % 3 ==0) { if (senzor> 300 &&senzor <950) { digitalWrite(DIODE, HIGH); } else { 数字写入(二极管,低); } } if (senzor <1020 &&SHINE ==false) { SHINE =true; } if (senzor> 1020 &&SHINE ==true &&BTN_NR_OF_PRESS ==4) { CALC++;闪耀 =假; } if (CALC % 3 ==0 &&CALC !=0 &&KARDAN ==false) { KARDAN =true;消费 +=25; } if (CALC % 3 !=0) { KARDAN =false; } if (BTN_NR_OF_PRESS % 4 ==0) { digitalWrite(DIODE, LOW); if (SHINE ==false) { for (millis(); (millis() - i)> 1800000;) { i =millis(); SigFox.debug(); SigFox.beginPacket(); SigFox.write(消费); SigFox.endPacket(); } } }}
示意图
MKRFOX1200与CNY70等东西的连接示意图。制造工艺