
尝试将DS18B20温度传感器连接到
智能温室时 ,我发现Internet上没有通过Python编程语言连接该传感器的完整说明。 我使用它是因为我使用Raspberry Pi平台。 我决定解决此问题。 事实证明,使用TCP并不是那么困难,但是您需要了解我们在做什么以及为什么这么做。 用铃鼓进行的两个小时的舞蹈显然让我生气。 因此,在这里,除了软件部分本身,我还要从头到尾讲述整个算法。 我认为其他传感器的工作原理类似,因此大篇幅对每个人都是一样的。 我希望如果您想连接传感器,则不需要铃鼓:)因此,让我们开始吧,我要求您提供Habrokat。
带有传感器的萨满教

对于我们来说,我们需要连接传感器本身。 我将使用DS18B20温度传感器。 有关此主题的完整文章,我们将不再重复。 您可以在
此处阅读有关连接的
信息 。 然后我们需要从传感器获取数据。 我们将按照上述文章中的说明进行操作。 我喜欢一个很棒的Python示例。
import os tfile=open("/sys/bus/w1/devices/28-000000d7970b/w1_slave") ttext=tfile.read() tfile.close() temp=ttext.split("\n")[1].split(" ")[9] temperature=float(temp[2:])/1000 print temperature
不要忘记用传感器替换数据。如我们所见,温度是温度变量(本来会想到的),这是我们将进一步需要的。
联想监控
好吧,首先,您需要注册
narodmon.ru ,那些还没有注册的人。 服务API使我们能够通过TCP传输数据。 因此,让我们开始吧。 我们被要求以以下格式传达文本:
#MAC[#NAME][#LAT][#LNG][#ELE]\n #mac1#value1[#time1][#name1]\n ... #macN#valueN[#timeN][#nameN]\n ##
但实际上,我们只需要传递三个参数:设备的MAC,传感器的名称及其值。 其余的部分是没有必要的,我们并不是真的需要它。
在第一行中,我们需要传递晶格,MAC和换行符\ n。
在第二行和后续行中,我们再次传输网格,传感器名称,网格和传感器读数。 我们以换行符\ n结尾。
在最后一行中,您需要传递两个网格以完成打包。
结果,格式保持如下:
#MAC\n #mac1#value1\n #macN#valueN\n ##
编写Python程序
我们将使用Python 2编写程序。算法将如下所示。 我们从传感器接收数据并将其写入温度变量。 然后,我们形成该程序包并将其发送到人员监视服务器。 我们将通过cron每10分钟运行一次脚本(发送读数的最小间隔为5分钟)。
发送发生如下(在监视站点上为示例):
我们已连接到服务器narodmon.ru:8283
结果,我们得到以下脚本:
这就是从两个传感器发送数据的样子。 如果给传感器起一个以T开头的名称,则服务器本身将确定它是温度传感器。
现在我们需要将传感器添加到cron中。 我们输入:
crontab -e
并在其中添加以下行:
*/10 * * * * sudo python /home/pi/narod.py
我们正在等待脚本运行。
现在,我们转到
narodmon.ru/ip ,查看是否已传输数据。 如果一切正常,则单击菜单主页上的“添加设备”按钮,然后指定MAC。 现在,我们可以自定义所有口味(名称,类型,位置等)。 您可以在证词传输开始的一天后将传感器公开。
仅此而已。 祝您连接传感器好运。 经常进行此操作,因为从家中可以很方便地提前查看要去的地方的温度。
再见:)