钉钉智能双色大炮——ESP32-E+人体红外传感器
钉钉:有个软件名叫钉钉,直播上课我很震惊。评论一看都是好评,应用商店只有一星。在家学习再也不愁,但我不能关摄像头。老师提问我就装卡,再也不能愉快玩耍。https://ae01.alicdn.com/kf/Ucb9eb6809f6546f89f2e6813a448b71aT.jpg今天给大家带来一款狂拽炫酷屌炸天的手办,啊不,一款物联网警报装置。这款警报装置,内置人体红外感应传感器,用ESP32-E搭配钉钉进行远程信息传输。有了它,当家中无人却检测到有人闯入时,装置会立即触发蜂鸣器劝退小偷,随即会发送警报信息到手机钉钉群,你可以邀请你们小区的物业保安进群,当装置报警时,物业保安将小偷立即拿下,减少你的损失。来吧,展示:
https://www.bilibili.com/video/BV1Uo4y117rD/
一.准备材料
[*](https://www.dfrobot.com.cn/goods-3009.html)
[*][数字蜂鸣器模块](https://www.dfrobot.com.cn/goods-86.html)
[*](https://www.dfrobot.com.cn/goods-534.html)
[*][人体红外热释电运动传感器](https://www.dfrobot.com.cn/goods-989.html)
[*][杜邦线若干](https://www.dfrobot.com.cn/goods-366.html)
[*]手电筒射灯 x1
二.组装大炮
图1.大炮的3D模型
图2.双色大炮内部视图
图3.双色大炮元器件组装完成图
图4.打开你的手机进入热点配置(AP频段必须为2.4GHZ)
https://ae01.alicdn.com/kf/U6fd572ae940f45d3993145643c5618d4n.jpg
三.阿里云IOT平台
3.1 注册并登录阿里云
图5.点击阿里云IOT进入首页:[阿里云IOT](https://www.aliyun.com/)
图6.选择支付宝快捷注册或账号注册界面
3.2 开通物联网服务
图7.点击物联网应用
图8.点击立即开通
3.3 创建项目
图9.新建一个项目
图10.新建一个产品,定义产品功能定义,发布上线
图11.为产品添加设备
图12.查看重要的产品三连 这三个信息都是非常重要的 等下代码里面要用到
https://ae01.alicdn.com/kf/Uc333b7fe6c57452989ae49ca8946cf90D.jpg
图13.在产品信息里面查看post请求 等下代码里面要用到
3.4 创建业务逻辑
图14.点击进入业务逻辑开发
https://ae01.alicdn.com/kf/U59df00d716084c5ea8d0c10259436844J.jpg
图15.创建你的业务逻辑名称并进入
https://ae01.alicdn.com/kf/Ubed41d70c3f8466aa2ab942c42f14a13Z.jpg
图16.进入业务逻辑编辑页面 选择两个如图设备到中央
https://ae01.alicdn.com/kf/Uec78c67c4c454809bac66f905273017aS.jpg
图17设置设备触发的选项
图18.万恶之源钉钉,我相信大家都有吧,没有的去问小学生,让他发给你。没有人能比小学生更懂它。
https://ae01.alicdn.com/kf/U31263c9b407847ccb5c58b3e52c0df62n.jpg
图19.拥有一个属于自己的钉钉机器人 你可以让多人都能接收到你钉钉机器人发的信息 。复制钉钉机器人的Webhook
图20.设置钉钉机器人选项,用刚才复制的Webhook,在依次选择,部署,启动,发布
四.烧录程序
4.1 Arduino IDE 编译环境配置
配置URL网址到Arduino IDE 打开Arduino IDE,点击File->Preferences,如下图所示:
图21.在新打开的界面中,点击如下图红色圆圈中的按钮
图22.将如下链接地址复制到新弹出的对话框中:http://download.dfrobot.top/FireBeetle/package_DFRobot_index.json
图23.点击OK
4.3更新板卡
图24.打开Tools->Board:->Boards Manager...
图25.Boards Manager会自动更新板卡,如下图所示:
图26.更新完成后,会在列表中看到FireBeetle-ESP32主板(现已更新至0.0.8版本),点击安装:
图27.安装完成后,列表会显示已经安装FireBeetle-ESP32主板
4.4 下载库文件
该例程需要使用该例程需要下载ArduinoJson库
图28.进入加载库文件
图29.下载ArduinoJosn5版本 如果网络不好 下面提供了压缩包内含有ArduinoJosn5库文件
安装DFRobot_Aliyun库文件和pubsubclient库文件解压后把库文件拖入arduino—libraries文件目录下。如何安装库文件?
4.2 代码烧录
来吧,展示!#include <WiFi.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
#include "DFRobot_Aliyun.h"
#define MOTION_SENSOR_PIND3 //人体红外传感器接入D3引脚
#define LED_PIN D9 //LED_PIN灯接入D9引脚
#define BUZZER_PIN D6 //蜂鸣器接入D6引脚
bool sensorSign = false;//判断人体红外传感器标记的
uint16_t sensorState = 0;//人体红外传感器状态变量1为有人 0为无人
/*配置WIFI名和密码*/
const char * WIFI_SSID = "zjf";//输入自己家的wifi及密码
const char * WIFI_PASSWORD = "123456789.";
/*配置设备证书信息*/
String ProductKey = "a16seZxWRxD";
String ClientId = "12345";//这个不用管
String DeviceName = "flash";
String DeviceSecret = "5ae31a7b63ec3c3a5660c8d39f160918";
/*配置域名和端口号*/
String ALIYUN_SERVER = "iot-as-mqtt.cn-shanghai.aliyuncs.com";
uint16_t PORT = 1883;
/*需要操作的产品标识符*/
String Identifier = "123456";
/*需要上报的TOPIC*/
const char * pubTopic = "/sys/a16seZxWRxD/flash/thing/event/property/post";//******post
DFRobot_Aliyun myAliyun;
WiFiClient espClient;
PubSubClient client(espClient);
void connectWiFi(){
Serial.print("Connecting to ");
Serial.println(WIFI_SSID);
WiFi.begin(WIFI_SSID,WIFI_PASSWORD);
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi connected");
Serial.print("IP Adderss: ");
Serial.println(WiFi.localIP());
}
void callback(char * topic, byte * payload, unsigned int len){
Serial.print("Recevice [");
Serial.print(topic);
Serial.print("] ");
for (int i = 0; i < len; i++){
Serial.print((char)payload);
}
Serial.println();
}
void ConnectAliyun(){
while(!client.connected()){
Serial.print("Attempting MQTT connection...");
/*根据自动计算的用户名和密码连接到Alinyun的设备,不需要更改*/
if(client.connect(myAliyun.client_id,myAliyun.username,myAliyun.password)){
Serial.println("connected");
}else{
Serial.print("faiLED_PIN, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}
void setup(){
Serial.begin(115200);
pinMode(MOTION_SENSOR_PIN,INPUT);//设置人体红外传感器为输入模式
pinMode(LED_PIN,OUTPUT);//设置LED灯为输出模式
pinMode(BUZZER_PIN,OUTPUT);//设置蜂鸣器为输出模式
/*连接WIFI*/
connectWiFi();
/*初始化Alinyun的配置,可自动计算用户名和密码*/
myAliyun.init(ALIYUN_SERVER,ProductKey,ClientId,DeviceName,DeviceSecret);
client.setServer(myAliyun.mqtt_server,PORT);
/*设置回调函数,当收到订阅信息时会执行回调函数*/
client.setCallback(callback);
/*连接到Aliyun*/
ConnectAliyun();
}
void loop(){
if(!client.connected()){
ConnectAliyun();
}
sensorState =digitalRead(MOTION_SENSOR_PIN);//把人体红外传感器接收到的值赋值给sensorState
if((sensorState==1)&&(sensorSign==false)){
/*上报防盗警告*/
client.publish(pubTopic,("{\"id\":"+ClientId+",\"params\":{\""+Identifier+"\":1},\"method\":\"thing.event.property.post\"}").c_str());
digitalWrite(LED_PIN,HIGH);//LED_PIN灯打开
digitalWrite(BUZZER_PIN,HIGH);//蜂鸣器打开
delay(3000);//延长3秒
sensorSign = true;//把传感器标记变为true 防止重复发送信息
}
else if((sensorState==0)&&(sensorSign==true)){
digitalWrite(LED_PIN,LOW);//LED_PIN灯关闭
digitalWrite(BUZZER_PIN,LOW);//蜂鸣器关闭
sensorSign = false;//把传感器标记变为false
}
client.loop();
}
把我的代码变为你的代码,我的就是你的,别说话,吻我。
图30.在产品,设备里面点击相应的信息,并复制下来填进对应的选项中。
一切准备就绪之后就上传程序,上传成功之后就可以看到你的钉钉群消息了。
图31.钉钉机器人报警消息显示
好了,这一篇教程下来,你应该已经学会怎样去制作你的双色大炮了吧,闻西。
太帅了也{:7_219:} 好厉害阿啊 涂图 发表于 2022-10-6 14:06
好厉害阿啊
真的是希望我也能 学习 能不能出个Mind+图形化程序
页:
[1]