一、实物图
前端uniapp效果图(实现与onenet同步更新数据)
首先要确定接线图和接线顺序:
1、stm32c8t6开发板连接stlinkv2下载线
ST-LINK V2 | STM32 |
---|---|
3.3V | 3.3V |
SWDIO | SWIO |
SWCLK | SWCLK |
GND | GND |
2、ch340串口连接底座(注意RXD和TXD的连接方式)
CH340 | 底座 |
---|---|
3.3V | 3.3V |
RXD | TXD |
TXD | RXD |
GND | GND |
3、https://open.iot.10086.cn/console/device/manage/devs
在onenet官网创建设备,名字地区随便写,创建成功后点击设备详情页面
4、产品开发栏进行添加属性
附上main.c一部分代码文件
//单片机头文件
#include "stm32f10x.h"//网络协议层
#include "onenet.h"//网络设备
#include "esp8266.h"//硬件驱动
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "dht11.h"
#include "oled.h"//C库
#include <string.h>#define ESP8266_ONENET_INFO "AT+CIPSTART=\"TCP\",\"mqtts.heclouds.com\",1883\r\n"void Hardware_Init(void);
void Display_Init(void);
void Refresh_Data(void);u8 temp,humi;/*
************************************************************
* 函数名称: main
*
* 函数功能:
*
* 入口参数: 无
*
* 返回参数: 0
*
* 说明:
************************************************************
*/
int main(void)
{unsigned short timeCount = 0; //发送间隔变量unsigned char *dataPtr = NULL;Hardware_Init(); //初始化外围硬件ESP8266_Init(); //初始化ESP8266// UsartPrintf(USART_DEBUG, "Connect MQTTs Server...\r\n");OLED_Clear(); OLED_ShowString(0,0,"Connect MQTTs Server...",16);while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT"))DelayXms(500);
// UsartPrintf(USART_DEBUG, "Connect MQTT Server Success\r\n");OLED_ShowString(0,4,"Connect MQTT Server Success",16); DelayXms(500);OLED_Clear(); OLED_ShowString(0,0,"Device login ...",16);while(OneNet_DevLink()) //接入OneNET{ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT");DelayXms(500);}OneNET_Subscribe();Display_Init();while(1){if(++timeCount >= 100) //发送间隔5s{DHT11_Read_Data(&temp,&humi);// UsartPrintf(USART_DEBUG, "OneNet_SendData\r\n");OneNet_SendData(); //发送数据timeCount = 0;ESP8266_Clear();}dataPtr = ESP8266_GetIPD(0);if(dataPtr != NULL)OneNet_RevPro(dataPtr);Refresh_Data();DelayMs(10);}}