littlebot
Published on 2025-04-03 / 1 Visits
0

【源码】基于Heltec开发板的WiFi信号检测与MQTT通信系统

项目简介

本项目是为Heltec WiFi LoRa 32 V2开发板设计的多功能工具。它能够测量WiFi信号强度,借助MQTT协议把信号强度数据发送至指定的MQTT服务器,还能选择关闭MQTT功能。同时,通过开发板内置的OLED显示屏直观展示WiFi信号质量,适用于评估和监控不同位置无线网络性能,或用于需要可靠WiFi连接的物联网应用。

项目的主要特性和功能

  1. 测量WiFi信号强度(RSSI)。
  2. 在OLED显示屏上显示WiFi信号强度和SSID。
  3. 将WiFi信号强度数据发送到MQTT服务器。
  4. 可自定义MQTT主题和服务器设置。

安装使用步骤

配置环境

  • 确保拥有Heltec WiFi LoRa 32 V2开发板。
  • 安装PlatformIO CLI或PlatformIO IDE用于构建和上传固件。
  • (可选)安装Nix包管理器以设置可重现的开发环境。

配置文件

  1. 在项目的./data目录下,根据config.json-template文件创建config.json文件。
  2. 配置config.json文件:
    • system.interval:设置测量和发送WiFi信号强度到MQTT服务器的时间间隔(毫秒)。
    • wifi.ssid:要连接的WiFi网络的SSID。
    • wifi.password:上述WiFi网络的密码。
    • mqtt.enabled:布尔值,1为启用MQTT功能,0为禁用。
    • mqtt.host:MQTT服务器的主机名或IP地址。
    • mqtt.port:MQTT服务器监听的端口号(默认1883)。
    • mqtt.user:用于认证MQTT服务器的用户名。
    • mqtt.password:用于认证MQTT服务器的密码。
    • mqtt.topic:发布WiFi信号强度数据的MQTT主题。

烧录开发板

使用Nix Shell

  1. 确保系统已安装Nix,可参考NixOS下载页面进行安装。
  2. 进入项目根目录。
  3. 运行make shell命令进入Nix shell,设置环境。

使用发布版二进制文件烧录

  1. 安装esptoolpip install esptool
  2. 根据实际情况调整--port参数,运行以下命令烧录文件:
    • esptool.py --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 bootloader.bin 0x8000 partitions.bin 0x10000 firmware.bin
    • esptool.py --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x290000 littlefs.bin

使用Makefile从源码烧录

  1. 构建项目:make build
  2. 烧录固件:确保开发板通过USB连接到计算机,运行make flash,可根据需要调整Makefile中的UPLOAD_PORT
  3. 监控串口输出:运行make monitor,若开发板使用不同波特率,可调整Makefile中的UPLOAD_SPEED

上传文件系统镜像(Littlefs)

  1. 创建Littlefs镜像:make fs
  2. 上传Littlefs镜像:make uploadfs

完整工作流命令

  • 一次性构建并烧录所有内容:make start
  • 重新上传Littlefs并重启监控:make reupload
  • 烧录固件并启动监控,不触及Littlefs:make reload

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】