找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3235|回复: 3
收起左侧

stc89c51+ esp8266-01发微信消息,POST例程

[复制链接]
ID:601884 发表于 2020-5-30 16:20 | 显示全部楼层 |阅读模式
材料准备
STC89c51/52 一块
ESP8266-01一块
手机一块
第一 下载STC89c51示例程序(keil 编程开发)
程序下载地址: cloud.bemfa点com/zip/stc89c51_wechat.zip
程序说明,波特率9600,晶振11.0592
由于ESP8266-01默认波特率是115200,需要先手动调节esp8266-01的波特率。
调整方法:ESP8266-01连接到usb转ttl

五根线
esp8266---------UsbTTL
tx----------rx
rx----------tx
vcc-------3.3v
gnd--------gnd
en----------3.3v

打开串口调试助手,设置波特率115200,找到esp8266的com口并打开,发送

  1. AT+UART=9600,8,1,0,0
复制代码

末尾应该加上回车换行,串口会回复ok

如果不回复ok,可能固件不支持修改波特率,需要刷官方AT固件,可见我发的另一篇 刷官方固件


串口调试助手下载工具:wwwlanzous点com/iax97ih 密码:1234

用keil 打开程序,需要修改WIFI等信息


  1. #define Ssid  "newhtc"                        //WIFI名称,,修改为自己路由器的WIFI名称,好像不支持中文
  2. #define PassWord  "qq123456"              //WIFI密码,修改为自己路由器的
  3. #define Uid  "4d9ec352e0376f2110a0c601a2857225" //巴法云UID密钥,控制台获取
  4. #define Device  "ewew00232"          //设备名称,自己随意命名,字符串形式</font></font></font>
复制代码


用户私钥可以巴法云控制台点击跳转获取,微信扫码登陆后,即可在巴法创客云控制台点击跳转获取。

邮箱注册的用户,需要在控制台点击“绑定微信”,进行绑定,不然没法推送消息。

登陆完成后,可在控制台看到自己的私钥UID,如图所示:


第二 关键程序讲解
  1.         int dataLen;
  2.         uchar postData[150];
  3.         char strLen[3];
  4.         char Msg[] = "消息";             //消息体,自定义即可,字符串格式
  5.         char Msg2[] = "消息2,备注消息";                //附加消息,自定义即可,字符串格式
  6.          
  7.         sprintf(postData,"uid=%s&type=1&time=0&device=%s&msg=%s&msg2=%s\r\n",Uid,Device,Msg,Msg2); //通过&符号整合需要post的数据
  8.         dataLen = strlen(postData);             //计算数据长度
  9.         sprintf(strLen,"%d",dataLen);                                         //int类型转char

  10.         ESP8266_Set("AT+CIPMODE=1"); //开启透明传输模式
  11.         ms_delay(1000);
  12.         ESP8266_Set("AT+CIPSTART=\"TCP\",\"api.bemfa点com\",80");  // 连接服务器和端口
  13.         ms_delay(1000);
  14.         ESP8266_Set("AT+CIPSEND"); //进入透传模式,下面发的都会无条件传输
  15.         ms_delay(1000);
  16.         ESP8266_Set_Only("POST /api/wechat/v1/ HTTP/1.1\r\nHost: ai.bemfa点com\r\nContent-Type: application/x-www-form-urlencoded\r\nConnection:close\r\nContent-Length:");//ţքdeviceۅ ţքsensorۅ
  17.         ESP8266_Set(strLen);//数据长度(postData数据长度),一定要准确
  18.         ESP8266_Set("");//回车(发完数据长度后,有回车,不懂的百度http post 格式)
  19.         ESP8266_Set(postData);//发送数据        
  20.         ms_delay(2000);
  21.         ESP8266_Set("+++"); //
  22.         memset(strLen,'\0',3);  //重置数组
  23.         memset(strLen,'\0',sizeof postData);//重置数组
复制代码

利用HTTP POST形式,往微信端api进行消息推送,具体接口可参考:巴法云官方文档
第三 下载程序到STC89c51即可

下载工具STC-ISP:下载:www点lanzous点com/iaxa4fc 密码:1234

STC89和ESP8266接线问题
c51 ----------8266
P30----------TX
P31----------RX
3.3v-----------3.3v
Gnd---------Gnd
3.3v-----------EN
试了8266直接接5v也工作,不过不建议使用

第四 效果展示

第五 可能遇到的一些小问题


回复

使用道具 举报

ID:302325 发表于 2020-6-1 01:45 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:536280 发表于 2020-10-15 22:08 来自手机 | 显示全部楼层
大哥行不通啊
回复

使用道具 举报

ID:277550 发表于 2020-10-16 09:09 | 显示全部楼层

esp8266刷arduino程序,不用别的单片机了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表