让我们假设一个情况,假设你是一个国际农业组织的首席执行官,该组织在全球拥有农田,你必须通过采取足够的措施来确保所有人都装备精良。如果 Simple Bolt 模块可以大规模减轻这种责任负担怎么办?好的!不是吗?是的,即使不使用传感器,这个项目也能让您通知您所选城市的天气!这只是一种情况,它还可以用于您的个人生活,当您即将离开家时发出警报,并在您享受美丽的雨时自动在社交媒体上发布一些美丽的想法,从而为您的天气做好准备!
该项目非常有用,它提供当前天气并通过 SMS 警报和针对不同天气条件的不同频率的 BUZZER 警报进行通知,并且还通过针对不同天气以不同强度为 LED 供电。twilio消息服务用于向用户发送 SMS 。有趣的是,这里的天气数据是通过Openweathermap提供的api而不使用任何传感器收集的。只需在 api 链接中更改城市名称,我们就可以获取世界任何地方的天气。在这里,Integromat应用程序用于通过创建不同的场景在 Twitter 上创建关于“你的想法”的不同天气的帖子。这Bolt Wi-fi 模块通过系统中ubuntu OS终端编写的python 代码连接。
2.1 开放天气地图
在这里,我们使用该组织提供的 URL,其中包含一个api ,可以帮助我们全天候收集任何地方的天气数据。网址如下,
url = https://api.openweathermap.org/data/2.5/weather?q=cityname,country-code&appid="your api id"
您可以在这里使用您的凭据简单地登录到他们的门户网站,然后您将收到一封带有您的 api 密钥的邮件,
在这里,您还可以通过不同的订阅付费和免费使用。在这里,我们使用免费订阅。一旦 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 也应添加到配置文件中。
最终的配置文件将如下所示(命名为 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 在您的帐户中创建一个新场景。为此,请按照以下步骤操作,
代码(功能): -
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 硬件连接
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !