步骤1:硬件设计
这将是我最简单的Instructable硬件之一。您甚至都不需要面包板,这些零件可以通过简单的跳线连接。尽管我讨厌为这个项目热粘合,但这是一个完美的选择。
使用的零件:
-Arduino PRO Micro
-继电器模块(如果您的负载消耗的电流超过10A,请不要使用图示的10A模块!)
-HLK-PM01-5V微型电源(低功耗,环保,无负载损耗《0.1W)。尽管看起来可能不像,但这是一个微型隔离电源(不是无变压器电源TPS,在所有Arduino/ESP项目中都应不惜一切代价避免使用)
-HC12收发器
-HC12 USB加密狗的另一端
-任何230V电源板
接线:
有些误入歧途的人认为中性线(BLUE)中的电流(在单相交流电源的情况下)低于热线(BROWN)中的电流。这是不正确的。 2个串联负载(一个是我们的电流表)上的单相交流网络中的电流完全相同。将ACS电流传感器放在零线的唯一好处是,如果您在负载断开时(通过开关或继电器)触摸它,则不会被屏蔽,因为另一方面有0的电流流过如果即使在关闭状态下也要触摸棕色电线(如果开关和继电器位于电流表之后),则电源电压会穿过您的身体到达地面。因此,从安全角度来看,可以说将ACS电流传感器放在中性线上比较安全,但是在隐蔽的环境中这并不重要,并且在设备开启时也不要触摸任何电线。
对于我的电路,主电源230V首先进入继电器(除非处于受控状态,否则它将始终处于闭合状态),然后我使用了一根刚性导线,该导线甚至可以轻松承受20安培的电流,从而将ACS与之连接在一起。这根电线还有助于在热粘合之前将组件固定在适当的位置。
我最初的想法是将整个电路构建到配电盘中,但是正如我的图片所示,它们使这些组件有意地不可拆卸(哦!)。所以我只剪了主电源线,然后将其放在接线盒中。
最后一点请注意,如果负载消耗的电流超过10A,则不应使用10A继电器。确保您已阅读设备的数据表或使用电流表进行测试以查看峰值电流是什么。
该项目的棘手部分是无线电通信,因为我的洗衣机和烘干机都在地下室。我已经尝试了一些解决方案以查看它们是否可行:
1,ESP32/8266 wifi-》并非所有wifi信号都被完全阻止的机会
2、2G/3G/4G-》没电了,死了
3,Lora-》正常工作,但是对于该项目来说是一个过大的杀伤力
4,433Mhz廉价发射器,它确实可以工作在12V的升压TX功率下但会干扰使用此频段的气象站和其他设备。最初,我没有计划在该版本中使用中继,否则就没有一个简单的发送器就足够了。
因此,我最终选择了HC12远程收发器作为该项目的理想选择。尽管那里的一些人声称距此只有几公里,但由于信号干扰,我未能在市区达到200米的距离,但这对于该项目而言却是完美的。该收发器支持许多不同的传输模式,从1200Bps-》 115200 Bps到最低,最低为1200,可以很好地与我的距离和障碍物配合使用。这个小模块让我印象深刻,它能够通过3个楼层和两个单元之间的多个门进行通信。
步骤2:HC12注意事项
本节是可选的,如果您对此内容不感兴趣,则可以跳过此部分,因为该模块仅适用于短距离开箱即用的设置。如果您的环境中的通信仍然有问题,请继续阅读。
我发现有许多教程和手册,其中提到HC12可以根据串行带宽自动调整无线电传输速度。
但是不幸的是,这不是事实。您不能只执行HC12.begin(1200)并期望通信以5000 bps的速度进行空中传输(这对于我们的应用程序是最佳的)。
必须首先将其置于编程模式,将SET引脚拉低至GND,然后发送AT + B1200命令,但是一旦完成,它就会写入闪存,您将不必再次更改它。
但也不要忘记第一次与设备通信时,您使用的是9600bps,将其设置为任何其他波特率时,您将变得乱码,必须相应地更改代码。
因此,从
1,让程序使用HC12.begin(9600)打开串行端口;
2,将HC12的编程器引脚(SET)连接到GND
3,您的程序将HC12.println(“ AT + B1200”)发送出去
4,此时设备设置为1200bps Serial/5000 bps Air,您将无需再次执行此过程(除非您的发射器坏了并且您必须编写一个新的程序)
5,您必须修改程序以每次使用HC12.begin(1200)来打开序列号。
从理论上讲,这使我想到了HC12节点可以相互重新编程。为此,您可以执行类似PROG_MODE的命令,并且远程Arduino接收到它后,它将HC12的编程器引脚下拉到地面,然后发送“ AT +任何带宽”命令,关闭其串行并以新的带宽重新打开,然后本地节点本质上是一样的。为了在修改波特率后重启,您的程序可以在启动时将HC12置于编程模式(通过将SET拉到GND),并执行AT + RX,模块以当前设置的带宽返回,并将其用作基值。
默认设置为FU3,9,600bps(8位数据,无校验,一个停止位),CH001(433.4MHz)。为了获得最远的通讯距离,可以将串行端口的波特率设置为较低。
我还购买了一些HC12 USB加密狗进行测试,这对他们有好处,因为它们不仅可以在框,但它们具有用于编程的简洁PROGRAMMER按钮。使用这些模块后,我遇到的一个问题是,我将它们置于未知状态(不同的通道,不同的波特率)几个月了,在将它们从抽屉中拉出后,它们不再起作用了,因此如果您更改参数,最明智的做法是在盒子上或模块上打印一个小标签,或记录您的项目,这样可以避免一个小时的QQ操作。
制造商声称,您始终可以通过将端口设置为9600Bps并将AT + DEFAULT发送到设备来重置设置,但不幸的是,这并不总是正确的:(
其中之一是我的加密狗可以正常工作,另一个在编程器模式下什么都没有响应,于是我被迫从其他设置的1200Bps手动进行尝试,尝试向其发送命令,但无济于事。我在网上搜索了一下之后,找到了解决方案,需要长时间按住PROGRAMMER(重置)按钮,虽然不需要这么长的时间,类似于WRTG硬重置的30,30,30的做法肯定会起作用:在设备运行时按住按钮5秒钟插上电源,拔下设备的电源,按住按钮,重新插上电源,然后将按钮重置为DEFAULT。
我有另一个物理HC12模块,我在其中更改了设置,但再也无法使其正常工作2 Arduino Megas,Leonardo和Pro Micro,因此除非您必须最好地更改参数事情是让它们保持默认状态。我已经更改了默认通道,因为稍后我可能会执行另一个HC12项目,并且不想干扰这个项目。
步骤3:Arduino代码
ACS 712可以测量直流电流,但也可以使用它来测量AC。我不会在其他文章中详细介绍它:
http://henrysbench.capnfatz.com/henrys-bench/ardu 。..
如果您不感兴趣如何完成操作,只需拿我的代码并调整电压(ACS 712 10A/20A/30A模块的110/230V和ACS类型值)即可。
监视2台设备的操作变得有些棘手。幸运的是,与这种B级干衣机一样,它在能源使用方面(不断消耗超过1200W)浪费了很多精力,它可以与洗衣机区分开来,而洗衣机在运行时从1W的待机待机功率变为500W(我要指出的是模式,例如90C上的白色清洗,甚至可以达到2KW,但我从未使用过)。该软件正在查询放大器,计算每秒许多CPU(或我们称为MCU)周期的功率,但是有一个问题,如前所述,洗衣机即使打了三分钟的神奇宝贝,也可能会降到非常低的功耗模式。在梦想中如果我们每5分钟将这个值拉一次,则很有可能是不准确的,因此在代码中实现了一种称为平滑的技术,该技术将这个值取100倍并取平均值。对于每个新值,将生成并除以所有数字的总和,生成平均值,然后将其用于平滑外围数据。因为每次取一个新值(例如等待100个新值)时都会进行这种平均,所以在计算此运行平均值时没有滞后时间。
测量数据:
1,洗衣机
128W的使用情况-》在电机旋转周期之间可以下降到-》 1W
0.5-1.5W待机
2,烘干机
超过1275W的使用量!
2W待机
可以定义以下状态:
if powercons_for_5mins 《 1.5W washing ready
if powercons_for_5mins 《 5W drying ready
if powercons_for_5mins 》 50W washer is running
if powercons_for_5mins 》 500W dryer is running
if powercons_for_5mins 》 1350W dryer+washer is running
消息本来可以每5分钟发送一次,但是我希望在负载打开时进行1秒的延迟以进行进一步的调试。还用这种方式检测到一些奇怪的异常。
由于电源电压从不改变,因此公式始终为P = 230 * I(测量安培)。
EOL_LOAD_WD,1,5.6,1350
完成洗涤和干燥后,系统仍将采样功耗,但不会再发送任何消息。最终通知将重复3次,例如:
EOL_LOAD_OFF,0,0,0
EOL_LOAD_OFF,0,0,0
EOL_LOAD_OFF,0,0,0
有关代码的一些注释:
由于中继只是一种额外的添加,因此很少(或永远不会)使用继电器的常闭状态可以延长其使用寿命。该代码将继电器设置为0,这意味着它将需要变为高电平以关闭设备(而不是将其打开)。
pinMode(POWER_RELAY, OUTPUT);
digitalWrite(POWER_RELAY, LOW);
该代码将计算功率并将其评估为发送特定事件的标准,但所有发送的数据仅用于调试,这是我们对3种状态采取的唯一操作:
if (Match(eolstate, “EOL_LOAD_WF”) != NULL)
system(“/home/pi/eol.sh wf”);
if (Match(eolstate, “EOL_LOAD_DF”) != NULL)
system(“/home/pi/eol.sh df”);
if (Match(eolstate, “EOL_LOAD_WDF”) != NULL)
system(“/home/pi/eol.sh wdf”);
其中F表示完成。这些状态取决于以前的状态(洗衣机/干衣机是否正在运行)。例如,洗衣机正在运行,干衣机已关闭,则代码将进入else if(PowerAVG 《500 && PowerAVG》 50)部分并打印EOL_LOAD_W,但这不是我们关心的,而是在洗涤完成时。然后,一旦机器完成并且在较长的时间段内功耗下降到1W,则代码进入其他情况,如果(PowerAVG 《10 && PowerAVG》 1)但由于先前状态eol_state》 = 1为1,它将打印EOL_LOAD_WDF消息并锁定(将状态设置为0)。下次进入此代码段时,当计算机物理关闭且负载低于1瓦时,负载将处于备用EOL_LOAD_S,将生成EOL_LOAD_OFF并将eol状态设置为0。到达实际打印段后,只要eol状态高于1,就会将数据发送出去并锁定。
通常,当我花大量时间分别设计硬件和软件并将电路放在一起时,我将无法工作必须花几天的时间来解决错误,而不是在这个项目中。只有四个小问题:
1,当没有负载时,ACS712会给出一个浮动读数,因为1天的整日测试表明,该读数在0.09A-》 0.16A之间。这类似于壁挂式功率计,在无负载时默认为0.10A。解决方案:我没有使用伪造的功率值并对此进行调整,而是输入了一个简单的if检查方法,即检查电流消耗是否低于0.20A,将其设置为0。
2,平滑代码存在问题由于样本数量而导致的AVG功率计算无法适合整数变量,例如1000W * 100 element = 100000,因此已更改为unsigned long,可以存储0到4,294,967,295的值,除法结果应始终较低,因此
3,需要用外部天线替换小线圈天线,我使用的是标准的2.4Ghz wifi天线(请记住,任何天线总比没有好。天线)。我最初使用线圈天线进行的测试有效,但是一旦设备组装完成,我的数据包就会大量丢失,这可能是由于高压电线的干扰。在楼上的接收器中,我还通过将一根简单的导线连接到线圈的末端来扩展线圈。
4,无论我在连接负载并关闭时的低电流忽略代码,有时都会出现电流尖峰,例如:
2019-04-17 13:42:12 =》 [EOL] Data received at 2019-04-17 13:42:12 =》 EOL_LOAD_S,0,0.22,1
2019-04-17 13:42:13 =》 [EOL] Data received at 2019-04-17 13:42:13 =》 EOL_LOAD_OFF,0,0.00,0
其中(也许是其他人打开/关闭设备的电源线上的某些波动?!)。无法忽略1W,因为这是确定空闲状态的方法,但是幸运的是,这些波动永远不会超过10 Watts才能使程序进入WDF状态,因此将其记录下来。
比使用1400W吹风机测试这种新电路更好的方法是:P在平滑代码中使用100个样本使我大约需要2分钟来完全传播功率变化,这意味着需要2分钟从负载打开状态到其实际值。一旦负载被关闭,它大约需要花费相同的时间下降到0。但是,我要注意的是,这是通过设备在HC12上发送数据的保持时间1000(1秒)来完成的。如果设备在1分钟内没有任何工作,则只需采样并保持循环,这些循环将发生得更快,而100个元素将不够。这就是为什么我将示例提交速率保留为1秒而不是每隔五分钟发送一次的主要原因。
在接收器端,Raspberry PI运行C基本代码并发挥不同的作用。
这次没有Closure和ToDo列表,因为我认为这个项目做得很好:-)
步骤1:硬件设计
这将是我最简单的Instructable硬件之一。您甚至都不需要面包板,这些零件可以通过简单的跳线连接。尽管我讨厌为这个项目热粘合,但这是一个完美的选择。
使用的零件:
-Arduino PRO Micro
-ACS 712电流传感器:20A
-继电器模块(如果您的负载消耗的电流超过10A,请不要使用图示的10A模块!)
-HLK-PM01-5V微型电源(低功耗,环保,无负载损耗《0.1W)。尽管看起来可能不像,但这是一个微型隔离电源(不是无变压器电源TPS,在所有Arduino/ESP项目中都应不惜一切代价避免使用)
-HC12收发器
-HC12 USB加密狗的另一端
-任何230V电源板
接线:
有些误入歧途的人认为中性线(BLUE)中的电流(在单相交流电源的情况下)低于热线(BROWN)中的电流。这是不正确的。 2个串联负载(一个是我们的电流表)上的单相交流网络中的电流完全相同。将ACS电流传感器放在零线的唯一好处是,如果您在负载断开时(通过开关或继电器)触摸它,则不会被屏蔽,因为另一方面有0的电流流过如果即使在关闭状态下也要触摸棕色电线(如果开关和继电器位于电流表之后),则电源电压会穿过您的身体到达地面。因此,从安全角度来看,可以说将ACS电流传感器放在中性线上比较安全,但是在隐蔽的环境中这并不重要,并且在设备开启时也不要触摸任何电线。
对于我的电路,主电源230V首先进入继电器(除非处于受控状态,否则它将始终处于闭合状态),然后我使用了一根刚性导线,该导线甚至可以轻松承受20安培的电流,从而将ACS与之连接在一起。这根电线还有助于在热粘合之前将组件固定在适当的位置。
我最初的想法是将整个电路构建到配电盘中,但是正如我的图片所示,它们使这些组件有意地不可拆卸(哦!)。所以我只剪了主电源线,然后将其放在接线盒中。
最后一点请注意,如果负载消耗的电流超过10A,则不应使用10A继电器。确保您已阅读设备的数据表或使用电流表进行测试以查看峰值电流是什么。
该项目的棘手部分是无线电通信,因为我的洗衣机和烘干机都在地下室。我已经尝试了一些解决方案以查看它们是否可行:
1,ESP32/8266 wifi-》并非所有wifi信号都被完全阻止的机会
2、2G/3G/4G-》没电了,死了
3,Lora-》正常工作,但是对于该项目来说是一个过大的杀伤力
4,433Mhz廉价发射器,它确实可以工作在12V的升压TX功率下但会干扰使用此频段的气象站和其他设备。最初,我没有计划在该版本中使用中继,否则就没有一个简单的发送器就足够了。
因此,我最终选择了HC12远程收发器作为该项目的理想选择。尽管那里的一些人声称距此只有几公里,但由于信号干扰,我未能在市区达到200米的距离,但这对于该项目而言却是完美的。该收发器支持许多不同的传输模式,从1200Bps-》 115200 Bps到最低,最低为1200,可以很好地与我的距离和障碍物配合使用。这个小模块让我印象深刻,它能够通过3个楼层和两个单元之间的多个门进行通信。
步骤2:HC12注意事项
本节是可选的,如果您对此内容不感兴趣,则可以跳过此部分,因为该模块仅适用于短距离开箱即用的设置。如果您的环境中的通信仍然有问题,请继续阅读。
我发现有许多教程和手册,其中提到HC12可以根据串行带宽自动调整无线电传输速度。
但是不幸的是,这不是事实。您不能只执行HC12.begin(1200)并期望通信以5000 bps的速度进行空中传输(这对于我们的应用程序是最佳的)。
必须首先将其置于编程模式,将SET引脚拉低至GND,然后发送AT + B1200命令,但是一旦完成,它就会写入闪存,您将不必再次更改它。
但也不要忘记第一次与设备通信时,您使用的是9600bps,将其设置为任何其他波特率时,您将变得乱码,必须相应地更改代码。
因此,从
1,让程序使用HC12.begin(9600)打开串行端口;
2,将HC12的编程器引脚(SET)连接到GND
3,您的程序将HC12.println(“ AT + B1200”)发送出去
4,此时设备设置为1200bps Serial/5000 bps Air,您将无需再次执行此过程(除非您的发射器坏了并且您必须编写一个新的程序)
5,您必须修改程序以每次使用HC12.begin(1200)来打开序列号。
从理论上讲,这使我想到了HC12节点可以相互重新编程。为此,您可以执行类似PROG_MODE的命令,并且远程Arduino接收到它后,它将HC12的编程器引脚下拉到地面,然后发送“ AT +任何带宽”命令,关闭其串行并以新的带宽重新打开,然后本地节点本质上是一样的。为了在修改波特率后重启,您的程序可以在启动时将HC12置于编程模式(通过将SET拉到GND),并执行AT + RX,模块以当前设置的带宽返回,并将其用作基值。
默认设置为FU3,9,600bps(8位数据,无校验,一个停止位),CH001(433.4MHz)。为了获得最远的通讯距离,可以将串行端口的波特率设置为较低。
我还购买了一些HC12 USB加密狗进行测试,这对他们有好处,因为它们不仅可以在框,但它们具有用于编程的简洁PROGRAMMER按钮。使用这些模块后,我遇到的一个问题是,我将它们置于未知状态(不同的通道,不同的波特率)几个月了,在将它们从抽屉中拉出后,它们不再起作用了,因此如果您更改参数,最明智的做法是在盒子上或模块上打印一个小标签,或记录您的项目,这样可以避免一个小时的QQ操作。
制造商声称,您始终可以通过将端口设置为9600Bps并将AT + DEFAULT发送到设备来重置设置,但不幸的是,这并不总是正确的:(
其中之一是我的加密狗可以正常工作,另一个在编程器模式下什么都没有响应,于是我被迫从其他设置的1200Bps手动进行尝试,尝试向其发送命令,但无济于事。我在网上搜索了一下之后,找到了解决方案,需要长时间按住PROGRAMMER(重置)按钮,虽然不需要这么长的时间,类似于WRTG硬重置的30,30,30的做法肯定会起作用:在设备运行时按住按钮5秒钟插上电源,拔下设备的电源,按住按钮,重新插上电源,然后将按钮重置为DEFAULT。
我有另一个物理HC12模块,我在其中更改了设置,但再也无法使其正常工作2 Arduino Megas,Leonardo和Pro Micro,因此除非您必须最好地更改参数事情是让它们保持默认状态。我已经更改了默认通道,因为稍后我可能会执行另一个HC12项目,并且不想干扰这个项目。
步骤3:Arduino代码
ACS 712可以测量直流电流,但也可以使用它来测量AC。我不会在其他文章中详细介绍它:
http://henrysbench.capnfatz.com/henrys-bench/ardu 。..
如果您不感兴趣如何完成操作,只需拿我的代码并调整电压(ACS 712 10A/20A/30A模块的110/230V和ACS类型值)即可。
监视2台设备的操作变得有些棘手。幸运的是,与这种B级干衣机一样,它在能源使用方面(不断消耗超过1200W)浪费了很多精力,它可以与洗衣机区分开来,而洗衣机在运行时从1W的待机待机功率变为500W(我要指出的是模式,例如90C上的白色清洗,甚至可以达到2KW,但我从未使用过)。该软件正在查询放大器,计算每秒许多CPU(或我们称为MCU)周期的功率,但是有一个问题,如前所述,洗衣机即使打了三分钟的神奇宝贝,也可能会降到非常低的功耗模式。在梦想中如果我们每5分钟将这个值拉一次,则很有可能是不准确的,因此在代码中实现了一种称为平滑的技术,该技术将这个值取100倍并取平均值。对于每个新值,将生成并除以所有数字的总和,生成平均值,然后将其用于平滑外围数据。因为每次取一个新值(例如等待100个新值)时都会进行这种平均,所以在计算此运行平均值时没有滞后时间。
测量数据:
1,洗衣机
128W的使用情况-》在电机旋转周期之间可以下降到-》 1W
0.5-1.5W待机
2,烘干机
超过1275W的使用量!
2W待机
可以定义以下状态:
if powercons_for_5mins 《 1.5W washing ready
if powercons_for_5mins 《 5W drying ready
if powercons_for_5mins 》 50W washer is running
if powercons_for_5mins 》 500W dryer is running
if powercons_for_5mins 》 1350W dryer+washer is running
消息本来可以每5分钟发送一次,但是我希望在负载打开时进行1秒的延迟以进行进一步的调试。还用这种方式检测到一些奇怪的异常。
由于电源电压从不改变,因此公式始终为P = 230 * I(测量安培)。
EOL_LOAD_WD,1,5.6,1350
完成洗涤和干燥后,系统仍将采样功耗,但不会再发送任何消息。最终通知将重复3次,例如:
EOL_LOAD_OFF,0,0,0
EOL_LOAD_OFF,0,0,0
EOL_LOAD_OFF,0,0,0
有关代码的一些注释:
由于中继只是一种额外的添加,因此很少(或永远不会)使用继电器的常闭状态可以延长其使用寿命。该代码将继电器设置为0,这意味着它将需要变为高电平以关闭设备(而不是将其打开)。
pinMode(POWER_RELAY, OUTPUT);
digitalWrite(POWER_RELAY, LOW);
该代码将计算功率并将其评估为发送特定事件的标准,但所有发送的数据仅用于调试,这是我们对3种状态采取的唯一操作:
if (Match(eolstate, “EOL_LOAD_WF”) != NULL)
system(“/home/pi/eol.sh wf”);
if (Match(eolstate, “EOL_LOAD_DF”) != NULL)
system(“/home/pi/eol.sh df”);
if (Match(eolstate, “EOL_LOAD_WDF”) != NULL)
system(“/home/pi/eol.sh wdf”);
其中F表示完成。这些状态取决于以前的状态(洗衣机/干衣机是否正在运行)。例如,洗衣机正在运行,干衣机已关闭,则代码将进入else if(PowerAVG 《500 && PowerAVG》 50)部分并打印EOL_LOAD_W,但这不是我们关心的,而是在洗涤完成时。然后,一旦机器完成并且在较长的时间段内功耗下降到1W,则代码进入其他情况,如果(PowerAVG 《10 && PowerAVG》 1)但由于先前状态eol_state》 = 1为1,它将打印EOL_LOAD_WDF消息并锁定(将状态设置为0)。下次进入此代码段时,当计算机物理关闭且负载低于1瓦时,负载将处于备用EOL_LOAD_S,将生成EOL_LOAD_OFF并将eol状态设置为0。到达实际打印段后,只要eol状态高于1,就会将数据发送出去并锁定。
通常,当我花大量时间分别设计硬件和软件并将电路放在一起时,我将无法工作必须花几天的时间来解决错误,而不是在这个项目中。只有四个小问题:
1,当没有负载时,ACS712会给出一个浮动读数,因为1天的整日测试表明,该读数在0.09A-》 0.16A之间。这类似于壁挂式功率计,在无负载时默认为0.10A。解决方案:我没有使用伪造的功率值并对此进行调整,而是输入了一个简单的if检查方法,即检查电流消耗是否低于0.20A,将其设置为0。
2,平滑代码存在问题由于样本数量而导致的AVG功率计算无法适合整数变量,例如1000W * 100 element = 100000,因此已更改为unsigned long,可以存储0到4,294,967,295的值,除法结果应始终较低,因此
3,需要用外部天线替换小线圈天线,我使用的是标准的2.4Ghz wifi天线(请记住,任何天线总比没有好。天线)。我最初使用线圈天线进行的测试有效,但是一旦设备组装完成,我的数据包就会大量丢失,这可能是由于高压电线的干扰。在楼上的接收器中,我还通过将一根简单的导线连接到线圈的末端来扩展线圈。
4,无论我在连接负载并关闭时的低电流忽略代码,有时都会出现电流尖峰,例如:
2019-04-17 13:42:12 =》 [EOL] Data received at 2019-04-17 13:42:12 =》 EOL_LOAD_S,0,0.22,1
2019-04-17 13:42:13 =》 [EOL] Data received at 2019-04-17 13:42:13 =》 EOL_LOAD_OFF,0,0.00,0
其中(也许是其他人打开/关闭设备的电源线上的某些波动?!)。无法忽略1W,因为这是确定空闲状态的方法,但是幸运的是,这些波动永远不会超过10 Watts才能使程序进入WDF状态,因此将其记录下来。
比使用1400W吹风机测试这种新电路更好的方法是:P在平滑代码中使用100个样本使我大约需要2分钟来完全传播功率变化,这意味着需要2分钟从负载打开状态到其实际值。一旦负载被关闭,它大约需要花费相同的时间下降到0。但是,我要注意的是,这是通过设备在HC12上发送数据的保持时间1000(1秒)来完成的。如果设备在1分钟内没有任何工作,则只需采样并保持循环,这些循环将发生得更快,而100个元素将不够。这就是为什么我将示例提交速率保留为1秒而不是每隔五分钟发送一次的主要原因。
在接收器端,Raspberry PI运行C基本代码并发挥不同的作用。
-
洗衣机
+关注
关注
11文章
678浏览量
43164 -
监控器
+关注
关注
1文章
265浏览量
26511 -
Arduino
+关注
关注
187文章
6461浏览量
186566
发布评论请先 登录
相关推荐
评论