Gravity: BLE Sensor Beacon

简介

这款WiFi扩展模块专为SCI采集模块设计,可将SCI采集的传感器数据上传至物联网平台。整个过程无需编程,用户只需连接所需传感器并为系统供电,即可快速构建物联网传感器节点。在更换或调整传感器时,无需额外调试,直接替换即可。此外,该模块还具备断网自动重连功能,可有效避免因网络波动引起的设备掉线问题。配合SCI采集模块兼容的丰富传感器,用户可以迅速搭建多种物联网系统,如环境监测、智能家居和气象站等,实现智能化管理和监控。

产品参数

  • 供电电压:

    • Type-C:5V
    • 2Pin PH2.0电池口:3.5~4.2V
  • 工作电流:30mA

  • 通信方式:I2C

  • 无线频率:2.4GHz

  • 产品尺寸:37*32mm

引脚说明

标号 名称 功能描述
1 D I2C数据线SDA,与SCI模块通讯
2 C I2C时钟线SCL,与SCI模块通讯
3 - GND电源负极,POWER IN端有电池输入时可为SCI模块供电
4 + 电源正极,POWER IN端有电池输入时可为SCI模块供电
5 RST WiFi IoT模块复位
6 L 模块状态指示灯
7 POWER IN WiFi IoT模块电池电源输入
8 Type-C WiFi IoT模块Type-C电源输入(无充电功能)

WiFi模块配置

注:WiFi扩展模块的POWER IN电池接口、Type-C接口、Gravity接口不能同时输入电源。这可能会对WiFi模块造成损坏

首次使用WiFi模块时需要先配置WiFi和MQTT信息,后续当需要修改WiFi和MQTT信息时也可以按照此流程进行配置。

不熟悉SCI采集模块的使用也不影响此教程的阅读,建议先体验完WiFi模块的整个搭建流程,再去了解SCI采集模块的使用细节。若您想先了解更多关于SCI采集模块的使用,可查看:SCI采集模块教程

在进行WiFi模块配置前,需要先将物联网平台配置好,若已经清楚如何配置物联网平台则继续查看接下来的教程,若不知道物联网平台应该如何配置,请根据使用的物联网平台进行跳转:EasyIoTSiot v2Siot v1

  • 通过WiFi模块顶部的POWER IN或Type-C口为WiFi模块供电(注意此时WiFi模块的4Pin I2C Gravity口不能连接任何设备)

  • 等待WiFi模块上的白灯熄灭蓝灯亮起,使用电脑或手机搜索名为“ESP32 Hotspot”的WiFi热点并连接,密码为“12345678”

  • 连接成功后打开浏览器,在搜索框输入“192.168.32.32”打开配置页面

  • 填入相应的配置信息,若不知道如何获取物联网平台MQTT参数,请根据使用的平台进行跳转:EasyIoTSiot v2Siot v1

    • WiFi SSID: 填入WiFi 账号
    • WiFi Password: 填入WiFi 密码
    • MQTT Server: 填入MQTT 服务器地址
    • MQTT Username: 填入MQTT 账号
    • MQTT Password: 填入MQTT 密码
    • Save: 若使用siotv2此处填1,若干使用siotv1或Easyiot此处填0
    • Topic Line 1: SCI屏幕上的第1行数据发送到的Topic名称
    • Topic Line 2: SCI屏幕上的第2行数据发送到的Topic名称, 若只有2个数据,则后面可以不填
    • Topic Line 3: SCI屏幕上的第3行数据发送到的Topic名称
    • ...
    • Topic Line 10: SCI屏幕上的第10行数据发送到的Topic名称
  • 填完后点击最下方的“Submit”,此时WiFi模块的指示灯会变为绿色,指示配置完成

  • 至此,WiFi模块配置完成,将WiFi模块断电

WiFi模块使用

注:WiFi扩展模块的POWER IN电池接口、Type-C接口、Gravity接口不能同时输入电源。这可能会对WiFi模块造成损坏

若首次使用,请先进行上一步中的WiFi模块配置。若已配置完成请继续阅读。

  • 将要上报数据的传感器连接到SCI采集模块左侧接口

  • 在WiFi模块断电状态下,将WiFi模块连接到SCI采集模块的右侧接口

  • 通过Type-C或POWER IN口为WiFi模块供电(必须由WiFi模块为SCI供电,SCI无法为WiFi模块供电)

  • 上电后,会看到WiFi模块上先亮白灯开始初始化

  • 约5秒后初始化完成亮红灯,此时开始连接WiFi

  • WiFi连接成功后亮黄灯,此时开始连接MQTT

  • MQTT连接成功后,紫灯闪烁三下指示MQTT连接成功,开始准备上报数据

  • WiFi模块会根据SCI的采样率设置开始上报数据,上报时紫灯闪烁一下

    • 上报频率最高为5S/次,当SCI的采样率设置小于5S时,WiFi模块也会每5S上报一次数据
    • WiFi模块仅在初始化阶段读取一次SCI的采样率,因此中途修改SCI的采样率不会改变WiFi模块上报的频率,如需修改,需先将SCI采样率修改后,按下WiFi模块的复位键重启系统

指示灯状态说明

  • 白灯常亮:初始化中
  • 蓝灯常亮:等待Web配置中
  • 绿灯常亮:配置成功
  • 红灯常亮:Wi-Fi连接中
  • 黄灯常亮:MQTT连接中
  • 紫灯快闪三下:MQTT连接成功
  • 紫灯短闪:上报数据中(亮的时长跟上报的数据量有关,上报数据越多亮的时间越长)
  • 紫灯常亮:开始定时上报后,SCI模块中途断连

EasyIoT平台配置

  • 1.打开EasyIoT 工作间 (dfrobot.com.cn),如未注册需要先注册

  • 2.创建所需的设备数量。例如想要上报温度和湿度两条数据,则只需要创建两个设备。当然也可以直接创建十个设备,暂时用不到的设备可以空置

  • 3.记下EasyIoT平台的如下参数,用于填入WiFi模块的配置项中:

    • WiFi SSID: 一个可访问互联网的WiFi账号
    • WiFi Password: WiFi 密码
    • MQTT Server:obloq1.dfrobot.com.cn (EasyIoT平台中,此参数固定)
    • MQTT Username:下图序号1位置
    • MQTT Password:下图序号2位置
    • Topic Line 1: 下图序号3位置
    • Topic Line 2: 下图序号4位置
    • ...
    • Topic Line 10: 下图序号5位置
  • 4.至此EasyIoT平台配置完成,继续配置WiFi模块

  • 现象预览:传感器、SCI、WiFi模块接好并正常工作后,可以在上图页面中,点击查看详情

Siot v1平台配置

  • 3.在电脑中通过“win+R”键打开cmd 命令行终端
  • 4.输入“ipconfig”指令后回车,找到并记下无线局域网的IPV4地址
  • 5.记下Siot v1平台的如下参数,用于填入WiFi模块的配置项中:
    • WiFi SSID: 跟运行SIoT.exe的电脑连接相同WiFi,可以是局域网
    • WiFi Password: WiFi 密码
    • MQTT Server:第四步中获取的IP,例192.168.9.187
    • MQTT Username:siot (Siot v1平台中,此参数固定)
    • MQTT Password:dfrobot (Siot v1平台中,此参数固定)
    • Topic Line 1: siot/Line1 (Siot v1平台中,会根据填入的主题名自动创建主题,格式为siot/xxxx)
    • Topic Line 2: siot/Line2(Siot v1平台中,会根据填入的主题名自动创建主题,格式为siot/xxxx)
    • ...
    • Topic Line 10: siot/Line10(Siot v1平台中,会根据填入的主题名自动创建主题,格式为siot/xxxx)
  • 6.通过第四步获取的IP,在浏览器中输入"IP地址:8080",例192.168.9.187:8080
  • 7.至此Siot v1平台配置完成,继续配置WiFi模块

  • 现象预览:传感器、SCI、WiFi模块接好并正常工作后,在第六步打开的Siot v1页面中,点击“查看设备列表” - “查看消息”,即可看到上传的传感器数据

Siot v2平台配置

  • 说明:这里更推荐用行空板M10运行Siot v2服务,教程中也将基于使用行空板M10运行Siot v2服务。如需在电脑上运行Siot v2服务,请参考教程:SIoT V2下载使用-教程
  • 1.行空板通过Type-C口连接到电脑
  • 2.行空板开机后在浏览器输入10.1.2.3 打开网页
  • 3.在“网络设置”中,连接WiFi,并记录下IP
  • 4.在“应用开关”中启用SIOT服务,然后“打开页面”
  • 5.点击新建主题,输入主题名,这里为了更好的跟SCI屏幕显示的行数对应,起名为Line x

  • 6.创建所需的主题数量。例如想要上报温度和湿度两条数据,则只需要创建两个主题。当然也可以直接创建十个主题,暂时用不到的主题可以空置

  • 7.记下Siot v2平台的如下参数,用于填入WiFi模块的配置项中:
    • WiFi SSID: 跟第三步中行空板连接的WiFi需要时用一个WiFi,可以是局域网
    • WiFi Password: WiFi 密码
    • MQTT Server:第三步中获取的IP,例192.168.9.223
    • MQTT Username:siot (Siot v2平台中,此参数固定)
    • MQTT Password:dfrobot (Siot v2平台中,此参数固定)
    • Topic Line 1: siot/Line1 (第六步中,双击复制对应的主题名)
    • Topic Line 2: siot/Line2(第六步中,双击复制对应的主题名)
    • ...
    • Topic Line 10: siot/Line10(第六步中,双击复制对应的主题名)
  • 8.至此Siot v2平台配置完成,继续配置WiFi模块
  • 现象预览:传感器、SCI、WiFi模块接好并正常工作后,在第六步打开的Siot v2页面中,点击“查看详情”,即可看到上传的传感器数据。也可借助Mind+可视化面板,自定义自己喜欢的显示界面:Mind+数据可视化面板-教程

常见问题

  • 身边没有手机/电脑对WiFi模块进行配置?

    • 可使用Arduino对WiFi模块进行配置,请严格按照以下步骤操作,要先烧录完代码再将WiFi模块与Arduino相连

    • 下载库:DFRobot_SCIWifiIotModule

    • 为Arduino烧录代码

    • WiFi模块未连接其他任何电源的情况下,将WiFi模块与Arduino通过I2C连接

    • 等待WiFi模块的指示灯变绿

    • 若指示灯没有变绿而变为其他颜色,则断开WiFi模块与Arduino的连接 - 复位Arduino - 重新将WiFi模块接到Arduino上

#include "DFRobot_SCIWifiModule.h"
DFRobot_SCIWifiModule wifi;

const char* wifiSSID = "DFRobot-guest";// WiFi 账号
const char* wifiPassword = "dfrobot@2017";// WiFi 密码

const char* mqttServer = "192.168.9.223";//MQTT 服务器地址 Easyiot:iot.dfrobot.com.cn或obloq1.dfrobot.com.cn , siot:192.168.x.x
const char* mqttsave = "1";//若使用siotv2此处填1,若干使用siotv1或Easyiot此处填0
const char* mqttUsername = "siot";//MQTT 账号
const char* mqttPassword = "dfrobot";//MQTT 密码

// MQTT topics configuration
const char* mqttTopics[] = {
    "siot/Line1", /*SCI屏幕上的第1行数据发送到的Topic名称*/
    "siot/Line2", /*SCI屏幕上的第2行数据发送到的Topic名称*/
    "siot/Line3", /*SCI屏幕上的第3行数据发送到的Topic名称*/
    "siot/Line4", /*SCI屏幕上的第4行数据发送到的Topic名称*/
    "siot/Line5", /*SCI屏幕上的第5行数据发送到的Topic名称*/
    "siot/Line6", /*SCI屏幕上的第6行数据发送到的Topic名称*/
    "siot/Line7", /*SCI屏幕上的第7行数据发送到的Topic名称*/
    "siot/Line8", /*SCI屏幕上的第8行数据发送到的Topic名称*/
    "siot/Line9", /*SCI屏幕上的第9行数据发送到的Topic名称*/
    "siot/Line10"/*SCI屏幕上的第10行数据发送到的Topic名称*/
};

void setup() {
    Serial.begin(115200);
// Initialize WiFi module
while(wifi.begin() != 1) {
    Serial.println("sci wifi module connect error!!");
    delay(1000);
}

// Clean previous configurations
wifi.cleanConfig();
delay(100);

// Configure WiFi
wifi.configWifi(wifiSSID, wifiPassword);
delay(100);

// Configure MQTT
wifi.configMqtt1(mqttServer, mqttsave);
delay(100);
wifi.configMqtt2(mqttUsername, mqttPassword);
delay(100);

// Configure MQTT topics
for (int i = 0; i < 10; i++) {
    wifi.configTopic(String(i + 1).c_str(), mqttTopics[i]);
    delay(10);
}

// End configuration
wifi.endConfig();
Serial.println("config end");
}

void loop() {
    // Your loop code here
}

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多