×

温室温度监测系统

消耗积分:0 | 格式:zip | 大小:0.08 MB | 2022-12-14

李丽华

分享资料个

描述

我们喜欢能够全年种植我们最喜欢的植物,但由于每种植物都有温度要求,因此不可能在室外种植;然而,可以在温室中种植它们。温室的最佳温度是 27°C。大多数植物和蔬菜在此温度下会健康生长。即使在淡季,温室温度控制对于保持植物生长也很重要。

必须保持温室的理想温度,因为您在人工条件下种植植物,如果您没有正确管理温室,您的计划就会失败。如果温室中有很多植物,温室温度会迅速升高,因此采取一些措施来控制它很重要。为您的温室配备温度控制装置是一个很好的步骤。

蔬菜的温室温度取决于作物的类型。但通常最佳温室温度保持在 32°C (90°F) 和 24°C (75°F) 之间。

因此,在 Bolt WiFi 模块的帮助下,开发了一个温度监控系统,以跟踪温室内的温度。该系统以 5 分钟的间隔连续监测温度。它还可以向指定的手机号码发送短信提醒当前温度,并在温室内温度超出指定范围时要求采取必要的措施。同样在 Bolt Cloud 的帮助下,我们可以以折线图的形式分析数据。

poYBAGOAMSOANDsiAAcDf5cdyLs797.jpg
 

硬件连接

第一步是将LM35温度传感器连接到Bolt WiFi模块。

第 1 步:握住传感器,以便您可以读取上面写的 LM35。

第 2 步:在此位置,将传感器的引脚从左到右识别为 VCC、输出和接地。

第 3 步:使用公对母跳线将 LM35 的 3 个引脚连接到 Bolt Wifi 模块,如下所示:

  • LM35 的 VCC 引脚连接到 Bolt Wifi 模块的 5v。
  • LM35 的输出引脚连接到 Bolt Wifi 模块的 A0(模拟输入引脚)。
  • LM35 的 Gnd 引脚连接到 Gnd。

第 4 步:现在使用微型 USB 电缆为 Bolt WiFi 模块通电。它既可以连接到 PC/Lap 的 USB 端口,也可以连接到 5V 移动适配器。

配置 Bolt WiFi 模块

  • 使用 Play 商店中的 Bolt IOT 应用程序,让我们设置与 Bolt WiFi 模块的互联网连接。在应用程序中,单击“添加设备”按钮,然后按照说明将 Bolt WiFi 模块连接到 WiFi 网络/移动热点的步骤。
pYYBAGOAMSiAHk8tAAbukiBkCSk551.jpg
 

螺栓云

现在转到https://cloud.boltiot.com并使用您的凭据登录。然后使用“添加新设备”按钮添加您的设备。

下一步是添加产品。单击“添加产品”选项并将产品配置为输入设备,GPIO。然后在硬件部分,选择“A0”引脚并添加变量名称。在代码/软件部分,代码如下所示,以便从测量数据中获得折线图。

setChartLibrary('google-chart');
setChartTitle('Temperature Monitor Graph');
setChartType('lineGraph');
setAnimation(true);
setAxisName('Time','Temperature');
mul(1/10.24);
plotChart("time_stamp","tem");

注意:使用的语言是 JavaScript,'A0' 引脚的变量名称为“tem”。

您将获得 API 密钥和设备 ID。确保记下相同的内容以供进一步使用。

Twilio 帐户

为了发送 SMS,我们将使用第三方应用程序 Twilio。转到https://www.twilio.com/并创建一个帐户。从那里得到一个试用号码。记下分配给您的 SSID、身份验证令牌、发件人号码和收件人号码。

编码

对于编码部分,我们将使用虚拟 Linux 系统。使用 VirtualBox 和 Ubuntu Server 设置虚拟系统。然后登录到您的机器。

现在创建一个 python 文件 conf.py 并保存凭据,例如:

API 密钥、设备 ID(来自 Bolt 云)

SSID、身份验证令牌、From Number 和 To Number(来自 Twilio)

SID='ACXXXXXXXXXXcd43XXXXXXXXXXec65dc4'
AUTH_TOKEN='53XXXXXXXXXXXXXXXXXXXX92018e'
FROM_NUMBER='+19XXXXXXXXX1'
TO_NUMBER='+918XXXXXXXX6'

API_KEY='08XXXXX1-8XX6-4XX8-aXX5-5XXXXXXce20'
DEVICE_ID='BOLTXXXXXXX'

接下来,在一个单独的 python 文件中编写主要代码:

import conf
from boltiot import Sms, Bolt
import json, time

在这里,所需的库与我们之前创建的 conf 文件一起被导入。

max_limit=32
min_limit=24
mybolt=Bolt(conf.API_KEY, conf.DEVICE_ID)
sms=Sms(conf.SID, conf.AUTH_TOKEN, conf.TO_NUMBER, conf.FROM_NUMBER)

然后将最高和最低温度限制分别设置为 32 和 24 摄氏度,并分别为 Bolt 和 Sms 创建 2 个对象。

while True:
	print("Reading temperature")
	response=mybolt.analogRead('A0')
	data=json.loads(response)
	print("Greenhouse is : "+str(round(int(data['value'])/10.24,2))+" degree celsius")
	try:
		sensor_value=int(data['value'])
		temperature=round(sensor_value/10.24,2)
		if temperature>max_limit:
			print("Making   request to Twilio")
			respons=sms.send_sms("Greenhouse temperature is "+ str(temperature)+" degree celsius. Temperature exceeded maximum limit. Deploy cooling measures ")
			print("Response received from Twilio is: "+str(respons))
			print("Status of sms is: "+ str(respons.status))
		elif temperature<>
			print("Making   request to Twilio")
			respons=sms.send_sms("Greenhouse temperature is "+ str(temperature)+" degree celsius. Temperature exceeded minimum limit. Deploy heating measures ")
			print("Response received from Twilio is: "+str(respons))
			print("Status of sms is: "+ str(respons.status))
	except Exception as e:
		print("Error: Details")
		print(e)
	time.sleep(300)

在 while 语句中:

  • 首先从传感器读取数据,然后打印。在打印传感器值时,将其除以 10.24 以获取以摄氏度为单位的温度。
  • round() 用于四舍五入到小数点后 2 位。
  • 接下来在 try 块中,提供了一个 if 语句。如果温度超过最高限制,则会向 Twilio 发出请求,以发送一条 SMS 指示当前温度并指示部署冷却措施。
  • 同样,如果温度降至最低限度以下,则会向 Twilio 发出请求,以发送一条 SMS 指示当前温度并指示部署加热措施。
  • 此外,异常块用于在可能发生的任何情况下打印错误。
  • 最后,提供 5 分钟(300 秒)的时间延迟来测量间隔内的温度。

输出

poYBAGOAMSqASohxAAD8kEmHPGQ878.jpg
在正常条件下获取温度读数。
 
poYBAGOX3c6AVIkOAAFHrg7ApNg810.jpg
当温度低于最低限制(24 摄氏度)时发送短信警报
 
pYYBAGOX3dmAD0AlAAFj9LHEcV8740.jpg
当温度超过最高限制(32 摄氏度)时发送短信警报
 

注意:我在钢制容器中使用热水和冷水分别将温度刺激到 32 度以上和 24 度以下。

poYBAGOX3lSAdjLyAAETpIqB-JY641.jpg
从螺栓云中获得的线图显示温度与时间的关系
 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !