使用nodemcu为计算机添加wi-fi控制的照明

学习如何通过构建一个由NodeMCU和一些基本编程组成的DIY-Wi-Fi控制的neopix系统来活跃你的电脑机箱。...

桌面电脑塔已经走过了漫长的道路,因为灰色塑料塔隐藏在办公桌下的日子。除了满足不同功能的机箱外,PC机箱还进化出了一种美感,玻璃面板自豪地展示着组件,强大的未来设计占据了任何骄傲的极客办公桌的中心舞台。

led-pc-case

desktop pc side tower led lighting

LED装置越来越普遍。一个简单的12v的RGB带可以买到只要1美元每米,并将照亮一个案件(连同几乎任何其他)的内部非常好。

但是,我们想做一些比这更特别的事情!今天,我们将使用像素LED来创建Wi-Fi可控的机箱照明,并提供定制的If This Then That(IFTTT)通知。整个系统使用塔内的备用莫仕连接器供电,使其完全独立。最棒的是,整个项目的成本不到10美元。

本教程以视频形式提供,或继续阅读书面版本。

有头脑的灯

我们将在这个项目中使用单独的可寻址LED。有时被称为neopix,有各种型号可供选择。这里使用的LED来自WS2812B条带,每米大约4美元。

我们将使用NodeMCU板来控制它们。虽然你可以使用任何与Arduino兼容的Wi-Fi板,但NodeMCU是我们作为Arduino**的最爱。

你需要什么

  1. 1 x 5v像素LED条,Neopixel/WS2811/12/12B
  2. 1个NodeMCU(在AliExpress上为3美元)
  3. 1 x 220-500欧姆电阻器
  4. 1 x 100-1000微法拉电容器
  5. 1 x拨动开关或断路器
  6. 1个内螺纹莫仕接头
  7. 1 x试验板
  8. 1 x 5v电源(用于测试)
  9. 1 x原型板和电线(用于安装电路)
  10. 各种连接线
  11. 烙铁和焊料

这张单子上唯一与众不同的就是莫仕接头。如今,许多个人电脑用户根本不使用CD驱动器,尽管电源仍然为他们提供连接。我们可以利用这些备用电源线。我从一个旧的磁盘驱动器中取出了我的阴性连接器,尽管它们的价格只有0.30美元。

建立你的电路

为了避免不必要的戳在我们的情况下,我们将测试我们的设置使用外部电源。像这样把你的实验板放好。

led case breadboard

如果这是您第一次设置这种LED,我建议您先查看我们的深入指南,使用Arduino的这些条带。

这个开关只是将NodeMCU从电路中断开。在这个构建中,我将使用一个简单的断路器来代替开关。它的功能是让我们隔离该板的VIN引脚,而它是通过USB连接。虽然我们的LED将消耗的功率相对较小,但避免通过USB消耗过多功率是一个很好的做法。

一旦你的实验板设置好了,它应该是这样的:

breadboard setup

在我的例子中,电容器和电阻器已经在proto板上,因为它是从一个旧的项目打捞上来的,尽管电路是完全相同的。

现在我们已经设置了硬件,让我们创建代码。

手术的大脑

您将使用ArduinoIDE对节点MCU进行编码。对于本例,我们将设置两种操作模式:主开关和接收电子邮件时的通知信号。我们将使用Blynk[brokenurl Removed],一个物联网设备的网络服务来与我们的董事会进行通信。

如果你以前从未使用过Blynk的介绍性文章,请务必查看它。

在Blynk应用程序中,设置一个新项目并选择NodeMCU作为您的板。授权码将发送到您在Blynk注册的电子邮件地址。添加3个按钮和3个滑块。

blynk app sliders and butt***

这些按钮和滑块应设置为将值发送到虚拟引脚V0-V5。“测试”按钮将暂时测试我们的电子邮件通知。给另外两个按钮贴上电源和自动/手动或类似的标签,三个滑块分别是红色、绿色和蓝色。

现在打开Arduino IDE。这个项目需要Blynk和FastLED库,所以请确保已经安装了这两个库。如果您刚刚开始使用Arduino IDE,请查看我们的Arduino初学者指南。

我们将在这里把代码分解成块,不过如果您更愿意下载完整的代码,您可以在GitHub上找到它。

如果您决定这样做,请确保在脚本中添加您自己的Wi-Fi详细信息、授权代码和相关的NodeMCU pin和指示灯数量。如果你刚刚开始学习编程,我会从头开始学习,以便了解每个部分是如何工作的。这是掌握编码的许多方法之一。

创建一个新草图并用适当的名称保存它。确保从“工具”>“板和工具”>“端口”菜单中选择正确的板和端口。首先包括相关的Blynk和FastLED名称空间:

#define BLYNK_PRINT Serial#include <ESP8266WiFi.h>#include <BlynkSimpleEsp8266.h>#include "FastLED.h"

接下来,为FastLED添加一些定义:

//---FastLED definiti*** and CRGB---#define LED_PIN 3 // GPIO pin for RGB LEDs.#define NUM_LEDS 44 // Number of LEDs connected.#define BRIGHTNESS 64 // Default LED brightness.#define LED_TYPE WS2812B#define COLOR_ORDER GRBCRGB leds[NUM_LEDS];

接下来,我们将为RGB值、自动/手动模式和主开关声明变量。我们还为稍后使用的FastLED预设所需的基色添加了一个值。

//---variables for our RGB values (0-1023) ---int r = 500;int g = 500;int b = 500;//---variables for On/Off, and Auto/Manual toggleint masterSwitch = 1;int autoMode = 1;//--- int/byte for automatic hue incrementation---uint8_t gHue = 0; // rotating "base color" used by many of the patterns

添加Blynk详细信息时,请务必在此处填写您自己的Wi-Fi详细信息:

//---Blynk auth code and wifi details---char auth[] = "YourAuthCode";//Blynk authorisationchar ssid[] = "YourWifiName";char pass[] = "YourWifiPassword";

我们使用设置功能将LED添加到FastLED,并与Blynk建立通信。

void setup() { // power-up safety delay delay(3000); Serial.begin(9600); //--- add the LEDS to FastLED and set the brightness--- FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalSMD5050); FastLED.setBrightness(BRIGHTNESS); #define FRAMES_PER_SECOND 120 //---start communication with the Blynk server --- Blynk.begin(auth, ssid, pass);}

在循环函数中使用if语句根据所处的模式执行不同的操作。

void loop() { Blynk.run(); if(masterSwitch == 0) { for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CRGB::Black; FastLED.show(); delay(30); } } if(autoMode == 0 && masterSwitch == 1) { for (int i = 0; i < NUM_LEDS; i++){ leds[i] = CRGB(r, g, b); FastLED.show(); delay(30); } } if(autoMode == 1 && masterSwitch == 1) { fill_rainbow( leds, NUM_LEDS, gHue, 7); // send the 'leds' array out to the actual LED strip FastLED.show(); // insert a delay to keep the framerate modest FastLED.delay(1000/FRAMES_PER_SECOND); EVERY_N_MILLISECONDS(20) { gHue++; // slowly cycle the "base color" through the rainbow } }}

现在,使用BLYNK\u WRITE函数根据您在BLYNK应用程序中选择的内容更改这些变量:

//---Master On/Off---BLYNK_WRITE(V0) { masterSwitch = param.asInt();}//--- Red slider value---BLYNK_WRITE(V1) { r = param.asInt();}//--- Green slider value---BLYNK_WRITE(V2) { g = param.asInt();}//--- Blue slider value---BLYNK_WRITE(V3) { b = param.asInt(); }//--- Toggle Auto/Manual Mode ---BLYNK_WRITE(V4) { autoMode = param.asInt();}

最后,做一个函数,让一系列重复的红灯作为你的电子邮件通知。这是设计为触发无论发生什么事情,这意味着你总是会得到通知,即使灯目前关闭。

//---Email notification light---BLYNK_WRITE(V5) { int g = param.asInt(); if(g == 1) { for(int a = 0; a < 10 ; a++) { for (int i = 0; i< NUM_LEDS; i++) { leds[i] = CRGB(1023, 0, 0); FastLED.show(); delay(10); FastLED.clear(); delay(10); } } }}

一旦你有了完整的代码,使用开关/断路器将NodeMCU与电路隔离,并通过USB将其**。把草图上传到黑板上。上传后,断开USB电缆,然后连接5v电源。如果一切正常,LED条应在自动模式下启动,这是FastLED的填充彩虹模式。您可以使用test按钮测试通知信号。

testing led lights

正如你在这里看到的,我把我的LED灯大致放在箱子的侧面,这样我就知道我需要多少个。在我的情况下是44,虽然我使用一个迷你塔,所以你可以使用更多。一定要考虑到你使用的发光二极管的功率消耗,以及你的电脑能提供多少电源。

配置ifttt

我们将使用IFTTT的Gmail集成来触发我们的通知序列。如果你以前从未使用过IFTTT,那么你会惊奇地发现,你可以通过大量的方式来自动化你最喜欢的web应用程序。

设置新的小程序。对于“This”,从Gmail频道选择收件箱中的任**邮件。对于“That”,选择Maker Webhooks并发出web请求。

URL部分是我们调用通知pin的地方。您需要修改URL才能使用您的项目。格式为http://BlynkIpAddress/YourAuthCode/pin/V5。您可以通过键入ping Blynk找到Blynk ip-云计算在命令提示符下。

ifttt url

选择PUT作为方法,选择application/json作为内容类型。最后,将[“1”]添加到Body部分,然后单击Create Action。

现在,每当一封电子邮件到达与IFTTT相关的Gmail地址的收件箱时,它都会向Blynk服务器上的虚拟pin5发送一条“1”消息,这将触发我们的通知。试着给自己发封邮件测试一下。耐心点,如果需要时间的话!

你现在可以摆脱测试按钮在你的Blynk应用程序如果你愿意。

把它们放在一起

现在我们已经测试了所有的东西,是时候完成并安装我们的硬件了。将项目从试验板移到原型板上。如果你是新的焊接和正在寻找一些提示,看看我们的焊接指南。

在将莫仕连接器连接到电路板之前,请注意要使用的引脚。从您的电脑电源引出的公连接器将有四根电缆。两条黑色电缆为公共接地电缆,黄色电缆为+12v,红色电缆为+5v。请确保将阴连接器的相应针脚连接到板上。我选择只附加两个引脚,以避免意外炸我的董事会和发光二极管!

molex

我决定在我的主板和LED之间连接杜邦电缆,这样电脑机箱的侧面仍然可以完全卸下,而不必卸下proto主板。我建议把你的LED灯放在箱子上,首先用胶带把它们固定好,只是为了检查它们在关上的时候是否适合放在箱子里。

注:当你焊接你的LED带在一起,数据线需要在同一个方向流动。这将在条带上标明。

solder led strips

最后,将你的原型板安装在你的PC塔内。由于这是我的临时建设,我选择绝缘板的背面,并拉链绑在我的案件的背面。无论您决定如何连接电路板,请注意不要造成任何短路,并小心内部组件上的静电造成的危险。

开明的

enlightened led lighting complete

一切正常,你应该有一个功能齐全的Wi-Fi操作灯与自动电子邮件通知。现在你有了这个系统,你可以使用主板上的kill开关,通过USB安全地**NodeMCU并更改代码。您可以尝试添加另一个与IFTTT集成的通知(例如,Twitter或Facebook上的蓝色指示灯),或者尝试在FastLED库中使用自定义设置,使您的指示灯有一点移动。

你在你的电脑塔里安装了发光二极管吗?你为他们设置了什么很棒的自动化系统吗?让我们知道你的项目和计划在下面的评论部分!

图片来源:大卫·布朗/Flickr

  • 发表于 2021-03-14 05:31
  • 阅读 ( 250 )
  • 分类:IT

你可能感兴趣的文章

5个智能家庭办公室创意,简化您的日常生活

...动灯光相同的方法,但是这种自动化的触发器将来自您的计算机,而不是运动。 ...

  • 发布于 2021-03-11 16:17
  • 阅读 ( 278 )

6个最佳arduino替代微控制器

... 1nodemcu:廉价的arduino替代品 ...

  • 发布于 2021-03-11 16:53
  • 阅读 ( 493 )

这些diy圣诞电子产品项目的成本都不到5美元

...降低此构建成本的一种方法是去掉Arduino和Wi-Fi屏蔽,改用NodeMCU,因为它与Arduino IDE兼容,并且内置Wi-Fi连接。 ...

  • 发布于 2021-03-12 02:23
  • 阅读 ( 249 )

6种将arduino连接到android的简单方法

...可以通过以太网无线连接到服务器,甚至可以通过USB使用计算机连接。这项服务有很好的文档记录,其直观的应用程序使得为您的项目设置自定义控件变得非常简单。ArduinoIDE的Blynk库负责所有通信。 ...

  • 发布于 2021-03-12 23:13
  • 阅读 ( 354 )

如何设置和使用三星smartthings系统

... 在本文中,我们使用的是版本2初学者工具包,但是如果您只购买了hub,说明仍然是相关的。当然,您还需要您选择的智能设备来使用集线器。如果您有一个版本1集线器,大部分指南仍然...

  • 发布于 2021-03-13 07:19
  • 阅读 ( 413 )

智能照明决战:蓝牙智能vs wi-fi vs zigbee

...是我们大多数人将许多设备连接到外部世界的方式,包括计算机、移动设备、智能电视、视频游戏控件等等。 ...

  • 发布于 2021-03-13 09:40
  • 阅读 ( 373 )

如何用arduino遥控你的家,5个diy项目

...一个更好的选择是得到一块已经内置了连通性的电路板。NodeMCU是完美的,我们经常称赞这个小董事会有充分的理由! ...

  • 发布于 2021-03-13 11:21
  • 阅读 ( 285 )

5个实用的方法,让你的生活更轻松自动化你的家

... 越来越多的人转向网状网络来解决这类问题。使用网状网络,您可以将一个单独的路由器连接到调制解调器,然后在家中添加自我配置的无线电或节点。这样一来,你就更有可能在每个角落都有无处不在的Wi-Fi覆盖。 ...

  • 发布于 2021-03-13 11:26
  • 阅读 ( 226 )

在下一个项目中不使用正版arduino的5个理由

...广泛应用,但在大多数情况下,它很容易被取代。我们是NodeMCU董事会的忠实粉丝,这是有充分理由的。 ...

  • 发布于 2021-03-13 19:08
  • 阅读 ( 318 )

飞利浦色调还是利福?为你的家挑选最好的智能灯泡

...择。这个数字来自RGB(红、绿、蓝)系统,通常用于表示计算机显示器上可用的颜色。 ...

  • 发布于 2021-03-14 16:31
  • 阅读 ( 275 )