单片机连接新版OneNET云平台数据APP端查看控制说明
  • 1、功能介绍
  • 2、教程
  • 2.1、电路图设计
  • 2.2、STM32单片机程序说明
  • 2.3、wifi信息配置
  • 2.4、修改产品、设备信息
  • 2.5、向onenet云平台上传数据
  • 2.3、Android Studio 手机APP程序说明
  • 2.3.1、手机app连接onenet云平台参数修改
  • 2.3.2、获取onenet云平台参数说明
  • 3、实物图
  • 4、资料链接

1、功能介绍

  • 1、使用stm32单片机采集温湿度
  • 2、stm32单片机将采集的温湿度数据上传onenet物联网云平台
  • 3、使用手机app查看onenet云平台数据
  • 4、使用app控制LED灯的打开与关闭

2、教程

  • 代码中的产品id,access_key,user_id等参数的获取,可查看上述视频。

2.1、电路图设计

  • 本设计使用stm32单片机最小系统+dht11温湿度传感器+esp8266 wifi模块构成
  • 电路原理图如下图所示:

2.2、STM32单片机程序说明

2.3、wifi信息配置
  • 打开esp8266.c,修改 ESP8266_WIFI_INFO 宏定义
/*
magic为wifi名
123456789为wifi密码
修改为你的wifi信息即可
*/
#define ESP8266_WIFI_INFO		"AT+CWJAP=\"magic\",\"123456789\"\r\n"
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
2.4、修改产品、设备信息
  • 打开onenet.c,需要修改以下参数
  • 产品ID
  • 产品access key
  • 设备名
#define PROID			"Yqy9pQ5Zhm"  //产品ID
#define ACCESS_KEY		"ZfGhQcmBpx0j2RNx3z8rny9hNaOLK1xxxxxxxx" //产品access key
#define DEVICE_NAME		"test1"
  • 1.
  • 2.
  • 3.
2.5、向onenet云平台上传数据
  • 修改 OneNet_FillBuf 函数中的参数
unsigned char OneNet_FillBuf(char *buf)
{
	char text[48];
	
	memset(text, 0, sizeof(text));
	strcpy(buf, "{\"id\":\"123\",\"params\":{");
	
	memset(text, 0, sizeof(text));
	sprintf(text, "\"temp\":{\"value\":%f},", (float)temperature);
	strcat(buf, text);
	
	memset(text, 0, sizeof(text));
	sprintf(text, "\"humi\":{\"value\":%f},", (float)humidity);
	strcat(buf, text);
	
	memset(text, 0, sizeof(text));
	sprintf(text, "\"switchs\":{\"value\":%s}", led_info.Led_Status? "true" : "false");
	strcat(buf, text);
	
	strcat(buf, "}}");
	
	return strlen(buf);
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

2.3、Android Studio 手机APP程序说明

2.3.1、手机app连接onenet云平台参数修改
  • 找到 MainActivity 函数,修改该函数中以下参数
  • Device_Name
  • Pe_ID
  • user_id
  • user_accesskey
private String Device_Name="test1"; //设备名称
    private String Pe_ID="Yqy9pQ5Zhm"; //产品ID
    private String path_head = "https://iot-api.heclouds.com/thingmodel/query-device-property?product_id=";
    private String path_end = "&device_name=";
    private String user_id="80508"; //用户id
    private String user_accesskey="mYpdlAVNyfz4LOF7Qfv5N4PdFFJwMxxxxxxxxxxxx"; //用户accesskey
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
2.3.2、获取onenet云平台参数说明
  • 找到 DealJsonData 函数,将该函数内的参数修改为你将要获取的参数标识符
void DealJsonData(String JSON) throws JSONException {  /* 解析接收到的json数据 */
        JSONObject jsonObject = new JSONObject(JSON);
        JSONArray data = jsonObject.optJSONArray("data");/* 获取JSON的数组结构 */
        for (int i = 0; i < data.length(); i++) {
            JSONObject value = data.getJSONObject(i);
            if(value.optString("identifier").equals("temp")) {  /* 查找temp参数 */
                temp_value = value.optString("value");
            }
            if(value.optString("identifier").equals("humi")) {
                dh_value = value.optString("value");
            }
            if(value.optString("identifier").equals("switchs")) {
                switchs_value = value.optBoolean("value");
            }
        }
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

3、实物图

单片机连接新版OneNET云平台数据APP端查看控制说明_onenet