材料準備
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口并打開,發送
末尾應該加上回車換行,串口會回復ok 如果不回復ok,可能固件不支持修改波特率,需要刷官方AT固件,可見我發的另一篇 刷官方固件 
串口調試助手下載工具:www點lanzous點com/iax97ih 密碼:1234 用keil 打開程序,需要修改WIFI等信息
- #define Ssid "newhtc" //WIFI名稱,,修改為自己路由器的WIFI名稱,好像不支持中文
- #define PassWord "qq123456" //WIFI密碼,修改為自己路由器的
- #define Uid "4d9ec352e0376f2110a0c601a2857225" //巴法云UID密鑰,控制臺獲取
- #define Device "ewew00232" //設備名稱,自己隨意命名,字符串形式</font></font></font>
復制代碼
用戶私鑰可以巴法云控制臺點擊跳轉獲取,微信掃碼登陸后,即可在巴法創客云控制臺點擊跳轉獲取。 郵箱注冊的用戶,需要在控制臺點擊“綁定微信”,進行綁定,不然沒法推送消息。 
登陸完成后,可在控制臺看到自己的私鑰UID,如圖所示: 
第二 關鍵程序講解
- int dataLen;
- uchar postData[150];
- char strLen[3];
- char Msg[] = "消息"; //消息體,自定義即可,字符串格式
- char Msg2[] = "消息2,備注消息"; //附加消息,自定義即可,字符串格式
-
- sprintf(postData,"uid=%s&type=1&time=0&device=%s&msg=%s&msg2=%s\r\n",Uid,Device,Msg,Msg2); //通過&符號整合需要post的數據
- dataLen = strlen(postData); //計算數據長度
- sprintf(strLen,"%d",dataLen); //int類型轉char
- ESP8266_Set("AT+CIPMODE=1"); //開啟透明傳輸模式
- ms_delay(1000);
- ESP8266_Set("AT+CIPSTART=\"TCP\",\"api.bemfa點com\",80"); // 連接服務器和端口
- ms_delay(1000);
- ESP8266_Set("AT+CIPSEND"); //進入透傳模式,下面發的都會無條件傳輸
- ms_delay(1000);
- 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ۅ
- ESP8266_Set(strLen);//數據長度(postData數據長度),一定要準確
- ESP8266_Set("");//回車(發完數據長度后,有回車,不懂的百度http post 格式)
- ESP8266_Set(postData);//發送數據
- ms_delay(2000);
- ESP8266_Set("+++"); //
- memset(strLen,'\0',3); //重置數組
- 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也工作,不過不建議使用
第四 效果展示 第五 可能遇到的一些小問題

|