项目分享| wifi 指示器,治愈网络暴躁症

科技   2024-11-25 20:04   江苏  

不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星送给我

当wifi网络遇到了一些不稳定性问题,常常会让人暴躁。有了这个 Internet 指示器来监控路由器,也就是wifi 指示器,可以随时查看网络是否已连接或不可用,简单明了。几年前,我们分享过一个wifi 信号强度检测仪,原理是类似的。

wiFi 指示器涉及到的硬件重点有:XIAO ESP32 C3 微控制器板以及两个定制 PCB ,其中一个 PCB 是 XIAO 的分线板,连接四个 WS2812B LED,另一个 PCB 是电源板,有一个电源管理 IC,用于使用 3.7V 锂电池作为电源。电路图设计如下:

为这个项目开发了两个单独的板:一个用于 XIAO 和 WS2812B RGB LED,另一个用于 IP5306 电源管理 IC,它将用于对锂电池进行正确充电和放电,甚至提供电池指示。

首先,来看一下 XIAO RGB 分线板。以标准配置连接 WS2812B LED,其中包括并联每个 LED 的 GND 和 VCC。第一个 LED 的 din 将与 XIAO 的 GPIO0 相连。第一个 LED 的 Dout 将连接到第二个 LED 的 Din,第二个 LED 的 Dout 连接到第三个 LED 的 Din,第三个 LED 的 Dout 连接到第四个 LED 的 Din。

然后,电源板的原理图以 IP5306 电源管理 IC 为中心,该 IC 通过 3.7V 锂电池提供稳定的 5V/2A 电源。并且添加 Type C 端口、直角开关和 LED 等元件。

然后,根据原理图打样出PCB板:

PCB打样之后,就是焊接和简单的测试:

硬件完成之后,就是要给wiFi 指示器设计一个外壳。首先创建了 3D 模型,其中包括一个小盒子外壳,外壳顶部附有盖子。为了将其固定到主体上,在盖子上插入了四个孔。

在外壳内部模拟了两个 PCB:电源板和用于安装 SMD RGB LED 和 XIAO 微控制器的 PCB。此外,还创建了一个锂电池模型,作该项目的电源。

此外,还设计了锂电池固定条,并创建了用于安装电源板和 XIAO LED 板的螺丝凸台。

最后,使用橙色 PLA 0.4 毫米喷嘴和 0.2 毫米层高 3D 打印外壳主体,并使用两种不同的灯丝颜色来打印外壳的盖子:透明 PLA 用于底座,黑色 PLA 用于 Wi-Fi 图形。

所有硬件准备完成之后,就是要编写代码了。在 LED 板上添加了 XIAO ESP32 C3 的位置,并将下面的代码上传到其中。

#include <WiFi.h>
#include <Adafruit_NeoPixel.h>
#define LED_PIN D0 // GPIO pin connected to the LEDs
#define NUM_LEDS 4 // Number of WS2812B LEDs
#define WIFI_SSID "Ur SSID" // Replace with your WiFi SSID
#define WIFI_PASSWORD "Ur PASS" // Replace with your WiFi Password
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(115200);
strip.begin();
strip.show(); // Initialize all pixels to 'off'
// Connect to Wi-Fi
Serial.print("Connecting to WiFi...");
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
int attempts = 0;
while (WiFi.status() != WL_CONNECTED && attempts < 20) {
delay(500);
Serial.print(".");
attempts++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println("Connected to WiFi");
} else {
Serial.println("Failed to connect to WiFi");
}
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
setLEDColor(strip.Color(0, 255, 0)); // Green
} else {
setLEDColor(strip.Color(255, 0, 0)); // Red
}
delay(10000); // Check the connection every 10 seconds
}
void setLEDColor(uint32_t color) {
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, color);
}
strip.show();
}

这个代码会持续监控wifi 连接状态,并更新一条 NeoPixel LED,以分别使用绿色和红色指示设备是否已连接。记得要先安装 Adafruit_NeoPixel 库。

调试完成之后,接下来的工作就是组装。

最后的成品:

原文链接:

https://www.hackster.io/Arnov_Sharma_makes/wi-fi-status-box-f3d24f


版权所属:Arnov Sharma

END

更多实战项目推荐:

<<<STM32类项目汇总>>>

<<<树莓派类项目汇总>>>

<<<ESP32类项目汇总>>>

<<<ESP8266类项目汇总>>>

<<<Arduino类项目汇总>>>


<<<达尔闻项目分享全系列>>>


推荐阅读:
项目分享 |电赛系列 |人工智能 | 考研 
必考知识点 |毕业设计 | 开关电源 |求职

我们是妮mo,达尔闻创始人,只讲技术不撩汉的小姐姐。达尔闻在线教育平台旨在服务电子行业专业人士,提供技能培训视频,覆盖各细分领域热门话题,比如嵌入式,FPGA,人工智能等。并针对不同人群量身定制分层级学习内容,例如常用知识点,拆解评测,电赛/智能车/考研等,欢迎关注。
官网:www.darwinlearns.com
B站:达尔闻

达尔闻说
只讲技术不撩汉的小姐姐妮mo与你相遇达尔闻。这里提供技能培训视频,覆盖各细分领域热门话题,如嵌入式,FPGA,人工智能等。针对不同人群量身定制学习内容,如常用知识点,拆解评测,电赛/智能车/考研等!
 最新文章