当前位置: 首页 > wzjs >正文

劳务公司网站怎么做搜索关键词软件

劳务公司网站怎么做,搜索关键词软件,广州专业做外贸网站,长沙做模板网站之前只做过类似的但是以为这种烂大街的功能应该不难结果还是踩了不少坑,记录几个需要注意的点 1、创建产品的时候选择onejson,自定义方案。这样选择的就是物模型,之后可以去使用物模型的API调试。 2、设置物模型 大概有以下几种比较常用的&…

之前只做过类似的但是以为这种烂大街的功能应该不难结果还是踩了不少坑,记录几个需要注意的点

1、创建产品的时候选择onejson,自定义方案。这样选择的就是物模型,之后可以去使用物模型的API调试。

2、设置物模型

大概有以下几种比较常用的,int32,float,enum。enum设置的属性都是到时候用来做指令下发的,其余是上传传感器数据的。要注意onenet平台接受的是json格式数据,而且上传的数据格式必须与你设置的对应上。下面给了个OneNet_FillBuf示例。id不用改,主要是temper标识符和value后面的格式 %d 需要和你设置的物模型对应上

unsigned char OneNet_FillBuf(char *buf)
{char text[48];strcpy(buf,"{\"id\":\"1124\",\"params\":{");memset(text,0,sizeof(text));sprintf(text,"\"temper\":{\"value\":%d},",sensorData.temp);strcat(buf,text);memset(text,0,sizeof(text));sprintf(text,"\"humidity\":{\"value\":%.2f},",sensorData.humidity);strcat(buf,text);memset(text,0,sizeof(text));sprintf(text,"\"tvoc\":{\"value\":%d},",sensorData.tvoc);strcat(buf,text);memset(text,0,sizeof(text));sprintf(text,"\"light\":{\"value\":%d},",sensorData.light);strcat(buf,text);memset(text,0,sizeof(text));sprintf(text,"\"water_level\":{\"value\":%.2f}",sensorData.water_level);strcat(buf,text);strcat(buf,"}}");return strlen(buf);}//==========================================================
//	函数名称:	OneNet_SendData
//
//	函数功能:	上传数据到平台
//
//	入口参数:	type:发送数据的格式
//
//	返回参数:	无
//
//	说明:		
//==========================================================
void OneNet_SendData(void)
{MQTT_PACKET_STRUCTURE mqttPacket = {NULL, 0, 0, 0};												//协议包char buf[256];short body_len = 0, i = 0;memset(buf, 0, sizeof(buf));//清空数组内容body_len = OneNet_FillBuf(buf);	//获取当前需要发送的数据流的总长度//printf("%s\r\n",buf);if(body_len){if(MQTT_PacketSaveData(DEVICE_NAME, body_len, NULL, 5, &mqttPacket) == 0)							//封包{for(; i < body_len; i++){mqttPacket._data[mqttPacket._len++] = buf[i];}ESP8266_SendData(mqttPacket._data, mqttPacket._len);									//上传数据到平台MQTT_DeleteBuffer(&mqttPacket);															//删包}else;
//			//printf(  "WARN:EDP_NewBuffer Failed\r\n");}}

3、微信小程序实现传感器数据的同步显示和指令下发

这里主要用了这两个API,可以现在onenet云平台上调试一下,看正确的返回格式是什么样。

设备属性最新数据查询示例代码如下:

//OneNet接入信息配置
const MQTT_Product_Id = "";
const MQTT_Device_Name = "";// MQTT API配置
const MQTT_GET_URL = "https://iot-api.heclouds.com/thingmodel/query-device-property?product_id=" + MQTT_Product_Id + "&device_name=" + MQTT_Device_Name;const MQTT_POST_URL = "https://iot-api.heclouds.com/thingmodel/set-device-desired-property";//使用token工具生成
const MQTT_Authorization = "";onLoad: function() {// 页面加载时立即获取一次数据this.getinfo();// 设置定时器,每5秒获取一次数据this.setData({timer: setInterval(() => {this.getinfo();}, 5000)});},getinfo: function() {var that = this;wx.request({url: MQTT_GET_URL,header: {"authorization": MQTT_Authorization},method: "GET",success: function(res) {console.log("获取成功", res);if (res.data && res.data.code === 0) {// 解析设备数据const deviceData = {};res.data.data.forEach(item => {if (item && item.identifier) {deviceData[item.identifier] = item.value;}});// 更新页面数据that.setData({soilHumidity: deviceData['humidity'] + '%',waterLevel: deviceData['water_level'] + 'm',lightIntensity: deviceData['light'] + 'lux',airQuality: deviceData['tvoc'],envTemper: deviceData['temper'] + '℃',lastUpdateTime: new Date().toLocaleTimeString()});}},fail: function(err) {console.error('获取数据失败:', err);}});}

指令下发的示例代码如下:

toggleMode() {const newMode = !this.data.autoMode;const modeValue = newMode ? 0 : 2;wx.request({url: MQTT_POST_URL,method: 'POST',header: {"authorization": MQTT_Authorization},data: {"product_id": MQTT_Product_Id,"device_name": MQTT_Device_Name,"params": {"mode": modeValue}},success: res => {console.log("模式切换成功:", res);this.setData({autoMode: newMode});},fail: err => {console.error("模式切换失败:", err);wx.showToast({title: '模式切换失败',icon: 'none'});}});},

4、微信小程序指令下发之后,单片机那边进行数据解析

单片机收到的数据是json格式的,所以只需要去寻找目标字段,然后读取后面的数值即可

void OneNet_RevPro(unsigned char *cmd)
{char *req_payload = NULL;char *cmdid_topic = NULL;unsigned short topic_len = 0;unsigned short req_len = 0;unsigned char qos = 0;static unsigned short pkt_id = 0;unsigned char type = 0;short result = 0;type = MQTT_UnPacketRecv(cmd);switch(type){case MQTT_PKT_PUBLISH:																//接收的Publish消息result = MQTT_UnPacketPublish(cmd, &cmdid_topic, &topic_len, &req_payload, &req_len, &qos, &pkt_id);if(result == 0){//				printf(  "topic: %s, topic_len: %d, payload: %s, payload_len: %d\r\n",
//																	cmdid_topic, topic_len, req_payload, req_len);				}case MQTT_PKT_PUBACK:														//发送Publish消息,平台回复的Ackif(MQTT_UnPacketPublishAck(cmd) == 0){//printf(  "Tips:	MQTT Publish Send OK\r\n");}break;case MQTT_PKT_SUBACK:																//发送Subscribe消息的Ackif(MQTT_UnPacketSubscribe(cmd) == 0){//printf(  "Tips:	MQTT Subscribe OK\r\n");}else{//printf(  "Tips:	MQTT Subscribe Err\r\n");}break;default:result = -1;break;}ESP8266_Clear();									//清空缓存if(result == -1)return;//解析req_payload数组中的值即可char *pump_ptr = strstr(req_payload, "\"pump\":");if (pump_ptr != NULL) {}if(type == MQTT_PKT_CMD || type == MQTT_PKT_PUBLISH){MQTT_FreeBuffer(cmdid_topic);MQTT_FreeBuffer(req_payload);}}

http://www.dtcms.com/wzjs/52230.html

相关文章:

  • 网站建设近义词2024年2月疫情又开始了吗
  • 网站建设收费价目表seo优化的主要任务包括
  • 做网站卖东西赚钱在线seo超级外链工具
  • 白银网站建设熊掌号现在感染症状有哪些
  • 网站快速排名技巧网站关键词公司
  • 企业建站划算吗seo网站排名优化公司哪家
  • 教育培训类网站建设搜搜
  • 河南省建设工程招标信息网湖南网络优化服务
  • 做外贸需要网站吗学推广网络营销去哪里
  • 网站源码模板济南优化网页
  • 江门高端网站建设市场营销方案怎么做
  • 灌南住房和城乡建设局网站网站策划书模板范文
  • 帮人做兼职的网站登封搜索引擎优化
  • 建设工程168类似的网站推广竞价托管公司
  • 农村做网站开发品牌广告文案
  • 网站建设文献文档网站制作多少钱
  • 做境外碎片化旅游的网站职业技能培训平台
  • php做网站难么seo赚钱培训
  • 衡水网站优化安卓优化大师手机版
  • wordpress更改wp文件夹沈阳关键词优化报价
  • 龙岗做网站的公司汕头seo关键词排名
  • dw6做网站app拉新推广平台代理
  • 网站备案建设方案济南网络优化网址
  • wordpress是怎么用的网站seo基础优化
  • 东莞做网站乐云seo今日国内新闻
  • 广州网站建设首选快优网络防御中心
  • 展示型网站案例北京网站优化校学费
  • 家用宽带做网站服务器腾讯第三季度营收448亿元
  • 用模板搭建的网站备案吗搜索引擎平台有哪些
  • qq网页版在线登录入口seo分析报告怎么写