×

使用BolT的天气报告和警报系统

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

李娜

分享资料个

描述

让我们假设一个情况,假设你是一个国际农业组织的首席执行官,该组织在全球拥有农田,你必须通过采取足够的措施来确保所有人都装备精良。如果 Simple Bolt 模块可以大规模减轻这种责任负担怎么办?好的!不是吗?是的,即使不使用传感器,这个项目也能让您通知您所选城市的天气!这只是一种情况,它还可以用于您的个人生活,当您即将离开家时发出警报,并在您享受美丽的雨时自动在社交媒体上发布一些美丽的想法,从而为您的天气做好准备!

一、简介

该项目非常有用,它提供当前天气并通过 SMS 警报和针对不同天气条件的不同频率的 BUZZER 警报进行通知,并且还通过针对不同天气以不同强度为 LED 供电。twilio消息服务用于向用户发送 SMS 有趣的是,这里的天气数据是通过Openweathermap提供的api而不使用任何传感器收集的只需在 api 链接中更改城市名称,我们就可以获取世界任何地方的天气。在这里,Integromat应用程序用于通过创建不同的场景在 Twitter 上创建关于“你的想法”的不同天气的帖子。Bolt Wi-fi 模块通过系统中ubuntu OS终端编写的python 代码连接。

2. 工作

2.1 开放天气地图

在这里,我们使用该组织提供的 URL,其中包含一个api ,可以帮助我们全天候收集任何地方的天气数据。网址如下,

url = https://api.openweathermap.org/data/2.5/weather?q=cityname,country-code&appid="your api id"

您可以在这里使用您的凭据简单地登录到他们的门户网站,然后您将收到一封带有您的 api 密钥的邮件,

 
 
 
poYBAGOX-YaABAhBAAGJd96CBUA203.png
 
1 / 2
 

在这里,您还可以通过不同的订阅付费和免费使用。在这里,我们使用免费订阅。一旦 URL 准备好,我们就可以简单地将它应用到我们在 ubuntu 终端中编写的 python 代码中。

2.2 Python编码

下面给出的代码从“ OWM ”中检索天气数据并将其存储在变量weather中,

json_data=requests.get(url).json()
weather = json_data['weather'][0]['id']

另一个任务是从 URL 提供的数值中检测天气。那就是我们使用的 URL 给出了一个数值,该数值旨在检测特定的天气状况,只需参考下面给出的链接,

链接:- https://openweathermap.org/weather-conditions

在这里,我们可以看到代表特定天气情况的几个值,例如800表示晴天,502表示大雨等。所以我们可以根据这些值编写代码,即我们可以将变量weather的值与这些特定的数值并确定天气,然后我们可以据此发送短信并设置警报。下面给出了单个条件的代码,

if weather==200:
          print("Turning the Alert ON!")
          mybolt.analogWrite('1', '200') and mybolt.analogWrite('0', '220')
          print("Making request to Twilio to send a SMS")
          response = sms.send_sms("There is Light rain with Thunderstorm outside, sir" + str(weather))
          print("Response received from Twilio is: " + str(response))
          print("Status of SMS at Twilio is :" + str(response.status))
          time.sleep(5)
          mybolt.analogWrite('1', '0') and mybolt.analogWrite('0', '0')

这里 LED 和蜂鸣器是使用analogeWrite() 函数操作的,这样我们就可以分别在值0 和255 之间以不同的强度和频率操作它们,并且使用twilio 消息服务发送SMS。短信内容和在analogWrite 函数中传递的值对于每种天气条件都是不同的。

底部给出了完整的python代码。

2.3 使用的应用

现在接下来的任务是根据天气值向用户的手机发送短信。为此,我们需要在名为“ twilio ”的在线消息平台上创建一个帐户。

当您成功创建帐户后,您可以在仪表板中找到一个 SID、AUTH_TOKEN 和一个 Trial_NUMBER,这些应该添加到实际程序的配置文件中。您的 Bolt 云帐户的 api 密钥和您的 Bolt Wifi 模块的 DEVICE_ID 也应添加到配置文件中。

pYYBAGOX-YuAHOIaAABHbscjz0A115.png
图2.螺栓云
 
  • 您可以在下方仪表板的 API 部分找到您的 Bolt 云 API 密钥,
poYBAGOX-ZSADxpWAABLMGCCHiQ106.png
图3.螺栓API
 

最终的配置文件将如下所示(命名为 conf.py),

SID = 'your twilio SID' 
AUTH_TOKEN = 'your twilio AUTH_TOKEN' 
FROM_NUMBER = 'Your twilio trial number'
TO_NUMBER = 'Your mobile number regitered in twilio'
API_KEY = 'Your Bolt cloud API key'
DEVICE_ID = 'BOLT7XXXX' //Your Bolt module ID

现在,还有一项任务是将 integromat 与此代码链接,以便在 twitter 中创建帖子。为此,请在下面给出的 integromat 网站上创建一个帐户,

链接:- https://www.integromat.com/

现在通过包括 webhook 和 twitter 在您的帐户中创建一个新场景。为此,请按照以下步骤操作,

  • 在这里创建一个新场景,
pYYBAGOX-ZeAaq6HAABQsprMOBY070.png
fig4.integromat
 
  • 现在在其中添加 webhook 和 twitter。
pYYBAGOX-Z6AZ9y1AAD17bLShR8731.png
图 5 场景
 
  • 现在按 webhooks 图标并按添加,然后您将获得一个 URL,该 URL 应添加到 python 代码中的函数中,也按 twitter 图标并按添加,然后登录到您的 twitter 帐户并输入您的消息张贴在状态字段并保存。下面给出了屏幕截图和用python代码编写的函数
poYBAGOX-aGAURuNAAEymyHiorA595.png
fig6 webhook URL
 
poYBAGOX-aSALzFsAAE0938UpsA330.png
fig7 推特登录
 

代码(功能): -

def trigger_integromat_webhook():
    URL = "https://hook.integromat.com/xxxxxxxxxxx" # REPLACE WITH CORRECT URL
    reply = requests.request("GET", URL)
    print(reply.text)

//Here the URL given is the webhook URL from the Integromat.

代码(触发器):-

trigger_integromat_webhook()

//This calls the function defined above and thus the text given is posted on twitter.

如果我们需要获得不同天气条件的通知,那么我们需要创建具有不同场景和不同消息的不同场景。

2.4 硬件连接

  • 首先使用公对公跳线将模块的接地引脚连接到面包板。
  • 然后使用公对母线将蜂鸣器的 +ve 端连接到模块的 0 引脚,将 -ve 端连接到面包板上的接地引脚。
  • 现在将 LED 的 -ve 端连接到接地引脚,并用 330 欧姆电阻包裹 +ve 端,并使用公对公线将电阻器的另一端连接到模块中的 1 引脚。
  • 现在打开 Bolt Wifi 模块并确保它已连接到互联网(绿色和蓝色 LED 常亮)。

 

 

 

 

 


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

评论(0)
发评论

下载排行榜

全部0条评论

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