本帖最后由 bemfa 于 2020-10-13 11:34 编辑
材料准备
ESP8266-01/ESP8266-01s一块
arduino 一块
手机一块
接线
ESP8266-01 ----------arduino
3.3v-------------3.3V
GND-----------GND
EN--------------3.3V
TX-------------pin13
RX----------------pin12
第一 下载arduino uno 示例
下载地址: http://www.cloud.bemfa.com/zip/at_wechat.zip
本demo 是利用arduino IDE开发,下载的时候选择arduino 开发板即可
esp8266-01 或者esp8266-01s都内置AT固件,因此不需要编程,直接连接到arduino 即可
需要修改的地方:
- /******************************************************************************/
- #define DEFAULT_STASSID "HTC" //WIFI名称,区分大小写
- #define DEFAULT_STAPSW "abc123456" //WIFI密码,区分大小写
- String uid = "f49412ea7657d8f738cafe29bc245c14"; // 用户私钥,巴法云控制台获取
- String type = "1"; // 1表示是预警消息,默认即可
- String device = "人体红外传感器设备"; // 设备名称
- String msg = "检测到班主任已站在窗户边,立即放下手机假装学习"; //发送的消息
- String msg2 = "小样"; //消息备注,可为空
- int delaytime = 0; //为了防止被设备“骚扰”,可设置贤者时间,单位是秒,如果设置了该值,在该时间内不会发消息到微信,设置为0立即推送。
- String ApiUrl = "http://ai.bemfa.com/api/wechat/v1/"; //默认 api 网址
- /******************************************************************************/
复制代码
用户私钥可以巴法云控制台http://www.cloud.bemfa.com/tcpfast.php获取,微信扫码登陆后,即可在巴法创客云控制台获取。
邮箱注册的用户,需要在控制台点击“绑定微信”,进行绑定,不然没法推送消息。

登陆完成后,可在控制台看到自己的**私钥UID **,如下所示:第二种

第二 全部程序
- /*
- * 微信通知提醒
- * 2020-05-11
- * QQ交流群:824273231
- * 官网https://bemfa.com
- */
- #include <SoftwareSerial.h>
- SoftwareSerial mySerial(13, 12); // RX, TX 通过软串口连接esp8266,
- /******************************************************************************/
- String ssid ="newhtc"; //WIFI名称
- String password="qq123456"; //WIFI密码
- String uid = "4d9ec352e0376f2110a0c601a28xxxx"; // 用户私钥,巴法云控制台获取
- String type = "1"; // 1表示是预警消息,默认即可
- String device = "人体红外传感器设备"; // 设备名称
- String msg = "检测到班主任已站在窗户边,立即放下手机假装学习"; //发送的消息
- String msg2 = "小样"; //消息备注,可为空
- int delaytime = 0;
- void setup() {
- // Open serial communications and wait for port to open:
- Serial.begin(115200);
- while (!Serial) {
- ; // wait for serial port to connect. Needed for native USB port only
- }
- mySerial.begin(115200);
- mySerial.println("AT+RST"); // 初始化重启一次esp8266
- delay(1500);
- echo();
- mySerial.println("AT");
- echo();
- delay(500);
- mySerial.println("AT+CWMODE=3"); // 设置Wi-Fi模式
- echo();
- mySerial.println("AT+CWJAP="" +ssid+"","" + password + """); // 连接Wi-Fi
- echo();
- delay(10000);
- }
- void loop() {
- if (mySerial.available()) {
- Serial.write(mySerial.read());
- }
- if (Serial.available()) {
- mySerial.write(Serial.read());
- }
- post();
- }
- void echo(){
- delay(50);
- while (mySerial.available()) {
- Serial.write(mySerial.read());
- }
- }
- void post(){
- String postData;
- //Post Data
- postData = "uid="+uid+"&type=" + type +"&time="+delaytime+"&device="+device+"&msg="+msg+"&msg2="+msg2;
- mySerial.println("AT+CIPMODE=1");
- echo();
- mySerial.println("AT+CIPSTART="TCP","ai.bemfa.com",80"); // 连接服务器的80端口
- delay(1000);
- echo();
- mySerial.println("AT+CIPSEND"); // 进入TCP透传模式,接下来发送的所有消息都会发送给服务器
- echo();
- mySerial.print("POST /api/wechat/v1/"); // 开始发送post请求
- mySerial.print(" HTTP/1.1\r\nHost: ai.bemfa.com\r\nContent-Type: application/x-www-form-urlencoded\r\nConnection:close\r\nContent-Length:"); // post请求的报文格式
- mySerial.print(postData.length()); // 需要计算post请求的数据长度
- mySerial.print("\r\n\r\n");
- mySerial.println(postData); // 结束post请求
- delay(3000);
- echo();
- mySerial.print("+++"); // 退出tcp透传模式,用println会出错
- delay(2000);
- }
复制代码
大家玩的时候,想要发送信息可以自定义更改,可以阈值报警,消息提醒等,脑洞自由发挥。
第三 下载程序到arduino uno 即可
第四 效果展示

往期精彩帖子:
教程 = arduino连接ESP8266-01给微信发消息,消息提醒等
教程 = ESP8266读DHT11温湿度,开发微信小程序实时显示
教程 = (开源)微信小程序控制esp8266,可远程
教程 =(可远程)ESP8266读DHT11温湿度,APP Inventor 制作app实时显示
教程 =ESP8266给微信发消息,超阈值报警,消息提醒等
教程 =(可远程)App Inventor编写安卓应用程序控制ESP8266
教程 =两个ESP8266通过云端实现远程数据交互
教程 =利用天猫精灵控制NodeMCU(ESP8266)
教程 = arduino+ESP8266-01制作数据监测系统+手机App实时显示
教程 = esp32-cam拍照上传到云平台,http协议传输
教程 = 巴法云 之Google 智能语音 控制 ESP8266
教程 = 定时控制esp8266----(远程控制)
|