qzc0927 发表于 2023-12-20 18:03

【DFRobot 云雀气象仪】学习笔记07(微信小程序实时显示云雀气象仪数据和阈值告警)

## 11:制作一个微信小程序,手机端实时查看数据变化;

小程序*是一种新的开放能力,可以在*微信*内被便捷地获取和传播,同时具有出色的使用体验。小程序开发者可在小程序内提供便捷、丰富的服务,如预订、商品购买、游戏、信息查询等。我们这里使用微信小程序实时查看云雀气象仪中的各个气象数据。为了方便对接小程序,我们使用腾讯物联网云平台来实现。

### 11.1:创建产品

登录腾讯云物联网云平台,[总览 - 控制台 - 腾讯云 (tencent.com)](https://console.cloud.tencent.com/),点击进入物联网开放平台。

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220163855178.png)

选择公共实例,如下图所示:

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220163932838.png)

点击新建产品,创建名为云雀气象仪的产品。

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220164327822.png)

具体创建信息如下:

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220164421807.png)

### 11.2:设置物模型数据信息

点击新建自定义功能。分别添加温度,湿度,风速,风向,海拔,气压等信息。

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220164521936.png)

比如添加温度功能信息:

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220165140275.png)

创建好的信息如下:

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220165111825.png)

### 11.3:创建设备

点击新建设备,创建自己的设备,命名位dev001。

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220165309643.png)

可以看到当前设备是位激活,处于离线状态。接着进行设备对接

### 11.4:数据对接

查看物联网开发平台开发文档:

[物联网开发平台 物模型协议-开发者指南-文档中心-腾讯云 (tencent.com)](https://cloud.tencent.com/document/product/1081/34916)

其中最关键的设备属性上报:

当设备需要向云端上报设备运行状态的变化时,以通知应用端小程序、App 实时展示或云端业务系统接收设备上报属性数据,物联网开发平台为设备设定了默认的 Topic:

设备属性上行请求 Topic: `$thing/up/property/{ProductID}/{DeviceName}`

设备属性下行响应 Topic: `$thing/down/property/{ProductID}/{DeviceName}`

点击上面的设备名,可查看具体的设备信息:

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220170006939.png)

这些是三元组信息,用于MQTT协议调试使用。

### 11.5:数据调试

首先配置ESP8266网络,先连接云平台,使设备在线。

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220172608025.png)

这就说明我们的物联网通讯协议连接成功,MQTT协议正常响应和应答。首先将获取到的气象仪数据在LCD上显示:

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220173332207.png)

再进行数据上传,登录云平台,发现数据已更新:

!(C:\Users\qzc09\AppData\Roaming\Typora\typora-user-images\image-20231220174348772.png)

### 11.6:微信小程序显示数据

回到设备界面,点击查看二维码信息:

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220174719633.png)

弹出二维码信息:

!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220174746270.png)

使用腾讯连连微信小程序扫一扫。



!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220175037747.png)
!(https://boreyun.oss-cn-shanghai.aliyuncs.com/image-20231220175127926.png)
## 12:数据阈值报警

使用蜂鸣器进行阈值报警,蜂鸣器采用有源蜂鸣器。使用GPIO口输出,具体代码如下:

```c
/**
* 功能:初始化BEEP
* 参数:None
* 返回值:None
*/
void BEEP_Pin_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化结构体

        RCC_APB2PeriphClockCmd(BEEP_PORT_RCC, ENABLE); //使能GPIO和复用外设时钟
       
        GPIO_InitStructure.GPIO_Pin = BEEP_PIN;                                  //设置对应引脚
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                //设置推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //工作速度50MHz
        GPIO_Init(BEEP_PORT, &GPIO_InitStructure);                                          //设置生效
        GPIO_SetBits(BEEP_PORT, BEEP_PIN);                                                  //默认低电平,LED不亮
}

/**
* 功能:点亮LED
* 参数:None
* 返回值:None
*/
void Buzzer_Start(void)
{
        GPIO_ResetBits(BEEP_PORT, BEEP_PIN); //设置引脚为低电平       
}

/**
* 功能:熄灭LED
* 参数:None
* 返回值:None
*/
void Buzzer_Stop(void)
{
        GPIO_SetBits(BEEP_PORT, BEEP_PIN); //设置引脚为高电平
}



/**
* 功能:翻转LED
* 参数:None
* 返回值:None
*/
void Toggle_BEEP(void)
{
        BEEP_PORT->ODR ^= BEEP_PIN;
}

```

对阈值进行报警,当大于指定阈值时候,蜂鸣器报警。

```c
    if((gVarInfo.tempH>=gVarInfo.maxTemp)||(gVarInfo.humiH>=gVarInfo.maxHumi))
    {
      Buzzer_Start();
    }
    else
    {
            Buzzer_Stop()
    }
```

lugl4313820 发表于 2023-12-21 07:23

大佬这前端后端玩得很溜,让大家学习到何把物联网开发流程走了一遍,感谢优秀的分享!

qzc0927 发表于 2023-12-21 09:10

lugl4313820 发表于 2023-12-21 07:23
大佬这前端后端玩得很溜,让大家学习到何把物联网开发流程走了一遍,感谢优秀的分享!

<p>没有没有,前端比较浅<img height="55" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan11.gif" width="70" /></p>

lugl4313820 发表于 2023-12-21 09:27

qzc0927 发表于 2023-12-21 09:10
没有没有,前端比较浅

<p>这次这个评测的人选选得非常好呀,大佬你这样的帖子,非常适合我这种新手学习。</p>

lugl4313820 发表于 2023-12-21 09:29

<p>这个微信的收不收费,我最近被他们家的小程序搞死,代码没变,不给通了,关键是4年前我的源码还找不着了。</p>

qzc0927 发表于 2023-12-21 13:33

lugl4313820 发表于 2023-12-21 09:29
这个微信的收不收费,我最近被他们家的小程序搞死,代码没变,不给通了,关键是4年前我的源码还找不着了。
...

<p>不收费,对接到腾讯云平台,直接生成</p>
页: [1]
查看完整版本: 【DFRobot 云雀气象仪】学习笔记07(微信小程序实时显示云雀气象仪数据和阈值告警)