项目分享| DIY wifi 信号强度检测仪
这时,如果有一个设备可以清清楚楚的显示wifi信号到底是多少,就可以轻松解决上面的问题了。
-
谁能忍受家里的wifi信号时强时弱?你知道房间里哪个位置的wifi信号最强?虽然常用wifi信号放大器来改善办公室或者家里的wifi信号,却不知道该将wifi放大器放在哪个位置,才能够有效帮助路由器提升wifi覆盖效果?
这时,如果有一个设备可以清清楚楚的显示wifi信号到底是多少,就可以轻松解决上面的问题了。
今天就教你DIY一个神器,快速帮你找到wifi信号最弱、最强的地方。超简单,跟上来一起做吧:
wifi强度检测仪用到的硬件:
-
ESP8266 ESP-12F WeMos D2 Mini Module Wifi开发模组
-
Micro转USB转接口(用于连接充电宝充电)
-
SSD1306 OLED显示模块
涉及到的软件:Arduino IDE,用于编译ESP8266代码。
NO.1 PCB制作
电路非常简单,因为ESP8266 WeMos D1 Mini体积非常小,所以用了0.66英寸的OLED显示模块,大小正好匹配,看上去更美观一些。
除此之外,为了方便携带这个设备,就在OLED和主控之间焊接一个座子。其中OLED显示屏和ESP8266的连接方式如下图:
NO.2 确认OLED屏的i2c地址
为了让OLED和主控正常通信,在硬件连接好之后,需要先确认OLED的i2c地址,大多数SSD1306的OLED显示器的地址都是0X3C。
这里使用Mike Causer的i2cdetect的库。通过直接调用库中的示例代码检查oled的i2c地址。代码编译下载后,打开串口监视器,并将波特率设置为代码中给出的值,就可以看到地址如下:
NO.3 调用SSD1306库
基于SSD1306 oled显示器有许多不同的库,这里使用的是:ESP8266 and ESP32 OLED driver for SSD1306 displays。
NO.4 编写代码
首先,配置wifi账号和密码:
char wifissid[ ] = " ENTER YOUR WiFi SSID HERE";
char wifipass[ ] = "ENTER YOUR WiFi PASSWORD HERE";其次,确定信号显示的方式: 正常情况下,信号强度以dBm表示。但对于非技术人员来说,以%表示的信号强度,可以更加直观的感受到强弱。 所以在oled上既显示dBm,又显示%。。
最后,配置SSD1306 OLED
SSD1306 display(Address of Display, SDA_PIN,SCL_PIN)
SSD1306 display(0x3c, D2, D1);NO.5 代码分享与演示
利用函数WiFi.RSSI()进行WiFi信号强度编写,根据信号判断WiFi信号是否链接,具体如何显示,可以参考分享的代码,这里就不在贴出来了,可以在“达尔闻说”微信回复:wifi强度。
-
-