背景知识视频教程


使用NodeMCU(由ESP8266支持),MicroPython和PyCharm进行物联网 - 国外课栈viadean.com


esp32 s3 spi引脚_数据


使用MicroPython的微控制器和EPS32的Python权威指南 - 国外课栈viadean.com

esp32 s3 spi引脚_micropython入门指南pdf_02

适用于使用ESP32/ESP8266的所有人的MicroPython(入门) - 国外课栈viadean.com


esp32 s3 spi引脚_数据_03


IOT项目的最常见形式之一是使用传感器将事件监控到的事件,这些传感器将数据提供给另一台计算机,云服务或本地服务器(例如HTML服务器)。 一种方法是将MicroPython开发板连接到一组传感器,然后记录数据。 您可以在Internet上找到一些常规数据记录器的示例,但是很少有将数据记录与可视化组件结合在一起的。 实际上,了解数据是制定成功的物联网解决方案的关键。

我们将探索将数据记录与数据可视化相结合。 我们将使用HTML服务器等技术。 我们还将看到如何使用模拟传感器-一种产生模拟数据的传感器,然后我们必须对其进行解释。 实际上,我们将依靠电路板的模数转换(ADC)功能将读取的电压更改为我们可以使用的值。

介绍

我们将实施植物土壤湿度监测解决方案(为简洁起见,我们将使用植物监测器)。 这将涉及使用一个或多个连接到我们的MicroPython开发板的土壤湿度传感器。 我们将设置一个计时器警报(中断),使其定期运行以从传感器读取数据并将其存储在逗号分隔值(CSV)文件中。

下图描绘了该项目的概念图。 MicroPython板将从土壤湿度传感器读取数据,然后根据要求通过HTML网页显示数据。

该项目的用户界面是一个网页,其中包含一个表,该表包含从日志文件读取的所有数据。 这是我们可以克服循环运行HTML服务器的潜在问题的方法。 也就是说,我们不必中断循环来读取传感器-只需通过计时器警报回调即可完成。 可悲的是,该技术仅适用于WiPy和类似的电路板。 我们将不得不对Pyboard使用其他技术。

通过将传感器读数与显示屏分开,我们可以重复使用或修改它们,而不会在我们深入研究代码时感到困惑。 例如,只要可视化组件从文件中读取传感器数据,传感器读取代码的使用方式就无关紧要。 这两个部分之间唯一的接口或连接是文件的格式,并且由于我们使用的是CSV文件,因此在我们的代码中非常容易阅读和使用。

为了使事情变得更有趣并使编码更容易,我们将所有传感器代码放在单独的代码模块中。

零件需求

所需的跳线数量将因您使用的传感器数量以及是否使用需要网络模块的MicroPython板而异。 每个传感器需要三个跳线,如果使用的是CC3000 SPI转接板,则需要八根额外的线。 如果您打算使用Pyboard,则还需要添加一个实时时钟以在断电时保持时间

Pyboard固件不支持网络时间协议(NTP)服务器。 因此,您必须在每次打开板上电源时初始化板载RTC,将备用电池连接到板上(请参阅板的下面–您将看到需要焊接的引脚),或添加实时功能的时钟模块。

土壤水分传感器有多种形式,但大多数都有两个插脚插入土壤中,并使用少量电荷测量插脚之间的电阻。 读数越高,土壤中的水分就越多。 但是,需要一些配置才能获得可靠或现实的阈值。 尽管制造商会提供阈值建议,但可能需要进行一些实验才能找到正确的值。

这些传感器还可能受到环境因素的影响,这些环境因素包括植物所处的花盆类型,土壤成分以及其他因素。 因此,尝试使用已知的水淹过的土壤,干燥的土壤和适当照料的土壤将有助于您缩小环境的门槛。

特别值得注意的是这些土壤湿度传感器是如何工作的。 如果要让传感器保持开机状态,它们会随着时间推移而退化。 尖头上的金属可能会由于电解而降解,从而大大缩短其使用寿命。 您可以使用GPIO引脚的技术通过在想要读取值时将其打开来为传感器供电。 请记住,传感器稳定时会有一个小的延迟,但是我们可以使用一个简单的延迟来等待,然后读取该值并关闭传感器。 这样,我们可以大大延长传感器的使用寿命。

设置

下图仅显示两个传感器,但您可以根据需要添加更多传感器。 但是,建议您从一个传感器开始,直到使项目工作,然后再添加其他传感器。 如果更简单,则可以使用试验板将传感器连接到MicroPython板上,但是根据您计划将板放置的位置,可能不需要它。

接线

当然,您必须将土壤水分传感器插入植物的土壤中。 如果您的植物距离电源较远,则可能需要使用更长的电线来连接传感器。 您应该从一个单一的小型植物和一个传感器(或者为了测试,在一个植物中安装两个传感器)开始,然后将其放置在靠近PC(或电源)的位置。

请务必在打开开发板电源之前仔细检查您的连接。 现在,让我们谈谈我们需要编写的代码。

编程

我们将分两个阶段编写代码,并将在测试项目之前将所有内容放在一起。我们将有两个主要部分:主代码和封装土壤传感器的代码模块。 我们将HTML服务器代码和支持功能放在主代码模块中。 但是,在开始执行该项目的代码之前,应先校准传感器。

校对

传感器的校准非常重要。 对于土壤湿度传感器而言尤其如此,因为有许多不同的版本可用。 这些传感器对土壤成分,温度甚至植物所居住的盆栽类型也非常敏感。 因此,我们应该对已知的土壤水分进行试验,以便知道在代码中使用的范围。

更具体地说,我们想对来自传感器的观察结果进行分类,以便可以确定植物是否需要浇水。 我们将使用“ dry”,“ Ok”和“ wet”值对从传感器读取的值进行分类。 看到这些标签对于我们来说一目了然,很容易确定植物是否需要浇水。 在这种情况下,原始数据(例如1756的值)可能意义不大,但是如果看到“dry”,我们知道它需要水。

由于传感器是模拟传感器,因此我们将在板上使用模数转换。 当我们从引脚读取数据时,我们将获得0-4096范围内的值。 该值与传感器在土壤中读取的电阻有关。 低值表示干土,高值表示湿土。

我们必须确定这三种分类的阈值。 同样,有几个因素会影响从传感器读取的值。 因此,您应该选择几盆土壤,其中一盆您觉得干燥,另一盆已正确浇水,而第三盆过水。 最好的选择是选择一种干燥的,进行测量,然后浇水直到土壤湿度正确,再进行测量,然后再次浇水直到水分过多。

代码

校对土壤水分阈值

参阅

使用MicroPython制作植物土壤水分监控 - 国外课栈viadean.com

esp32 s3 spi引脚_micropython入门指南pdf_04