- 基于IoT的吊扇调节器的工作
- 交流风扇调速电路所需的材料
- 交流风扇调节器控制电路
- 物联网控制的吊扇稳压器的PCB设计
- 设置Firebase帐户
- Arduino代码通过NodeMCU控制风扇调节器
- 使用MIT App Inventor构建风扇调节器应用
- 测试基于ESP32的触摸传感器电路
- 进一步增强
在本文中,我们将构建一个交流风扇调节器电路,该电路能够通过限制流向风扇的电流来控制风扇的速度。术语“ AC吊扇调节器”一词令人a舌,因此从现在开始我们将其简称为风扇调节器。甲风扇调节器电路是用于增加或根据需要减小的AC风扇/电机的速度的重要组成部分。几年前,您可以在传统的电阻型风扇调节器或电子调节器之间进行选择,但如今,它们已全部由电子风扇调节器电路取代。
在上一篇文章中,我们向您展示了如何使用Arduino构建交流相角控制电路,该电路能够控制白炽灯泡的亮度并控制风扇的速度,从而将其提升一个档次在本文中,我们将构建基于IoT的AC吊扇稳压器电路。借助Android应用程序,它可以控制 吊扇的速度。
基于IoT的吊扇调节器的工作
风扇调节器电路是一种简单的电路,能够通过改变交流正弦波的相角或简单地控制TRIAC来控制交流吊扇的速度。正如我在带555定时器和PWM的交流相角控制中提到交流风扇调节器电路的所有基本工作原理一样,我们将专注于电路的实际构建。同样,如果您想了解更多有关该主题的信息,请同时查看有关使用Arduino和TRIAC Project的AC Light Dimmer的文章。
上面的基本框图显示了电路的实际工作原理。如前所述,我们将在Firebase IoT和NodeMCU的帮助下生成PWM信号 ,然后将PWM信号通过低通滤波器,该滤波器将控制MOSFET的栅极,然后由555定时器控制实际的TRIAC借助光耦合器。
在这种情况下,Android应用程序改变了该值firebaseDB和ESP不断地检查正在发生的任何变化是DB,如果发生任何变化是被推倒和值转换为PWM信号
交流风扇调速电路所需的材料
下图显示了用于构建此电路的材料,因为它是由非常通用的组件制成的,因此您应该能够在本地的业余爱好商店中找到所有列出的材料。
自从其演示项目以来,我还在下表中列出了类型和数量的组件,我正在使用单个通道来执行此操作。但是,可以根据需要轻松放大电路。
- 螺丝端子5.04mm连接器-2
- 公头2.54mm连接器-1
- 56K,1W电阻器-2
- 1N4007二极管-4
- 0.1uF,25V电容器-2
- AMS1117稳压器-1
- 1000uF,25V电容器-1
- 直流电源插孔-1
- 1K电阻-1
- 470R电阻器-2
- 47R电阻器-2
- 82 K电阻器-1
- 10 K电阻器-5
- PC817光耦合器-1
- NE7555 IC-1
- MOC3021光电TriacDrive-1
- IRF9540 MOSFET-1
- 3.3uF电容器-1
- 连接线-5
- 0.1uF,1KV电容器-1
- ESP8266(ESP-12E)单片机-1
交流风扇调节器控制电路
IoT风扇调节器电路的原理图如下所示,该电路非常简单,并使用通用组件来实现相角控制。
该电路由精心设计的组件组成。我将逐一介绍并解释每个区块。
ESP8266(ESP-12E)Wi-Fi芯片:
这是电路的第一部分,也是我们进行了很多更改的部分,其他部分则保持不变,即,如果您已阅读上一篇文章。
在本节中,我们拉高了使能,复位和GPIO0引脚,此外,我们拉低了GPIO15和接地引脚,这是芯片数据手册中推荐的。至于编程,我们放置了一个3pin接头,露出TX,RX和接地引脚,通过它们我们可以很容易地对芯片进行编程。另外,我们已经放置了一个触觉开关以将GPIO0接地,这是将ESP置于编程模式的必要步骤。我们选择了GPIO14引脚作为输出,通过该引脚产生PWM信号。
注意!在编程时,我们必须按下按钮,并使用DC桶形插孔为设备供电。
零交叉检测电路:
首先,在我们的清单上是由两个56K,1W电阻器,四个1n4007二极管和一个PC817光耦合器组成的过零检测电路。该电路负责将过零信号提供给555定时器IC。另外,我们已将相位和中性信号录音下来,以便在TRIAC部分中进一步使用它。
AMS1117-3.3V稳压器:
AMS1117稳压器用于为电路供电,该电路负责为整个电路供电。此外,我们使用了两个1000uF电容器和一个0.1uF电容器作为AMS1117-3.3 IC的去耦电容器。
带NE555定时器的控制电路:
上图显示了555定时器控制电路,555被配置为单稳态配置,因此,当过零检测电路的触发信号击中触发器时,555定时器将在电阻器的帮助下开始为电容器充电(通常),但是我们的电路中有一个MOSFET代替了一个电阻,并且通过控制MOSFET的栅极,我们控制了流向电容器的电流,这就是我们控制充电时间的原因,因此我们控制了555个定时器的输出。
TRIAC和TRIAC驱动器电路:
双向可控硅(TRIAC)充当主开关,实际上可接通和断开,从而控制AC信号的输出。使用MOC3021光电双向可控硅驱动器来驱动TRIAC,它不仅驱动TRIAC,而且还提供光隔离,0.01uF 2KV高压电容器和47R电阻器构成了缓冲电路,从而保护了我们的电路免受当它连接到感性负载时会发生高压尖峰。交流尖峰信号的非正弦特性是造成尖峰的原因。而且,它负责功率因数问题,但这是另一篇文章的主题。
低通滤波器和P沟道MOSFET(在电路中充当电阻器):
82K电阻器和3.3uF电容器形成低通滤波器,该低通滤波器负责平滑Arduino产生的高频PWM信号。如前所述,P沟道MOSFET用作可变电阻,它控制电容器的充电时间。控制信号是由低通滤波器滤除的PWM信号。
物联网控制的吊扇稳压器的PCB设计
IoT吊扇稳压器电路的PCB设计在单侧板上。我已经使用Eagle PCB设计软件来设计我的PCB,但是您可以使用任何选择的设计软件。我的电路板设计的2D图像如下所示。
充分的接地填充可用于所有组件之间的正确接地。3.3V DC输入和220 V AC输入在左侧填充,输出位于PCB的右侧。可以从下面的链接下载Eagle以及Gerber的完整设计文件。
- 吊扇稳压器电路的PCB设计,GERBER和PDF文件
手工PCB:
为方便起见,我制作了手工制作的PCB版本,如下所示。
有了这个,我们的硬件就可以按照电路图准备好了,现在我们必须准备好我们的android应用程序和Google firebase。
设置Firebase帐户
下一步,我们需要设置一个Firebase帐户。所有通信将通过firebase帐户进行。要设置Firebase帐户,请访问Firebase网站,然后单击“开始使用”。
单击后,您需要使用您的Google帐户登录,并且
登录后,需要通过单击创建项目按钮来创建项目。
这样做会将您重定向到类似于上图的页面。键入您的项目的名称,然后单击继续。
再次单击继续。
完成后,您需要通过单击复选框来同意某些条款和条件,接下来,您需要单击创建项目按钮。
如果您正确完成了所有操作,则一段时间后,您会收到一条类似这样的消息。完成后,您的Firebase控制台应如下图所示。
现在我们需要从这里收集两件事。为此,您需要单击刚刚创建的项目的名称。对我来说,它是CelingFanRegulator,单击它后,您将获得类似于下图的仪表板。
单击设置,然后单击项目设置,您将获得的页面如下图所示。
单击 服务帐户-> 数据库密钥。
复制数据库机密,并将其保存在某个地方以备后用。
接下来,单击实时数据库并复制URL。还保留以备后用。
仅此而已,这就是火力的一面。
Arduino代码通过NodeMCU控制风扇调节器
一个简单的Arduino代码负责处理Firebase和ESP-12E模块之间的通信,下面给出电路和代码说明,首先,我们定义所需的所有必需库,您可以从给定链接中下载以下库Arduino JSON库和FirebaseArduino库
#包括
我们将使用 FirebaseArduino 库与 Firebase 建立通信。
//设置这些以运行示例。#define FIREBASE_HOST“ celingfanregulator.firebaseio.com” #define FIREBASE_AUTH“ 1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr” #define WIFI_SSID“您的SSID” #define WIFI_PASSWORD“您的通行证”
接下来,我们定义了火力主机,火力权威性, 我们曾当我们使火力帐户之前保存。然后,我们定义了路由器的SSID和密码。
字符串Resivedata; #定义PWM_PIN 14;
接下来,我们定义了一个字符串类型变量 Resivedata ,所有数据都将存储在其中,并且我们还定义了 PWM_PIN 来获取PWM输出。
接下来,在 void setup() 部分中,我们进行必要的操作,
Serial.begin(9600); pinMode(PWM_PIN,输出); WiFi.begin(WIFI_SSID,WIFI_PASSWORD); Serial.print(“ connecting”); while(WiFi.status()!= WL_CONNECTED){Serial.print(“。”);延迟(500); } Serial.println(); Serial.print(“ connected:”); Serial.println(WiFi.localIP()); Firebase.begin(FIREBASE_HOST,FIREBASE_AUTH); Firebase.setString(“ Variable / Value”,“ FirstTestStrig”);
首先,我们通过调用 Serial.begin() 函数来启用串行。接下来,我们将PWM引脚设置为OUTPUT。我们借助 WiFi.begin() 函数开始Wi-Fi连接,并在函数中传递SSID和密码。我们在 while循环中 检查连接状态, 一旦连接成功,我们将中断循环并继续。接下来,我们用IP地址打印连接的消息。
最后,我们使用 Firebase.begin() 函数开始与 Firebase 的通信,并传递之前定义的 FIREBASE_HOST 和 FIREBASE_AUTH 参数。然后,我们使用 setString() 函数设置字符串 ,这标志着setup函数的结束。在 void loop() 部分,
Resivedata = Firebase.getString(“ Variable / Value”); Serial.println(Resivedata); AnalogWrite(PWM_PIN,map(Resivedata.toInt(),0,80,80,0)); Serial.println(Resivedata); 延迟(100);
我们使用变量/值调用 getString() 函数,其中数据存储在firebase中,示例如下图所示:
然后我们打印该值仅用于调试。接下来,我们使用map函数来映射该值,使用80是因为在0-80的范围内,我们能够精确地控制MOSFET的栅极,而RC低通滤波器在某种程度上负责该值。在此范围内,相角控制电路可准确运行,您可以将该值称为硬件-软件最佳点。如果您正在执行此项目并遇到问题,则需要发挥价值并自己确定结果。
之后,我们使用 analogWrite() 函数馈送数据并启用PWM,然后,再次使用 Serial.println() 函数只是为了查看结果,最后,我们使用了延迟函数来减少触发计数到firebase API,这将结束程序。
使用MIT App Inventor构建风扇调节器应用
在AppInventor的帮助下,我们将制作一个与Firebase通信并有权更改存储在Firebase数据库中的数据的android应用。
为此,请访问appInventors网站,使用您的Google帐户登录并接受条款。完成后,将显示如下图所示的屏幕。
单击“开始一个新项目”图标并为其命名,然后单击“确定”。完成后,将显示如下图所示的屏幕。
到达那里之后,您首先需要放置两个标签,这是将滑块放一点,然后,您需要拉入一些模块,它们是FirebaseDB模块和web模块。
所述firebaseDB与火力模块通信,所述网络模块用于到h andle。如下图所示。
完成此操作后,您需要拉入滑块和一个我们称为PWM的标签,如果这时您感到困惑,则可以查看有关使用App Inventor制作应用程序的其他一些教程。
完成该过程后,单击firebase DB图标,并放入我们在创建firebase帐户时保存的firebase令牌和firebase URL。
现在,我们完成了设计部分,并且需要设置块部分。为此,我们需要单击设计器右上角的阻止按钮。
单击滑块后,将为您提供一长串的模块,拉出第一个模块,然后将鼠标悬停在拇指位置按钮上,您将再看到两个模块,将它们都拉出。我们将在以后使用它们。
现在,我们附加了 thumbposition 变量,将其 四舍五入 ,然后获得了拇指位置值。接下来,我们单击firebasedb并拔出调用FirebaseDB.storeValue标记值以存储,模块并将其附加到拇指位置值的底部。
完成后,我们通过单击文本块拉出一个空文本框,并将其附加到标签,这是我们在Arduino IDE中设置的标签,用于在firebase上读写数据。现在,将thumb value变量附加到要存储标签的值。如果您已正确完成所有操作,则可以通过移动滑块来更改firebaseDB中的值。
- .aia(保存的文件)和.apk(编译的文件)
这标志着我们应用制作过程的结束。我们刚刚创建的android应用的快照如下所示。
测试基于ESP32的触摸传感器电路
为了测试电路,我将一个白炽灯泡与吊扇并联,并使用5V DC适配器为电路供电,如上图所示,应用程序滑块设置为低,这就是为什么灯泡以低亮度发光。而且风扇也在缓慢旋转。
进一步增强
在本演示中,电路是在手工PCB上制成的,但是可以很容易地在高质量PCB上构建电路,在我的实验中,PCB的尺寸实际上取决于组件的尺寸,但是在生产环境中,通过使用廉价的SMD组件可以减少这种情况,我发现使用7555定时器而不是555定时器可以大大提高控制能力,此外,电路的稳定性也得到提高。