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

湖南网站seo地址怎么开店铺

湖南网站seo地址,怎么开店铺,300个吉祥公司名字,教育网站官网入口前文已经阐述了从MQTTX的客户端发送 信息到OneNet。 下面就用STM32代替MQTTX的客户端 发送信息到OneNet 硬件接线 main的代码如下 int main(void) {HAL_Init(); /* 初始化HAL库 */stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */led_init…

前文已经阐述了从MQTTX的客户端发送 信息到OneNet。

下面就用STM32代替MQTTX的客户端 发送信息到OneNet

硬件接线

main的代码如下

int main(void)
{HAL_Init();                         /* 初始化HAL库 */stm32_clock_init(RCC_PLL_MUL9);     /* 设置时钟, 72Mhz */led_init();                         /* 初始化LED灯 */uart1_init(115200);esp8266_init(115200);printf("hello world!\r\n");printf("MQTT初始化...\r\n");mqtt_init();printf("MQTT连接...\r\n");mqtt_connect(MQTT_ClientID, MQTT_UserName, MQTT_PassWord);uint8_t data_send[512] = {0};uint8_t dht11_data[4] = {0};while(1){ memset(dht11_data, 0, 4);dht11_read(dht11_data);sprintf((char *)data_send, "{\"id\":\"1386772172\",\"version\":\"1.0\",\"params\":{\"CurrentTemperature\":{\"value\":%d.%d},\"CurrentHumidity\":{\"value\":%d.%d}}}",dht11_data[2], dht11_data[3], dht11_data[0], dht11_data[1]);mqtt_publish_data(POST_TOPIC, (char *)data_send, 0);delay_ms(3000);printf("\r\n~~~~~~~~~~~~~~~~~·发送心跳包~~~~~~~~~~~~~~~~~\r\n");mqtt_send_heart();printf("\r\n~~~~~~~~~~~~~~~~~发送心跳包结束~~~~~~~~~~~~~~~~~\r\n");}
}

组成MQTT 的connect的报文格式;注意其中的长度字段,是后续的字节之和。采用长度字段,主要是因为解决TCP半包及粘包的需要。

Connect的包,头及body,都是采用同一个序列化的方式。都是字符串中每个字符转为ascii码。

与java中序列化的方式不完全一样。

        java中,如果采用类的序列化,它不是完全转换为ascii码。

       除非自定义类的序列化方式,自己来写序列化,可以把类中的每个属性,转为ascii码的方式

 

/*
º¯Êý¹¦ÄÜ: µÇ¼·þÎñÆ÷
º¯Êý·µ»ØÖµ: 0±íʾ³É¹¦ 1±íʾʧ°Ü
*/
uint8_t mqtt_connect(char *ClientID,char *Username,char *Password)
{
//    uint8_t i;uint8_t j;int ClientIDLen = strlen(ClientID);int UsernameLen = strlen(Username);int PasswordLen = strlen(Password);int DataLen;mqtt_txlen=0;//¿É±ä±¨Í·+Payload  ÿ¸ö×ֶΰüº¬Á½¸ö×ֽڵij¤¶È±êʶDataLen = 10 + (ClientIDLen+2) + (UsernameLen+2) + (PasswordLen+2);//¹Ì¶¨±¨Í·//¿ØÖƱ¨ÎÄÀàÐÍmqtt_txbuf[mqtt_txlen++] = 0x10;        //MQTT Message Type CONNECT//Ê£Ó೤¶È(²»°üÀ¨¹Ì¶¨Í·²¿)do{uint8_t encodedByte = DataLen % 128;DataLen = DataLen / 128;// if there are more data to encode, set the top bit of this byteif ( DataLen > 0 )encodedByte = encodedByte | 128;mqtt_txbuf[mqtt_txlen++] = encodedByte;}while ( DataLen > 0 );//¿É±ä±¨Í·//ЭÒéÃûmqtt_txbuf[mqtt_txlen++] = 0;            // Protocol Name Length MSB    mqtt_txbuf[mqtt_txlen++] = 4;           // Protocol Name Length LSB    mqtt_txbuf[mqtt_txlen++] = 'M';            // ASCII Code for M    mqtt_txbuf[mqtt_txlen++] = 'Q';            // ASCII Code for Q    mqtt_txbuf[mqtt_txlen++] = 'T';            // ASCII Code for T    mqtt_txbuf[mqtt_txlen++] = 'T';            // ASCII Code for T    //ЭÒé¼¶±ðmqtt_txbuf[mqtt_txlen++] = 4;                // MQTT Protocol version = 4    //Á¬½Ó±êÖ¾mqtt_txbuf[mqtt_txlen++] = 0xc2;            // conn flags mqtt_txbuf[mqtt_txlen++] = 0;                // Keep-alive Time Length MSB    mqtt_txbuf[mqtt_txlen++] = 100;            // Keep-alive Time Length LSB  100SÐÄÌø°ü  mqtt_txbuf[mqtt_txlen++] = BYTE1(ClientIDLen);// Client ID length MSB    mqtt_txbuf[mqtt_txlen++] = BYTE0(ClientIDLen);// Client ID length LSB      memcpy(&mqtt_txbuf[mqtt_txlen],ClientID,ClientIDLen);mqtt_txlen += ClientIDLen;if(UsernameLen > 0){   mqtt_txbuf[mqtt_txlen++] = BYTE1(UsernameLen);        //username length MSB    mqtt_txbuf[mqtt_txlen++] = BYTE0(UsernameLen);        //username length LSB    memcpy(&mqtt_txbuf[mqtt_txlen],Username,UsernameLen);mqtt_txlen += UsernameLen;}if(PasswordLen > 0){    mqtt_txbuf[mqtt_txlen++] = BYTE1(PasswordLen);        //password length MSB    mqtt_txbuf[mqtt_txlen++] = BYTE0(PasswordLen);        //password length LSB  memcpy(&mqtt_txbuf[mqtt_txlen],Password,PasswordLen);mqtt_txlen += PasswordLen; }    //    for(i=0;i<10;i++)
//    {memset(mqtt_rxbuf,0,mqtt_rxlen);mqtt_send_data(mqtt_txbuf,mqtt_txlen);for(j=0;j<10;j++)printf("%c",mqtt_txbuf[j]);for(j=0;j<10;j++){delay_ms(50);if (esp8266_wait_receive() == ESP8266_EOK)esp8266_copy_rxdata((char *)mqtt_rxbuf);//CONNECTif(mqtt_rxbuf[0]==parket_connetAck[0] && mqtt_rxbuf[1]==parket_connetAck[1] && mqtt_rxbuf[2]==parket_connetAck[2]) //Á¬½Ó³É¹¦{return 0;//Á¬½Ó³É¹¦}}
//    }char name[]="stevenwrite";printf("before connect return:%s\n",name);return 1;
}

打开串口助手

在网页上,看到实时的温湿度

这样的场景,可以更加深入的理解,物联网上,温度传感器通过STM32,接ESP8266的wifi的功能上传到服务器的全过程。


文章转载自:

http://UNXTDtxo.wgkqq.cn
http://vSGrWvc1.wgkqq.cn
http://F5kIH9Uu.wgkqq.cn
http://0VDhM3ji.wgkqq.cn
http://1Z0SkbZw.wgkqq.cn
http://2a9LHAqM.wgkqq.cn
http://puho0zGY.wgkqq.cn
http://spKK96J1.wgkqq.cn
http://NM39gInC.wgkqq.cn
http://Nr2LI8wt.wgkqq.cn
http://V3msGyKj.wgkqq.cn
http://XjVW5uhP.wgkqq.cn
http://OJegNhPY.wgkqq.cn
http://PCyTM9Lk.wgkqq.cn
http://8EKhz4pz.wgkqq.cn
http://HIkJlziP.wgkqq.cn
http://6iBCMfbV.wgkqq.cn
http://OPzRtN9J.wgkqq.cn
http://7lpDfF0l.wgkqq.cn
http://4WmAdset.wgkqq.cn
http://Y7Si35SJ.wgkqq.cn
http://yKBXLkiP.wgkqq.cn
http://nMO2Ahe8.wgkqq.cn
http://jTdvfOXy.wgkqq.cn
http://ja0OHaMR.wgkqq.cn
http://oQEOE3pY.wgkqq.cn
http://1uqrJEFI.wgkqq.cn
http://5TSLkXvp.wgkqq.cn
http://f62NnZ7k.wgkqq.cn
http://kZBxPVxe.wgkqq.cn
http://www.dtcms.com/wzjs/623366.html

相关文章:

  • 网站嵌入地图网站文件权限
  • 佛山 网址开发 网站制作网站建设服务中企动力
  • 钦州的网站建设张家港企业网站设计
  • 化隆网站建设公司建网站的费用是多少钱
  • 福建商城网站制作公司自做网站代码是多少
  • 网站建设超链接制作黑龙江省建设教育网站查询
  • 南京 网站开发什么待遇啊wordpress电脑安装教程视频
  • 安徽池州做网站的公司有人免费资源吗
  • 做空闲时间的网站给wordpress配置域名
  • 关于建筑建设的网站minify wordpress
  • 做球迷网站购物网站开发会遇到的的问题
  • 怎么才能访问自己做的网站中国设计品牌网
  • 南宁网站开发价格comodo ssl wordpress
  • wordpress开启redis缓存网站权重对优化的作用
  • 网站开发的相关语言有哪些公司网站建设怎么
  • 聊城 网站建设wordpress导入产品
  • a站网站开发如何记账
  • 丽水市住房和城建建设局网站淘宝网站的建设目标
  • 百度荤seo公司seo外链招聘
  • 个人可以做建站网站么做个网站找别人做的吗
  • 建网站代理wordpress游客登录
  • wordpress模板地址兰州网站优化哪家好
  • 南京的网站制作公司WordPress管理员密码多少位
  • 仿手表网站博州建设局网站
  • 基于ipv6的网站开发海南做网站的公司
  • 企业网站建站系统哪个好用公司网站建设规划
  • 福州市市政建设开发有限公司网站旅游网站界面设计
  • 南昌网站建设好企业网站仪器网站模板
  • 网站建设 500强建站wordpress的简单介绍
  • 兰州市做网站的龙岩网站设计招聘网