材料準(zhǔn)備
STC89c51/52 一塊
ESP8266-01一塊
手機(jī)一塊
第一 下載STC89c51示例程序(keil 編程開(kāi)發(fā))
程序下載地址: cloud.bemfa點(diǎn)com/zip/stc89c51_wechat.zip
程序說(shuō)明,波特率9600,晶振11.0592
由于ESP8266-01默認(rèn)波特率是115200,需要先手動(dòng)調(diào)節(jié)esp8266-01的波特率。
調(diào)整方法:ESP8266-01連接到usb轉(zhuǎn)ttl
五根線
esp8266---------UsbTTL
tx----------rx
rx----------tx
vcc-------3.3v
gnd--------gnd
en----------3.3v
打開(kāi)串口調(diào)試助手,設(shè)置波特率115200,找到esp8266的com口并打開(kāi),發(fā)送
末尾應(yīng)該加上回車換行,串口會(huì)回復(fù)ok 如果不回復(fù)ok,可能固件不支持修改波特率,需要刷官方AT固件,可見(jiàn)我發(fā)的另一篇 刷官方固件 
串口調(diào)試助手下載工具:www點(diǎn)lanzous點(diǎn)com/iax97ih 密碼:1234 用keil 打開(kāi)程序,需要修改WIFI等信息
- #define Ssid "newhtc" //WIFI名稱,,修改為自己路由器的WIFI名稱,好像不支持中文
- #define PassWord "qq123456" //WIFI密碼,修改為自己路由器的
- #define Uid "4d9ec352e0376f2110a0c601a2857225" //巴法云UID密鑰,控制臺(tái)獲取
- #define Device "ewew00232" //設(shè)備名稱,自己隨意命名,字符串形式</font></font></font>
復(fù)制代碼
用戶私鑰可以巴法云控制臺(tái)點(diǎn)擊跳轉(zhuǎn)獲取,微信掃碼登陸后,即可在巴法創(chuàng)客云控制臺(tái)點(diǎn)擊跳轉(zhuǎn)獲取。 郵箱注冊(cè)的用戶,需要在控制臺(tái)點(diǎn)擊“綁定微信”,進(jìn)行綁定,不然沒(méi)法推送消息。 
登陸完成后,可在控制臺(tái)看到自己的私鑰UID,如圖所示: 
第二 關(guān)鍵程序講解
- 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); //通過(guò)&符號(hào)整合需要post的數(shù)據(jù)
- dataLen = strlen(postData); //計(jì)算數(shù)據(jù)長(zhǎng)度
- sprintf(strLen,"%d",dataLen); //int類型轉(zhuǎn)char
- ESP8266_Set("AT+CIPMODE=1"); //開(kāi)啟透明傳輸模式
- ms_delay(1000);
- ESP8266_Set("AT+CIPSTART=\"TCP\",\"api.bemfa點(diǎn)com\",80"); // 連接服務(wù)器和端口
- ms_delay(1000);
- ESP8266_Set("AT+CIPSEND"); //進(jìn)入透?jìng)髂J剑旅姘l(fā)的都會(huì)無(wú)條件傳輸
- ms_delay(1000);
- ESP8266_Set_Only("POST /api/wechat/v1/ HTTP/1.1\r\nHost: ai.bemfa點(diǎn)com\r\nContent-Type: application/x-www-form-urlencoded\r\nConnection:close\r\nContent-Length:");//ţքdeviceۅ ţքsensorۅ
- ESP8266_Set(strLen);//數(shù)據(jù)長(zhǎng)度(postData數(shù)據(jù)長(zhǎng)度),一定要準(zhǔn)確
- ESP8266_Set("");//回車(發(fā)完數(shù)據(jù)長(zhǎng)度后,有回車,不懂的百度http post 格式)
- ESP8266_Set(postData);//發(fā)送數(shù)據(jù)
- ms_delay(2000);
- ESP8266_Set("+++"); //
- memset(strLen,'\0',3); //重置數(shù)組
- memset(strLen,'\0',sizeof postData);//重置數(shù)組
復(fù)制代碼
利用HTTP POST形式,往微信端api進(jìn)行消息推送,具體接口可參考:巴法云官方文檔
第三 下載程序到STC89c51即可
下載工具STC-ISP:下載:www點(diǎn)lanzous點(diǎn)com/iaxa4fc 密碼:1234
STC89和ESP8266接線問(wèn)題
c51 ----------8266
P30----------TX
P31----------RX
3.3v-----------3.3v
Gnd---------Gnd
3.3v-----------EN
試了8266直接接5v也工作,不過(guò)不建議使用
第四 效果展示 第五 可能遇到的一些小問(wèn)題

|