加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 运营中心 > 交互 > 正文

打造一个基于物联网的风扇调节器

发布时间:2022-08-02 16:44:52 所属栏目:交互 来源:互联网
导读:物联网无处不在,是可以用来让生活更轻松的最伟大的东西之一。互联网上有许多基于物联网的 家庭自动化项目 ,但它们都没有为您提供通过互联网控制风扇速度的选项。所以在这里,在这个项目中,我们将制作一个 物联网 风扇速度控制 电路,以使用 Blynk 控制普
    物联网无处不在,是可以用来让生活更轻松的最伟大的东西之一。互联网上有许多基于物联网的 家庭自动化项目 ,但它们都没有为您提供通过互联网控制风扇速度的选项。所以在这里,在这个项目中,我们将制作一个 物联网 风扇速度控制 电路,以使用 Blynk 控制普通风扇或其他设备的速度。该电路与其他电路有两个不同之处,首先,它是基于 TRIAC 的控制,其次,它非常易于安装。我们设计了完整的系统以安装在一个紧凑的外壳中,使其易于安装并与您的吊扇或壁扇一起安装。这种紧凑的设计是由 PCBWay制造的 PCB 板实现的,我们还将向您展示电路板是如何设计和从 PCBway 订购的。那么,让我们看一下项目计划并构建一个精心设计 的基于物联网的风扇调节器。
 
    构建基于物联网的风扇速度控制器所需的组件
 
 
    在这里,我们将使用基于物联网的低成本控制系统,该系统可用于以下应用:
     
    使用移动应用程序(不是定制的,而是现成的工具)。
 
    一次控制高达 250 瓦的电器,无需太多修改。
 
    有一个蜂鸣器,当状态发生任何变化时,它会通知用户。
 
    为了满足上述项目要求,需要以下组件:
 
 
    基于物联网的风扇速度控制器示意图
 
    基于物联网的 风扇控制器的完整电路图如下:
 
 
    好吧,电路的工作并不那么复杂,而且非常简单。电路由以下几部分组成:
 
    交流到直流转换器
 
    过零电路
 
    TRIAC和驱动电路
 
    蜂鸣器
 
    微控制器
 
    交流到直流转换器:
 
 
    运行电路需要两个电压电平。这里,PS1 是将交流电转换为 5V 1A 的电源单元,用于电路级操作。然而,由于我们使用的是 ESP12F,我们需要 3.3V 来运行微控制器单元。Hi-Link 5V 1A 模块用于将 AC 230V 市电转换为 DC 5V 1A。使用 AMS1117-3.3V LDO 稳压器 U2 将其进一步转换为微控制器所需的 3.3V。
 
    L4 的目的是降低进入 SMPS 模块的共模 EMI 。如果您不熟悉 EMI,可以查看有关电磁干扰基础知识的文章以及降低SMPS 中 EMI 的设计技术。
 
    TRIAC 和驱动电路:
 
    TRIAC是一种双向器件,可在端子的两侧传导电流。TRIAC 的双向特性对于控制交流 (AC) 操作设备非常有用。因此,通过在 TRIAC 上使用 AC 相角控制,我们可以控制流入负载的平均电流。因此,检测过零时,如果我们延迟开启 TRIAC,就可以控制负载电流。在这里,我们检测过零并以一定的延迟打开 TRIAC 并控制流向风扇的电流。
 
    由于 FAN 是感性负载,RC 缓冲电路R12 和 C3 用于保护 TRIAC 不产生反电动势。电阻R6和R7用于控制TRIAC的触发电流。
 
    但是,TRIAC 可以是BTA16 或 BT136。两者都合适。这里我们使用的是 BT136,它的最大终端电流为 4A。BT136的栅极阈值电压也很小,也可以由数字电路驱动。
 
    BC847 是传导 MOC3021 和基于 TRIAC 的光电隔离器的晶体管,用于打开 TRIAC。
 
    蜂鸣器电路:
 
    蜂鸣器电路是使用 MOSFET 2N7002 控制的标准圆形蜂鸣器。
 
 
    微控制器:
 
    该项目使用的微控制器是广受欢迎的 ESP12。它有Wi-Fi,也很便宜。为模块的正常工作提供了所需的上拉电路。
 
 
    为物联网风扇控制器电路制造PCB
 
    PCB 设计有适当的交流到直流电压隔离。但是,这是用于测试目的的 PCB 的更新版。很少有组件是通过孔制成的,以弥补间隙问题,而不是 SMD 小尺寸组件。此外,Boot 和 RST 引脚部分用于连接在编程期间很有用的按钮。下面是 PCB 顶层和底层的 3D 模型视图:
 
 
    组装风扇控制器 PCB
 
    订购板后,几天后,它通过快递在一个标签整齐且包装完好的盒子中到达我的手中。PCB质量一如既往的好。板子的顶层和底层如下图所示:
 
 
    在确保轨道和脚印是正确的之后。我继续组装PCB。完全焊接的板如下所示:
 
 
    配置 Blynk 以控制风扇速度
 
    现在我们已经组装了 PCB,我们可以继续配置 Blynk 应用程序并对 ESP 进行编程。对于那些不知道 Blynk 是一款可以在 Android 和 iOS 设备上运行以使用智能手机控制任何物联网设备和电器的应用程序的人来说。首先,需要创建一个图形用户界面 (GUI) 来控制风扇。设置前,请从 Google Play 商店下载 Blynk 应用程序(iOS 用户可从 App Store 下载)。安装后,使用您的电子邮件 ID 和密码注册。
 
    安装成功后,打开应用程序,我们会看到一个带有“新建项目”选项的屏幕。点击它,它会弹出一个新屏幕,我们需要在其中设置项目名称、电路板和连接类型等参数。在我们的项目中,选择设备为“ESP8266”,连接类型为“Wi-Fi”,然后点击“创建”。
 
 
 
  BLYNK_WRITE(V0)
  {
    int pinValue = param.asInt(); // 将从引脚 V1 传入的值赋给一个变量
    pwm = pinValue;
    嗡嗡声通知();
    Serial.println("收到PWM值-");
    串行.println(pwm);
    序列号.println("n");
  }
   
 
  每当在 Blynk 应用程序上更改新值或滑块并设置 PWM 输出值时,都会调用上述函数。在这些更改期间,蜂鸣器开始发出哔哔声。
 
   
 
  无效循环()
  {
    Blynk.run();
    map_pwm = map(pwm, 0, 100, 0, 87); //analogRead(analog_pin), min_analog, max_analog, 0%, 100%);
    调光器.setPower(map_pwm); // name.setPower(0%-100%)
  }
   
 
    使用 87%,因为在测试期间最大功率达到 87%。
 
    使用 Blynk 和 ESP-12E 控制风扇速度
 
  #define BLYNK_PRINT Serial
  #include
  #include
  #include
  #define outputPin 14
  #define zerocross 4 // 用于带有 CHANGEABLE 输入引脚的板
  #define buzz 5
  //#define TRIAC 14
  int pwm=0;
  int map_pwm=0;
  // 你应该在 Blynk App 中获得 Auth Token。
  // 转到项目设置(螺母图标)。
  char auth[] = "BLYNK 令牌";
  // 您的 WiFi 凭据。
  // 为开放网络设置密码为“”。
  字符 ssid[] = "xxxx";
  char pass[] = "xxxxxx";
  //void ICACHE_RAM_ATTR ISRouTIne();
  dimmerLamp 调光器(outputPin, zerocross); //用于 ESP8266、ESP32、Arduino 的调光器的初始化端口
  int outVal = 0;
  无效的嗡嗡声(无效){
  数字写入(嗡嗡声,高);
  延迟(1000);
  数字写入(嗡嗡声,低);
  延迟(1000);
  }
  BLYNK_WRITE(V0)
  {
  int pinValue = param.asInt(); // 将从引脚 V1 传入的值分配给变量
  pwm = pinValue;
  嗡嗡声通知();
  Serial.println("收到PWM值-");
  串行.println(pwm);
  序列号.println("n");
  }
  void setup()
  {
  // 调试控制台
  pinMode(buzz,OUTPUT);
  序列号.开始(115200);
  嗡嗡声通知();
  Blynk.begin(auth, ssid, pass);
  调光器.开始(正常模式,开);//调光器初始化:name.begin(MODE, STATE)
  // void ICACHE_RAM_ATTR ISRouTIne();
  // 也可以指定服务器:
  //blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
  }
  无效循环()
  {
  Blynk.run();
  map_pwm = map(pwm, 0, 100, 0, 87); //analogRead(analog_pin), min_analog, max_analog, 100%, 0%);
  调光器.setPower(map_pwm); // name.setPower(0%-100%)
  }
  

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读