钉钉机器人使用 大家可以从官网了解如何添加一个钉钉机器人 https://open.dingtalk.com/document/robots/custom-robot-access 源码直接附上源码,webhookUrl 为钉钉机器人的webhook地址,格式类似这种:“https://oapi.dingtalk.com/robot/send?access_token=XXXXXX”
- #include <Arduino.h>
- #include <ESP8266WiFi.h>
- #include <ESP8266HTTPClient.h>
- #include <WiFiClientSecureBearSSL.h>
- #include <ArduinoJson.h>
- //WiFi连接信息(注意:需要自行修改以下内容否则ESP8266无法连接WiFi)
- #define ssid "xxxx" //WiFi名称
- #define password "xxxxxxx" //WiFi密码
- String webhookUrl = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx";
- int PIR_sensor = 12; //指定PIR模拟端口 A5
- int LED = 2; //指定LED端口 13
- int val = 0; //存储获取到的PIR数值
- void httpPostRequest(String requestUrl, String body) {
- Serial.println("http post " + String(requestUrl) + " body \n" + String(body));
- WiFiClientSecure client;
- HTTPClient httpClient;
- client.setInsecure();
- httpClient.begin(client, requestUrl);
- httpClient.addHeader("Content-Type", "application/json");
- int httpResponseCode = httpClient.POST(body);;
- Serial.println("http post " + String(requestUrl) + " code: " + httpResponseCode);
- if (httpResponseCode == HTTP_CODE_OK){
- String resp = httpClient.getString();
- Serial.println("Send post success, resp " + String(resp));
- }
- else{
- Serial.println("Send post request failed!");
- }
- httpClient.end();
- }
- void send_dingding_msg(String msg){
- String body = "{"msgtype": "text","text": {"content":""+msg+""}}";
- httpPostRequest(webhookUrl, body);
- }
- //Wifi init
- void wifi_init(){
- Serial.begin(9600);
- WiFi.mode(WIFI_STA); //设置ESP8266为无线终端工作模式
-
- WiFi.begin(ssid, password); //连接WiFi
- Serial.println("");
- Serial.println("Connecting"); Serial.println("");
-
- // 等待连接
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
-
- //成功连接后通过串口监视器显示WiFi名称以及ESP8266的IP地址。
- Serial.println("");
- Serial.print("Connected to ");
- Serial.println(ssid);
- Serial.print("IP address: ");
- Serial.println(WiFi.localIP());
- }
- void setup() {
- pinMode(PIR_sensor, INPUT); //设置PIR模拟端口为输入模式
- pinMode(LED, OUTPUT); //设置端口2为输出模式
- wifi_init();
-
- }
- void loop() {
- val = digitalRead(PIR_sensor); //读取A0口的电压值并赋值到val
- //串口发送val值
- delay(2000);
- if (val == HIGH)//判断PIR数值是否大于150,
- {
- digitalWrite(LED,HIGH); //大于表示感应到有人
- Serial.println("detect !!!!");
- send_dingding_msg("告警:detect a human!");
- }
- else
- {
- digitalWrite(LED,LOW); //小于表示无感应到有人
- }
- }
复制代码 钉钉机器人发送示例
欢迎关注我的公众号“玩转esp8266”,原创技术文章第一时间推送。 原文链接https://mp.weixin.qq.com/s/BjlUmcrUdqxLKo0pjeyaJw
|