有个软件名叫钉钉,直播上课我很震惊。评论一看都是好评,应用商店只有一星。在家学习再也不愁,但我不能关摄像头。老师提问我就装卡,再也不能愉快玩耍。

今天给大家带来一款狂拽炫酷屌炸天的手办,啊不,一款物联网警报装置。这款警报装置,内置人体红外感应传感器,用ESP32-E搭配钉钉进行远程信息传输。有了它,当家中无人却检测到有人闯入时,装置会立即触发蜂鸣器劝退小偷,随即会发送警报信息到手机钉钉群,你可以邀请你们小区的物业保安进群,当装置报警时,物业保安将小偷立即拿下,减少你的损失。

来吧,展示:

基于ESP32-E搭配阿里云IOT的智能报警系统

一.准备材料

  • FireBeetle Board ESP32-E

  • 数字蜂鸣器模块

  • 3.7V电池

  • 人体红外热释电运动传感器

  • 杜邦线若干

  • 手电筒射灯 x1

二.组装大炮

图1.大炮的3D模型

红外探测应用模型文件.zip (124.51 KB, 下载次数: 2)

图2.双色大炮内部视图

图3.双色大炮元器件组装完成图

图4.打开你的手机进入热点配置(AP频段必须为2.4GHZ)

三.阿里云IOT平台

3.1 注册并登录阿里云

图5.点击阿里云IOT进入首页:

阿里云IOT

图6.选择支付宝快捷注册或账号注册界面

3.2 开通物联网服务

图7.点击物联网应用

图8.点击立即开通

3.3 创建项目

图9.新建一个项目

图10.新建一个产品,定义产品功能定义,发布上线

图11.为产品添加设备

图12.查看重要的产品三连 这三个信息都是非常重要的 等下代码里面要用到

图13.在产品信息里面查看post请求 等下代码里面要用到

3.4 创建业务逻辑
图14.点击进入业务逻辑开发

图15.创建你的业务逻辑名称并进入

图16.进入业务逻辑编辑页面 选择两个如图设备到中央

图17设置设备触发的选项

图18.万恶之源钉钉,我相信大家都有吧,没有的去问小学生,让他发给你。没有人能比小学生更懂它。

图19.拥有一个属于自己的钉钉机器人 你可以让多人都能接收到你钉钉机器人发的信息 。复制钉钉机器人的Webhook

图20.设置钉钉机器人选项,用刚才复制的Webhook,在依次选择,部署,启动,发布

四.烧录程序

4.1 Arduino IDE 编译环境配置

配置URL网址到Arduino IDE 打开Arduino IDE,点击File->Preferences,如下图所示:
图21.在新打开的界面中,点击如下图红色圆圈中的按钮

图22.将如下链接地址复制到新弹出的对话框中:

 复制代码 隐藏代码
  1. 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库文件解压后把库文件

库文件及样例代码.rar (3.71 MB, 下载次数: 8) 拖入arduino—libraries文件目录下。如何安装库文件?

4.2 代码烧录

来吧,展示!

 复制代码 隐藏代码
  1. #include <WiFi.h>
  2. #include <PubSubClient.h>
  3. #include <ArduinoJson.h>
  4. #include "DFRobot_Aliyun.h"
  5. #define MOTION_SENSOR_PIN  D3 //人体红外传感器接入D3引脚
  6. #define LED_PIN D9 //LED_PIN灯接入D9引脚
  7. #define BUZZER_PIN D6 //蜂鸣器接入D6引脚
  8. bool sensorSign = false;//判断人体红外传感器标记的
  9. uint16_t sensorState = 0;//人体红外传感器状态变量1为有人 0为无人
  10. /*配置WIFI名和密码*/
  11. const char * WIFI_SSID     = "zjf";//输入自己家的wifi及密码
  12. const char * WIFI_PASSWORD = "123456789.";
  13. /*配置设备证书信息*/
  14. String ProductKey = "a16seZxWRxD";
  15. String ClientId = "12345";//这个不用管
  16. String DeviceName = "flash";
  17. String DeviceSecret = "5ae31a7b63ec3c3a5660c8d39f160918";
  18. /*配置域名和端口号*/
  19. String ALIYUN_SERVER = "iot-as-mqtt.cn-shanghai.aliyuncs.com";
  20. uint16_t PORT = 1883;
  21. /*需要操作的产品标识符*/
  22. String Identifier = "123456";
  23. /*需要上报的TOPIC*/
  24. const char * pubTopic = "/sys/a16seZxWRxD/flash/thing/event/property/post";//******post
  25. DFRobot_Aliyun myAliyun;
  26. WiFiClient espClient;
  27. PubSubClient client(espClient);
  28. void connectWiFi(){
  29.   Serial.print("Connecting to ");
  30.   Serial.println(WIFI_SSID);
  31.   WiFi.begin(WIFI_SSID,WIFI_PASSWORD);
  32.   while(WiFi.status() != WL_CONNECTED){
  33.     delay(500);
  34.     Serial.print(".");
  35.   }
  36.   Serial.println();
  37.   Serial.println("WiFi connected");
  38.   Serial.print("IP Adderss: ");
  39.   Serial.println(WiFi.localIP());
  40. }
  41. void callback(char * topic, byte * payload, unsigned int len){
  42.   Serial.print("Recevice [");
  43.   Serial.print(topic);
  44.   Serial.print("] ");
  45.   for (int i = 0; i < len; i++){
  46.     Serial.print((char)payload[i]);
  47.   }
  48.   Serial.println();
  49. }
  50. void ConnectAliyun(){
  51.   while(!client.connected()){
  52.     Serial.print("Attempting MQTT connection...");
  53.     /*根据自动计算的用户名和密码连接到Alinyun的设备,不需要更改*/
  54.     if(client.connect(myAliyun.client_id,myAliyun.username,myAliyun.password)){
  55.       Serial.println("connected");
  56.     }else{
  57.       Serial.print("faiLED_PIN, rc=");
  58.       Serial.print(client.state());
  59.       Serial.println(" try again in 5 seconds");
  60.       delay(5000);
  61.     }
  62.   }
  63. }
  64. void setup(){
  65.   Serial.begin(115200);
  66.   pinMode(MOTION_SENSOR_PIN,INPUT);//设置人体红外传感器为输入模式
  67.   pinMode(LED_PIN,OUTPUT);//设置LED灯为输出模式
  68.   pinMode(BUZZER_PIN,OUTPUT);//设置蜂鸣器为输出模式
  69.   /*连接WIFI*/
  70.   connectWiFi();
  71.   
  72.   /*初始化Alinyun的配置,可自动计算用户名和密码*/
  73.   myAliyun.init(ALIYUN_SERVER,ProductKey,ClientId,DeviceName,DeviceSecret);
  74.   
  75.   client.setServer(myAliyun.mqtt_server,PORT);
  76.   
  77.   /*设置回调函数,当收到订阅信息时会执行回调函数*/
  78.   client.setCallback(callback);
  79.   
  80.   /*连接到Aliyun*/
  81.   ConnectAliyun();
  82. }
  83. void loop(){
  84.   if(!client.connected()){
  85.     ConnectAliyun();
  86.   }
  87.   sensorState =digitalRead(MOTION_SENSOR_PIN);//把人体红外传感器接收到的值赋值给sensorState
  88.   if((sensorState==1)&&(sensorSign==false)){
  89.     /*上报防盗警告*/
  90.     client.publish(pubTopic,("{"id":"+ClientId+","params":{""+Identifier+"":1},"method":"thing.event.property.post"}").c_str());
  91.     digitalWrite(LED_PIN,HIGH);//LED_PIN灯打开
  92.     digitalWrite(BUZZER_PIN,HIGH);//蜂鸣器打开
  93.     delay(3000);//延长3秒
  94.     sensorSign = true;//把传感器标记变为true 防止重复发送信息
  95.   }
  96.   else if((sensorState==0)&&(sensorSign==true)){
  97.     digitalWrite(LED_PIN,LOW);//LED_PIN灯关闭
  98.     digitalWrite(BUZZER_PIN,LOW);//蜂鸣器关闭
  99.     sensorSign = false;//把传感器标记变为false
  100.   }
  101.    
  102.   client.loop();
  103. }

复制代码
把我的代码变为你的代码,我的就是你的,别说话,吻我。

图30.在产品,设备里面点击相应的信息,并复制下来填进对应的选项中。

一切准备就绪之后就上传程序,上传成功之后就可以看到你的钉钉群消息了。
图31.钉钉机器人报警消息显示

好了,这一篇教程下来,你应该已经学会怎样去制作你的双色大炮了吧,闻西。

阿里云iot--钉钉防盗大炮相关推荐

  1. 阿里云IoT戴高:IoT场景化的本质是打造数智空间

    简介:IoT数智引擎,全面助力空间数智化升级! 在2021云栖大会IoT云端一体硬件与应用创新峰会上,阿里云IoT通用业务总经理戴高表示,每个人.每个企业.每个组织每天都在无数的空间中穿梭,因此IoT ...

  2. 【阿里云IoT+YF3300】15.阿里云物联网小程序构建

    2013年8月,"轻应用"概念提出,但是仅仅活跃四年随后淡出 ,直到2017年1月9号借助微信小程序成功续命.一时间,以微信小程序和支付宝小程序为代表的轻应用解决方案迅速贯穿多个环 ...

  3. 做智能世界的乘风者,讲述“我与阿里云IoT”的故事

    IoT正在频繁的刷新许多旧有规则 改变人们曾经的认知和熟悉的场景 来看看这些案例 01 这个双十一,老板电器的工厂"黑灯"了 这个双十一,为保证产能,各地工厂灯火通明,唯独是位于临 ...

  4. 更听话的温室大棚系统-阿里云ioT Studio实现动态业务逻辑

    需求: 用阿里云物联网平台开发的温室大棚物联网系统,正在建设过程中,目前的系统是后台设置好了温度.湿度,光照度的阀值,达到设置值就动作设备,考虑到交付后,这些值可能要变动,每次叫我去设置,也很麻烦,于 ...

  5. 智慧小屋改进版(Arduino基于开源MQTT接入阿里云IOT)

    学了浙大的慕课<<DIY智慧小屋-带你玩转物联网>>,虽然得了一个不错的分数,但是由于材料买的晚,到期末考试的时候还没有实现其中的任何一个功能,所以加分为0,好尴尬!后来有空了 ...

  6. 揭秘 | 阿里云IoT物联网平台亿级设备接入方案大揭秘

    一.前言 不同的接入层 互联网的产品基本都需要解决终端的接入问题,每个接入层会因为终端数量.终端能力.网络环境等不同的因素有各自的设计特性,比如:淘宝网需要解决海量短连接问题.微信需要解决海量长连接问 ...

  7. MQTT协议与阿里云IoT物联网平台

    1.MQTT协议介绍 1.1 MQTT协议 MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的支持在各方之间异步通信的消息协议.MQTT在空间和时间上将消息发送者与接收者分离,因此可以 ...

  8. STM32 ES8266上阿里云IOT MQTT实践【第四章】:MCU的应用范围

    课程大纲 [第一章]:物联网简介(什么是物联网) [第二章]:物联网十大应用场景 [第三章]:什么是MCU? [第四章]:MCU的应用范围 [第五章]:我们要怎么入门MCU开发? [第六章]:如何使用 ...

  9. STM32 ES8266上阿里云IOT MQTT实践【第二章】:物联网十大应用场景

    课程大纲 [第一章]:物联网简介(什么是物联网) [第二章]:物联网十大应用场景 [第三章]:什么是MCU? [第四章]:MCU的应用范围 [第五章]:我们要怎么入门MCU开发? [第六章]:如何使用 ...

  10. 基于TCP协议的GPS定位器设备迁移到阿里云IoT物联网平台实践——实践类

    背景 GPS定位器是内置了GPS模块和移动通信模块的终端,用来将GPS模块获得的定位数据通过移动通信模块传至Internet上的一台服务器上,从而可以实现在电脑或手机上查询终端位置. GPS定位器可用 ...

最新文章

  1. MR案例:CombineFileInputFormat
  2. JS高级——await-async
  3. Java IO ---学习笔记(数据流)
  4. Python Text I/O
  5. 讨论下怎么能实现保证新闻时效性推荐算法机制
  6. 计算机硬件及组成原理pdf百度云,计算机组成原理整理版本.pdf
  7. 如何利用Django打造一款类似于链家二手房信息查询网!厉害吧!
  8. 数字图像算术编码python_算术编码简介
  9. cefsharp 二次开发
  10. C++战斗游戏-----------圣光战神の起源之战 V8.13.0
  11. dq电压方程耦合项符号问题
  12. android 照片拼接长图_长图拼接app下载 长图拼接制作 for Android v2.6.1 安卓版 下载-脚本之家...
  13. [R] R语言for循环机制
  14. 记录谷粒学院的一些问题--------------chapter1
  15. TCGA官网下载和TCGAbiolinks下载的文件数量竟然不一样?
  16. 使用VMware 安装mac os系统 遇到鼠标键盘无法使用的问题
  17. 猿创征文|OpenCV编程——计算机视觉的登堂入室
  18. iOS 开发的非常有用 第三方库
  19. 刻苦加技巧促成SAT阅读飞跃进步
  20. 从随机过程的熵率和马尔科夫稳态过程引出的一些思考 - 人生逃不过一场马尔科夫稳态...

热门文章

  1. 【ASP.NET】Cookie·登录记录示例
  2. 点云配准算法综述-完整解读
  3. 【feign】OpenFeign设置header的5种方式
  4. 【应用统计学】描述数据的离散程度
  5. IP冲突导致访问不了请求
  6. 栋的周评 | 第五回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)
  7. 通过这次疫情,互联网行业会给我们带来哪些新的发展趋势与机遇?
  8. eclipse如何创建多层包(多级包)
  9. 从kill-chain的角度检测APT攻击
  10. Python学习日记(二) list操作