Day 3, 雨量感测并网站监控图表

是的,今天依然是强迫自己跟着教程学习的一天,在经历一些人生挫折后,变得厌世易感冒是很正常不过的事情,失败与挫折除了让自己的心灵变得更加脆弱外,还要花比普通人更多的时间在运动上,才不会身体虚弱看起来像个容易欺负的废物。但好在只要每天做一点,就能有所进步,那我们开始吧!
材料:

D1 mini雨水感测模组一堆线Adafruit.com
http://img2.58codes.com/2024/20149573CFqnm3nIE7.png
这次,我们使用的是 D1 mini的 A0脚位,并汇入ADC模组。
ADC为 analog to digital的缩写,就是将我们想要获得的资料从类比(大自然)转换成数位(可以量化观测)讯号,在经过程式(推理理解巧思)製成我们想要的结果(雨水感测器)。这次就不附上电路图啰!请支持原版教材,此非业配,只是想要夜晚能睡好觉,标籤会tag教程出版厂商名称。
以下是教程里的程式码:
from machine import ADCimport time# 建立 A0 脚位的 ADC 物件, 并命名为 adcadc = ADC(0)while True:    # 用 read() 方法从 A0 号脚位读取 ADC 转换后的数值    # 然后将读到的值用 print() 输出    print(adc.read())        # 暂停 0.05 秒    time.sleep(0.05)

http://img2.58codes.com/2024/20149573zPR8a4RZU8.png

我们会发现,在有水停留在雨水感测板子上时,数值会下降,而数值介于0~1024之间,也就是说,下雨越大,数值越小。但是,身为不爱多一层思考,喜欢简单明了的懒人,这样的结果令人十分不满意。
那我们可以怎么做呢?
其实,也很简单,就是1024扣掉获得数值就可以了。
接着,便是丢上网路,变成监控数据,看起来质感升级的时刻。我们再一次使用Adafruit网站: https://io.adafruit.com
到Dashboard页面点击http://img2.58codes.com/2024/20149573odpZZl8Xux.png 并命名事件名称:
点击Creat创建。http://img2.58codes.com/2024/20149573g7MJEgldc3.png
点击刚刚创建的名称,进入页面,我们点选http://img2.58codes.com/2024/20149573YcEPNErP5c.png 设定
接着,点取Creat new block http://img2.58codes.com/2024/201495733UdaqCKTIt.png
我们会看见视图画选择,我选了名为Guage的选项,勾选事件http://img2.58codes.com/2024/201495739Om92WZU2h.png
进入下一阶段,将Max value换成1024值,点选Creat block,就完成了设置。
http://img2.58codes.com/2024/20149573CgggtQwLdL.png
接下来又是召唤网路连接的时刻,以下是程式码:

from machine import ADCimport time, network, urequests# 连线 Wifi 网路 sta_if = network.WLAN(network.STA_IF)sta_if.active(True)sta_if.connect("你的网路名称", "网路密码")while not sta_if.isconnected():    passprint("Wifi已连上")aio_username = "Adafruit帐号"aio_key = "Adafruit金钥"aio_feed = "rain(创建事件名称)"# 建立 A0 脚位的 ADC 物件, 并命名为 adcadc = ADC(0)while True:    # 读取雨水感测器经过 ADC 转换后的数值    value = adc.read()        if value < 700: # 依照 Lab09 的测试, 低于 700 表示有下雨        # 雨水越多, ADC 值越低, 所以用最大值 1024 减 ADC 值,        # 以便将资料反转为雨水越多, 数值越高        data = {"value": 1024-value}    else:        # 没下雨的话就送出 0        data = {"value": 0}            # 设定 Adafruit IO 上传资料的 API 网址    url = ("https://io.adafruit.com/api/v2/" + aio_username +           "/feeds/" + aio_feed + "/data?X-AIO-Key=" + aio_key)        # 用 POST 上传 JSON 资料    urequests.post(url, json=data)    # 暂停 2 秒, 避免送出太多资料超过 Adafruit IO 免费额度    time.sleep(2)

启用成功后,挤出你的泪水滴在正确的板子上,你就会看见雨量变化了。
http://img2.58codes.com/2024/201495732aH76nXu82.png


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章