我们喜欢能够全年种植我们最喜欢的植物,但由于每种植物都有温度要求,因此不可能在室外种植;然而,可以在温室中种植它们。温室的最佳温度是 27°C。大多数植物和蔬菜在此温度下会健康生长。即使在淡季,温室温度控制对于保持植物生长也很重要。
必须保持温室的理想温度,因为您在人工条件下种植植物,如果您没有正确管理温室,您的计划就会失败。如果温室中有很多植物,温室温度会迅速升高,因此采取一些措施来控制它很重要。为您的温室配备温度控制装置是一个很好的步骤。
蔬菜的温室温度取决于作物的类型。但通常最佳温室温度保持在 32°C (90°F) 和 24°C (75°F) 之间。
因此,在 Bolt WiFi 模块的帮助下,开发了一个温度监控系统,以跟踪温室内的温度。该系统以 5 分钟的间隔连续监测温度。它还可以向指定的手机号码发送短信提醒当前温度,并在温室内温度超出指定范围时要求采取必要的措施。同样在 Bolt Cloud 的帮助下,我们可以以折线图的形式分析数据。
第一步是将LM35温度传感器连接到Bolt WiFi模块。
第 1 步:握住传感器,以便您可以读取上面写的 LM35。
第 2 步:在此位置,将传感器的引脚从左到右识别为 VCC、输出和接地。
第 3 步:使用公对母跳线将 LM35 的 3 个引脚连接到 Bolt Wifi 模块,如下所示:
第 4 步:现在使用微型 USB 电缆为 Bolt WiFi 模块通电。它既可以连接到 PC/Lap 的 USB 端口,也可以连接到 5V 移动适配器。
现在转到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。确保记下相同的内容以供进一步使用。
为了发送 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 语句中:
注意:我在钢制容器中使用热水和冷水分别将温度刺激到 32 度以上和 24 度以下。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !