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

今天给大家带来一款狂拽炫酷屌炸天的手办,啊不,一款物联网警报装置。这款警报装置,内置人体红外感应传感器,用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. 大数据分析常用去重算法分析『HyperLogLog 篇』
  2. 单片机外文参考文献期刊_论文参考文献|如何在最短时间内加注参考文献??...
  3. erdas图像增强步骤_基于erdas的图像增强处理
  4. 阿里巴巴在应用性能测试场景设计和实现上的实践
  5. python bind sock_python SOCKET编程详细介绍
  6. cts(6)---Android8.1(O1)CTS失败项
  7. python进阶15变量作用域LEGB
  8. 快速生成Plugman中的lib-file、source-file的xml内容
  9. cmor在matlab中,MATLAB小波变换指令及其功能介绍(超级有用)(最新整理)
  10. c语言中整形的最大最小值,c语言整数和浮点数的最大最小值
  11. Blueprint__蓝本
  12. Android从当前APP跳转到其他应用
  13. UEFI与 Legacy BIOS两种启动模式详解
  14. 我读经典系列(一)《我读先秦诸子》易中天教授讲稿的简要摘录
  15. matlab如何去除图像白边_MATLAB去除白边
  16. c# 节点导纳矩阵形成
  17. python 窗体编程_python窗体编程
  18. 转载:ubuntu 安装code blocks全记录
  19. 数据挖掘与预测分析的区别与联系
  20. 软件开发的两种结构:cs/bs以及优缺点

热门文章

  1. OA的新一轮革命——协同管理
  2. websphere ND安装
  3. 2022医药投融资数据库--投行必备
  4. 2023全国特种作业操作证继电保护模拟一[安考星]
  5. 30天从入门到精通TensorFlow1.x 第三天,tf.variable_scope()共享或重用变量
  6. matlab-GUI编写简单计算器
  7. 全年净利暴减60%,市值蒸发500多亿,英特尔为何跌跌不休?
  8. Oracle数据库查询最大id值加1
  9. Python的数据科学函数包(三)——matplotlib(plt)
  10. On-Demand Resources Guide中文版(按需加载资源--上)