热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:使用阿里云IoTstudio实现大棚恒温恒湿恒照度控制

篇首语:本文由编程笔记#小编为大家整理,主要介绍了使用阿里云IoTstudio实现大棚恒温恒湿恒照度控制相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了使用阿里云IoT studio实现大棚恒温恒湿恒照度控制相关的知识,希望对你有一定的参考价值。






需求:通过阿里云物联网开发平台实现温室大棚智能控制策略。

温室大棚智能控制系统要求的功能:


  • 当大棚内的温度高于阈值(如27℃),就主动打开设备(如风机和湿帘降温);
  • 当大棚内的湿度度高于阈值(如50%),就主动打开设备(如环流风机);
  • 当大棚内的光照度低于阈值(如500 lux),就主动打开设备(如补光灯);

实现方法如下:

目录

1.建立业务逻辑链条

2.详细配置

3.添加钉钉推送

4.测试功能

5.如何联动钉钉?

6.后续待完善



 


1.建立业务逻辑链条

进入阿里云IOT Studio平台,选择“业务逻辑”,点击新建。

先说下大概的控制逻辑,设备上报数据->判断数据是否超过阈值->超过则打开调节设备->然后通知钉钉机器人在钉钉里推送一个报警消息。


2.详细配置

控件从界面的左侧拖到控制台,我选择了最底部,我的设备“千夫长S3”(是一个采集温湿度光照度、控制设备的物联网盒子)作为触发源。

配置他的属性:

拉出一个条件判断的控件&#xff0c;命名为“温度过高”&#xff08;方便理解&#xff0c;可以任意命名&#xff09;&#xff0c;条件判断的设置&#xff1a;条件配置&#xff0c;选择设备的某个属性&#xff0c;选择判断条件&#xff08;<><&#61;&#xff09;&#xff0c;输入阈值。

再把设备控件拉出来&#xff0c;名字改为动作的词“打开风机”&#xff0c;选择动作的设备和控制的开关号码。


3.添加钉钉推送

在钉钉机器人的环节&#xff0c;拉进来一个 钉钉机器人控件&#xff0c;这个要在钉钉群里建立一个自定义机器人&#xff0c;得到一个webhook地址&#xff0c;这里先假设已经建了&#xff0c;到最后再说如何建立&#xff0c;配置如下

然后点击“部署”,"发布"&#xff0c;就可以了。


4.测试功能

测试可以通过后台的“模拟调试”功能来调试&#xff0c;但是我选择了用python程序来验证&#xff0c;之前就写了一个模拟设备的python程序&#xff0c;放到云服务器上运行&#xff0c;然后在我设置的27度做了一个随机数&#xff0c;让30%的温度数据大于27度。

Temperature&#61;str(23&#43;round(random.random()*7,2))
Humidity&#61;str(45&#43;round(random.random()*7,2))
mlux&#61;str(450&#43;int(round(random.random()*300,2)))
CO2Value&#61;str(365&#43;int(round(random.random()*100,2)))
STp1Value&#61;str(22&#43;round(random.random()/4,2))
SHm1Value&#61;str(40&#43;round(random.random()/4,2))
myplayload&#61;"{&#39;id&#39;:12345,&#39;params&#39;:{&#39;temp1&#39;:"&#43;Temperature&#43;",&#39;humi1&#39;:"&#43;Humidity&#43;",&#39;mlux1&#39;:"&#43;mlux&#43;",&#39;CO21&#39;:"&#43;CO2Value&#43;",&#39;STp1&#39;:"&#43;STp1Value&#43;",&#39;SHm1&#39;:"&#43;SHm1Value&#43;"},&#39;version&#39;:&#39;1.0&#39;,&#39;method&#39;:&#39;thing.event.property.post&#39;}"
mqttc.publish("/sys/"&#43;ProductKey&#43;"/"&#43;DeviceName&#43;"/thing/event/property/post",myplayload,0)
time.sleep(60)

然后不久就看到钉钉群里发来了信息&#xff1a;

钉钉已经发出来消息&#xff0c;上一级的动作说明已经下发动作。至此&#xff0c;完成了自动控制的功能。

 


5.如何联动钉钉&#xff1f;

也就是刚才提到的&#xff0c;如何有一个钉钉机器人的webhook&#xff0c;我们打开一个钉钉群&#xff0c;点击齿轮打开配置&#xff0c;选择“智能群助手”。

点击添加机器人。

选择添加自定义机器人

记得要勾选自定义关键词&#xff0c;写上“设备”&#xff0c;不要写别的&#xff0c;因为消息模板中要出现这个词&#xff0c;而消息模板用默认的就可以&#xff0c;自己编辑又要看语法规则。我之前写别的关键词&#xff0c;不能通过验证的。

点“确定”就可以看到这个机器人的webhook地址了&#xff0c;保存起来&#xff0c;在业务编辑添加钉钉机器人的时候填进去。


6.后续待完善

1.不知道是不是可以把几个策略合并成一个&#xff0c;因为比较费规则&#xff0c;总共有十几条规则&#xff1b;

2.通过web页面启动和停止业务逻辑&#xff0c;客户不一定希望一直用自动控制逻辑&#xff1b;

3.现在设置的阈值&#xff0c;都是写死的&#xff0c;在ioT studio界面上可以用户输入的文本框内容&#xff0c;如何关联到这里来&#xff1f;

已经发了工单问阿里云的客服&#xff0c;下周有解决方案&#xff0c;再更新上来。




推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
author-avatar
ZZDXP
学 無
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有