闪闪的红星 发表于 2018-9-2 21:46:40

[挑战赛3]基于物联网与IFTTT 联动的实时水质检测数据分发...

本帖最后由 闪闪的红星 于 2018-9-4 09:02 编辑

项目名称:基于物联网与IFTTT 联动的实时水质检测数据分发系统项目介绍:
小桥流水的丽江古城,水是它的灵性所在,而丽江黑龙潭公园里的泉水是整个丽江古城的水源处,以前公园内的水均为甘甜的地下水,很多本地居民甚至每晚会提着大大小小的桶来公园取水回家饮用,但近年来因为城市发展大量提取和破坏地下水资源,黑龙潭公园里的水出现了近三年的枯竭,然而就在所有丽江人对泉水复出已经绝望的时间,从8月开始大量泉水又喷涌而出,公园又恢复了市民排队取水的盛况。但时隔三年,这水还是原来的水吗?能放心饮用吗?如何让检测结果最快让更多人知晓?所以我和儿子决定制作一个能自动分发水质检测结果给大众的项目来解决这个问题。
项目最大的特点:
每次检测结果,利用物联网模块触发IFTTT小程序,把检测数据实时群发邮件给亲友,让所有人随时了解泉水的水质情况。DFrobot的iot平台虽然能接收和发送数据,但这些数据仅能为自己所知,如何让更多人实时了解物联网检测数据其实是个很大的问题。
此项目稍做改动就可做为类似地质灾害检测预警,实时把预警信号通过群发邮件方式扩散出去,不用自己做APP,不用自己做服务器端,能快速搭建预警平台。
先看看检测后分析数据吧,得出的结论还是让人吃惊的,虽然从泉眼处取的水看上明显比公园其它地方的水干净,但实际测量表明泉眼处的水和公园里其它地方的水的洁净程序并没有明显区别。甚至目前的泉水(125)还不如自来水(107)干净! 这怕是大部分丽江人绝对想不到的,所以奉劝丽江的叔叔阿姨与其大老远跑到公园取水回家喝,还不如打开自家水龙头来得干净。为对比数据,我们还从超市买回来几种常见的饮用水进行检测,发现最干净的是娃哈哈,当然它是纯净水,不能与矿泉水直接比。瓶装水最让人意外的是云南本地一种薄荷水,检测前考虑它的薄荷味,估计它的TDS值为比较高,没想到它与纯净水是一样的。
科普时间: TDS(Total Dissolved Solids),中文名总溶解固体,又称溶解性固体总量,表明1升水中溶有多少毫克溶解性固体。一般来说,TDS值越高,表示水中含有的溶解物越多,水就越不洁净。因此,TDS值的大小,可作为反映水的洁净程度的依据之一。
常用的TDS检测设备为TDS笔,虽然价格低廉,简单易用,但不能把数据传给控制系统,做长时间的在线监测,并做水质状况分析。使用专门的仪器,虽然能传数据,精度也高,但价格很贵。为此,我们专门推出了这款arduino兼容的TDS传感器,连接至arduino控制器后,就可用于测量水的TDS值。

TDS 相关准:
TDS值(PPM)水质
0~9纯净水
10~60山泉水、矿化水
60~100净化水
100~300自来水
300以上污染水


【准备事项】项目用到的硬件:
micro:bit    x1micro:bit Boson扩展板    x1模拟TDS传感器    x1OBLOQ - IoT Module 物联网模块    x1矿泉水瓶    x1笔记本    x1
硬件连接图:扩展板电压设置为5V 物联网模块很耗电哟物联网模块tx    接扩展板p1物联网模块rx    接扩展板p2物联网模块vcc   接扩展板p8 vcc物联网模块GND接扩展板p8 GNDTDS模块数据口   接扩展板p0
IFTTT相关部分 注意:要正常登陆IFTTT,自己首先要有google或facebook帐号,DFrobot提供教程上说的不用上面两种帐号另外的注册方法我试了几次都不成功,只能用google或facebook帐号登陆。 当然如何才能用google的帐号,那就得自己想办法科学上网来解决了。
1:打开IFTTT网站https://ifttt.com 并用google或facebook帐号登陆,登陆后,点击页面上面 My Applets 链接。
2:点击New Applet 新建一个自己的小程序


3:点蓝色this这里,这是触发条件,这和我们编程里if ……then……   是一个意思。
4:在出来的页面中是让我们选择哪种触发方式,有几十上百种,我们在搜索中输入webhooks 就可以找到我们需要的,其实只输入web后webhooks已经自动出来了。Webhooks 按我自己的理解其实就是生成一个只有你自己知道的特殊url,也就是一个网址,以后只要不管你是用pc还是手机还是物联网模块,只要有人访问了这个地址,ifttt就能感应到,然后可以用它来触发其它的行为,比如我们这里一会儿会让它触发执行一个发送邮件的动作。好吧,我们先点击这个大大的webhooks图标,看看会出来什么吧。

5:出来如下图这么个页面,看不懂没关系,直接点红框这里继续吧。
6:Event Name这里是让你给这个触发器取个名字,我这里简单取个名字叫 tomail (发送邮件的意思)。然后点Create trigger 继续。 7:在出来下面这个页面后,点that继续。That 代表了触发的事件发生后,要做什么。
8:在出来的搜索框中输入Gmail 或选择Gmail图标,点击进去。
9:选择send an email 意思是用gmail邮箱给别人发邮件。10:下图所示是让我们修改邮件的内容格式。subject是指邮件标题,Body是指邮件正文。我改成了后面那个图的格式,特别实验了一下,这里是可以填中文的,收到的邮件也没有乱码。 邮件是可以群发的,最多20个,这里为了测试我填了两个自己的邮箱。
根据自己需要修改好后,点Create action 进入下一步。
11:出来如下所示一个大大的Finish的图标,说明完成了主要步骤。但还重要的最后一个环节还没完,不要急,点击这个Finish图标继续。
12:点击webhooks

13: 点击如下图所示Setting 进入一步




14:复制下图所示红框中的网址,并打开这个网址


15:把第一个红框处的event 改成我们第6步设的名字tomail 这里一定要根据自己之前取的名字来改,不要造抄我的,否则肯定不行的。第二个大红框处是可选填的,它的意思是可以在这里传递三个变量值。我们后面会给这三个变量传递传感器的数据。
下图是改好后的样子,value的三个变量值经过测试,可以是数字、字母、中文混合,没有问题。 点击Test it 这个蓝色大按钮就可以测试是否能正常工作了,如果一切正常,快则几秒,慢则几分钟后就会收到相应的邮件了。您最好把红框处的网址复制保存好,以后要在物联网模块中,我们要用这个地址来自动触发发送邮件的小程序。您也可以用这个网址,用任何设备触发小程序自动发送邮件!试试吧。
到这里,有送IFTTTT的所有工作就完成了。接下来就我们来看看怎么用物联网模块来触发上面的地址。
程序代码:打开makecode,高级,添加软件包,填入如下地址:https://github.com/DF-LeeX/pxt-Obloq2   
程序说明:开机自动连接wifi按A按钮自动连续监测5次水质,并求出平均值显示在屏幕上按B按钮把监测结果发送到IFTTT平台上,IFTTT会自动执行之前设定好的gmailto小程序给指定邮箱发送监测数据 下图是邮箱收到的邮件:


rzyzzxw 发表于 2018-9-3 08:46:45

技术含量高,又是亲子活动,赞。{:5_148:}

gada888 发表于 2018-9-4 17:35:30

高级教程
页: [1]
查看完整版本: [挑战赛3]基于物联网与IFTTT 联动的实时水质检测数据分发...