0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino洗衣机监控器的制作教程

454398 来源:wv 2019-10-25 10:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤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基本代码并发挥不同的作用。

这次没有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基本代码并发挥不同的作用。

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

    关注

    13

    文章

    694

    浏览量

    45262
  • 监控器
    +关注

    关注

    1

    文章

    373

    浏览量

    28971
  • Arduino
    +关注

    关注

    190

    文章

    6527

    浏览量

    197467
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    面向高效可靠需求的智能洗衣机 MOSFET 选型策略与器件适配手册

    随着智能家居理念普及与节能静音需求升级,智能洗衣机已成为现代家庭核心电器。电源与电机驱动系统作为整机“心脏与肌肉”,为排水泵、循环泵、门锁、阀等关键负载提供精准电能转换与控制,而功率MOSFET
    的头像 发表于 03-23 09:13 425次阅读
    面向高效可靠需求的智能<b class='flag-5'>洗衣机</b> MOSFET 选型策略与器件适配手册

    贵公司的滚筒洗衣机OOB检测未按预期

    本帖最后由 lgh050706 于 2025-12-3 08:37 编辑 我在使用贵公司提供的滚筒洗衣机库代码调试程序时发现,在不同的负载时,它对应的OOB值与LODA值是没有太大的变化。 按
    发表于 12-02 15:13

    雅特力AT32F413芯片推动洗衣机节能升级

    雅特力AT32F413系列MCU以150MHz Cortex-M4内核和无感FOC算法,实现洗衣机直驱电机精准控制,将运行噪音降至45dB以下,能耗达国标一级能效。其集成多重安全防护与智能交互接口,助力高端洗衣机实现静音、节能与智能化升级。
    的头像 发表于 11-04 09:45 777次阅读
    雅特力AT32F413芯片推动<b class='flag-5'>洗衣机</b>节能升级

    浮思特 | 智能洗衣背后的静默力量,ABOV单片如何实现精准控制?

    日常生活中,洗衣机已成为不可或缺的家电产品。随着技术进步,现代洗衣机不仅具备基础的洗涤功能,还融入了触摸控制、多电机驱动、烘干一体等智能化技术。这些复杂功能背后,离不开高性能单片的精密控制。作为
    的头像 发表于 10-16 09:52 781次阅读
    浮思特 | 智能<b class='flag-5'>洗衣</b>背后的静默力量,ABOV单片<b class='flag-5'>机</b>如何实现精准控制?

    晶台光耦KL817:智能洗衣机高效稳定运行的核心密码

    晶台光耦KL817在智能洗衣机中扮演着电路隔离与信号传输的关键角色。其通过光电转换原理,将控制板与强电模块(如电机、加热)完全隔离,避免高压干扰损坏主板芯片。以KL817为例,其响应速度达10μs
    的头像 发表于 09-18 16:43 854次阅读
    晶台光耦KL817:智能<b class='flag-5'>洗衣机</b>高效稳定运行的核心密码

    洗衣机的智能升级集成方案WT2606B屏幕驱动+AI语音控制

    2025,洗衣机市场正从功能满足转向体验升级,企业正面临哪些转型难点?一文为您解读洗衣机行业智能化升级之路。
    的头像 发表于 09-15 17:32 1028次阅读

    【应用方案】“会呼吸”的洗衣机:艾为灯语®让光与你“对话”

    你是否想过,洗衣机会用光的语言与您对话?当科技被赋予温度,最日常的洗衣时刻也开始有了诗意。艾为灯语助力智能家电系列,让洗衣机从冰冷的金属外壳中苏醒,用光的语言与你温柔对话。这不是一次简单的功能升级
    的头像 发表于 09-11 18:56 1027次阅读
    【应用方案】“会呼吸”的<b class='flag-5'>洗衣机</b>:艾为灯语®让光与你“对话”

    【应用方案】“会唱歌” 懂“陪伴”的洗衣机:艾为国民神仙算法SKTune®重塑家务体验

    当你周末在家打扫卫生时,洗衣机传来的不再只有电机运转的轰鸣声和水流声。转而代之的是悦耳动听的声音:"下午好,检测到您投入了3件衣物,建议选择'快洗'模式。想听点音乐陪伴
    的头像 发表于 08-29 08:10 876次阅读
    【应用方案】“会唱歌” 懂“陪伴”的<b class='flag-5'>洗衣机</b>:艾为国民神仙算法SKTune®重塑家务体验

    婴儿洗衣机MCU控制方案,迷你洗衣机方案

    在现代家庭中,婴儿衣物的清洁与护理成为家长们关注的焦点。由于婴儿肌肤娇嫩,对衣物的清洁度和安全性要求极高,因此需要一款专门针对婴儿衣物的洗衣机。迷你型母婴洗衣机应运而生,它采用辉芒微 8 位 MCU
    的头像 发表于 08-28 15:55 1068次阅读
    婴儿<b class='flag-5'>洗衣机</b>MCU控制方案,迷你<b class='flag-5'>洗衣机</b>方案

    广州唯创电子WTVxxx-B002语音芯片:重塑智能洗衣机的交互体验与核心价值

    在智能家居蓬勃发展的浪潮中,智能洗衣机已从单纯的功能设备进化为提升生活品质的关键角色。广州唯创电子WTVxxx-B002语音芯片,作为智能洗衣系统的“智慧声核”,凭借其卓越性能与丰富功能,正引领智能
    的头像 发表于 08-04 08:25 827次阅读
    广州唯创电子WTVxxx-B002语音芯片:重塑智能<b class='flag-5'>洗衣机</b>的交互体验与核心价值

    霍尔芯片在洗衣机中的应用

    霍尔芯片是一种基于霍尔效应的磁传感,能通过检测磁场变化实现非接触式的位置、速度等参数测量,在洗衣机中有着重要且广泛的应用,主要体现在以下几个关键场景: 一、电机转速与转向控制 洗衣机的核心部件
    的头像 发表于 07-15 15:46 1109次阅读

    人脸和手势识别模组 用BW21-CBV-Kit设计洗衣机远程控制面板

    以下作品由安信可社区用户 无垠的广袤 制作 本文介绍了安信可 BW21-CBV-Kit 开发板结合扩展板,实现了基于 HTTP 协议的洗衣机网页控制面板,可模拟远程控制洗衣机的运行、暂停和停止状态
    的头像 发表于 07-15 14:34 799次阅读
    人脸和手势识别模组 用BW21-CBV-Kit设计<b class='flag-5'>洗衣机</b>远程控制面板

    工业洗衣机远程监控运维管理系统方案

    ,需要服务的售后工作量就越来越多,带来庞大的人力成本与运维成本,成为企业数字化转型必须解决的重要问题之一。 对此,数之能提供工业洗衣机远程监控运维管理系统方案,以物联网、大数据、云计算等技术为核心,构建智能化
    的头像 发表于 06-19 10:58 629次阅读
    工业<b class='flag-5'>洗衣机</b>远程<b class='flag-5'>监控</b>运维管理系统方案

    洗衣机高效运转的幕后英雄:捷捷微可控硅与光耦技术解析

    在现代家居生活里,洗衣机早已是不可或缺的角色。而在这看似寻常的家电背后,捷捷微电的可控硅与光耦产品在悄然发挥着关键作用,为洗衣机的高效稳定运行注入强大动力。今天,就让我们走进捷捷微电的世界,探寻它们
    的头像 发表于 06-11 14:20 1113次阅读
    <b class='flag-5'>洗衣机</b>高效运转的幕后英雄:捷捷微可控硅与光耦技术解析

    ABP2液体压力传感,智能洗衣机水位检测首选!超高精度0.25%,让洗衣更智能!

    本文将介绍的是基于霍尼韦尔一款低成本的压力ABP2系列,在全自动洗衣机上水位检测的应用。全自动洗衣机是通过压力传感来判定合适的水位,精确控制用水量,来达到节约用水,合理洗涤剂用量,优化洗涤效果
    的头像 发表于 05-19 13:16 1693次阅读
    ABP2液体压力传感<b class='flag-5'>器</b>,智能<b class='flag-5'>洗衣机</b>水位检测首选!超高精度0.25%,让<b class='flag-5'>洗衣</b>更智能!