资料介绍
描述
概述
每当我因工作和学习而感到压力时,假期真的是让我兴奋的地方。假日季节通常被认为是从 11 月下旬到 1 月初。为什么不游览这座城市或参观新的地方,看看该镇提供的所有亮点。由于旅行的速度,我们在探索所有地方时经常会错过一些着名的目的地,慢慢地详细描述赛道上的所有地标(有时也是不可预测的天气)。所以我想到的是一个简单的解决方案来解决这个问题。Holidays Traveler 设备旨在按照您的步调穿越地标,只需将其连接到网络即可。
设备将根据 IP 地址、天气更新和附近的著名地点和简要摘要自动检测位置,并将这些更新通过电子邮件和短信发送到我们的手机上,让观光更有趣。
功能性
该设备是使用涂鸦云 SDK构建的,这个涂鸦项目用例可以帮助开发人员为旅游业思考和创新——尤其是在营销您的产品或其他方面。想象一下这样的创新用例——当用户到达特定位置时向他们发送警报,并建议他们参观著名的公园、餐馆、建筑物等。
Tuya到底是什么?
涂鸦智能是一个全球物联网开发平台,构建互连标准,以桥接品牌、OEM、开发商和零售连锁店在广泛的智能设备和行业中的智能需求。
涂鸦基于全球公有云,通过提供硬件开发工具、整合公有云服务、提供智能业务开发平台,连接不同的智能场景和智能设备。
先决条件
- 涂鸦开发者账号。在这里获取 - https://developer.tuya.com/en/
- 涂鸦开放API 。安装,
$ pip install tuya-iot-py-sdk
设置涂鸦云账号和项目:
注册后,您将前往仪表板。从那里,转到“云”并创建一个插入以下信息的项目。
授权所需的 API(我们将需要天气、位置、电子邮件和 SMS API)
涂鸦云 API
最重要的是,您需要 ACCESS_ID 和 ACCESS_KEY 才能使用 API
from tuya_connector import (
TuyaOpenAPI
)
ACCESS_ID = "*************123"
ACCESS_KEY = "*************56565"
API_ENDPOINT = "https://openapi.tuyain.com"
# Project configuration
USERNAME = 'youremail@mail.com' # email address or phone number
PASSWORD = 'yourpassword'
# Initialization of tuya openapi
openapi = TuyaOpenAPI(ENDPOINT, ACCESS_ID, ACCESS_KEY, AuthType.CUSTOM)
print(openapi.connect(USERNAME, PASSWORD))
如果一切正确,您将不会收到错误代码,并且可以继续执行其他步骤。我们将需要我们的位置数据来使用涂鸦天气 API,因此我们将首先获取我们的 IP 地址,然后使用涂鸦 LBS 服务 API 找出我们的坐标。获得地理坐标后,我们将使用 Wikipedia API 搜索地标和摘要。
# Device IP
url = 'http://ipinfo.io/json'
response = urlopen(url)
data = json.load(response)
IP = data[ 'ip' ]
# Get location of device through IP
location = openapi.get(f'/v1.0/iot-03/locations/ip?ip={IP}')
print(location)
location = location[ 'result' ]
latitude, longitude = location[ 'latitude' ], location[ 'longitude' ]
现在我们将使用天气 API 获取我们所在位置的天气数据
weather_url = f'/v2.0/iot-03/weather/current?lat={latitude}&lon={longitude}'
weather = openapi.get(weather_url)
condition = weather['result']['current_weather']['condition']
air_quality = weather['result']['air_quality']['aqi']
print(condition, air_quality)
现在我们将构建消息,但在此之前让我们探索涂鸦短信和电子邮件 API,
sent = openapi.post("/v1.0/iot-03/messages/mails/actions/push", dict({ "to_address": "hello@gmail.com",
"template_id": "MAIL_1624531323",
"reply_to_address": "hi@gmail.com"}))
上面是请求参数, 1. template_id:是邮件模板的ID。涂鸦提供默认设置,您也可以创建自己的。公共默认模板,MAIL_1624531323, MAIL_1624531338
2. reply_to_address:表示用户将发送回复的地址。
我们将根据我们的项目创建一个新的电子邮件模板,您可以直接从涂鸦云 API 浏览器中制作它https://iot.tuya.com/cloud/explorer
{
"name": "Don't Miss These Places Traveller!",
"title": "Hello!",
"sender_name": "Jimmy",
"content": "Hey! We found some amazing places near you, ${landmarks}. Today's weather is ${condition} and AQI is ${aqi}.",
"type": 2,
"remark": "This email is for tourists to get aware of nearby landmarks based upon their locations"
}
第一个字符串是请求参数。字典是为了内容。
-
name
是您的模板的名称。 -
content
代表消息内容。 -
type
用于消息的类型 - 验证码、通知或促销。我一直把它作为促销(2)
成功信息应该是这样的,
{
"result": {
"template_id": "MAIL_9584653696"
},
"success": true,
"t": 1640579722731
}
保存 template_id,我们将需要它进行进一步的步骤。请注意,在审核并允许之前,您将无法使用此模板。别担心,这个过程将需要不到 2 个工作日。
短信模板也一样,直接在涂鸦云API浏览器
初始测试对模板有好处,请参阅下面的 SMS 和电子邮件的外观
准备好两个模板后,让我们跳到我们的代码。
landmarks = wikipedia.geosearch(lat, lon, results=2)
landmarksListToStr = ' '.join(map(str, landmarks))
params = {
"landmarks": landmarksListToStr,
"condition": condition,
"aqi": air_quality
}
payload_json = json.dumps(params)
print(payload_json)
email_sent = openapi.post("/v1.0/iot-03/messages/mails/actions/push", dict({"to_address": "gadecito@ryteto.me",
"template_id": "MAIL_9584653696",
"template_param": payload_json,
"reply_to_address": ""
}))
print(email_sent)
在代码部分中找到完整的代码。在联网的 Raspberry Pi 设备上运行程序并随身携带(使用按钮等触发机制来防止收件箱填满)
连接按钮后,在脚本中使用以下代码
import RPi.GPIO as GPIO
import time
from tuya_iot import (
TuyaOpenAPI,
AuthType,
)
from urllib.request import urlopen
import json
import wikipedia
url = 'http://ipinfo.io/json'
# Cloud project authorization info
ACCESS_ID = 'ecnthtncb7d2tpmuzlzs'
ACCESS_KEY = 'b75ce52xxxxxxxxxxxxxxxxxx'
# Select an endpoint base on your project availability zone
# For more info: https://developer.tuya.com/en/docs/iot/api-request?id=Ka4a8uuo1j4t4
ENDPOINT = "https://openapi.tuyain.com"
# Project configuration for authorized account
USERNAME = 'test1@gmail.com' # email address or phone number
PASSWORD = 'Job894455'
SMS_TEMPLATE_ID = "SMS_2460072921" # SMS template ID
EMAIl_TEMPLATE_ID = "MAIL_9584653696" # Email template ID
# Initialization of tuya openapi
openapi = TuyaOpenAPI(ENDPOINT, ACCESS_ID, ACCESS_KEY, AuthType.CUSTOM)
print(openapi.connect(USERNAME, PASSWORD))
# Setup the Pin with Internal pullups enabled and PIN in reading mode.
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down = GPIO.PUD_UP)
# Add our function to execute when the button pressed event happens
GPIO.add_event_detect(18, GPIO.FALLING, callback = SendMsg, bouncetime = 2000)
def SendMsg():
response = urlopen(url)
data = json.load(response)
print(data)
IP = data['ip']
# Get location of device through IP
location = openapi.get(f'/v1.0/iot-03/locations/ip?ip={IP}')
print(location)
location = location['result']
latitude, longitude = location['latitude'], location['longitude']
landmarks = wikipedia.geosearch(latitude, longitude, results=5)
landmarksListToStr = ' '.join(map(str, landmarks))
# get weather based on geo location
weather_url = f'/v2.0/iot-03/weather/current?lat={latitude}&lon={longitude}'
weather = openapi.get(weather_url)
print(weather)
condition = weather['result']['current_weather']['condition']
air_quality = weather['result']['air_quality']['aqi']
print(condition, air_quality)
params = {
"landmarks": landmarksListToStr,
"condition": condition,
"aqi": air_quality
}
payload_json = json.dumps(params)
print(payload_json)
email_sent = openapi.post("/v1.0/iot-03/messages/mails/actions/push", dict({"to_address": "gadecito@ryteto.me",
"template_id": "MAIL_9584653696",
"template_param": payload_json,
"reply_to_addr}))
sms_sent = openapi.post("/v1.0/iot-03/messages/sms/actions/push", dict({"country_code": "91",
"phone": "748000000",
"template_id": "SMS_2460072921",
"template_param": payload_json,
"sign_name": ""
}))
print(email_sent)
print(sms_sent) }))
sms_sent = openapi.post("/v1.0/iot-03/messages/sms/actions/push", dict({"country_code": "91",
"phone": "748000000",
"template_id": "SMS_2460072921",
"template_param": payload_json,
"sign_name": ""
}))
print(email_sent)
print(sms_sent)
未来的步骤:
为什么不加入涂鸦云,为您的下一个 SMS 和 EMAIL 通知智能项目使用云 API 进行创新。几乎所有这些 API 都以几乎相同的方式使用。请求参数和包含所有所需内容的字典。文档非常易于遵循。
- 仪器手套开源构建
- 基于涂鸦LZ201 Cat.1和MCU SDK的自动售货机
- 使用涂鸦link SDK的自动风扇控制应用程序
- 使用涂鸦link SDK的土壤水分数据检索应用
- 涂鸦DAEMON开源项目
- 使用涂鸦云平台破解你自己的智能小工具
- 爱迪生Arduino SDK开源分享
- 从零开始创建GD32F4系列单片机工程模板&移植涂鸦MCU-SDK
- 涂鸦标准模组MCU SDK开发流程
- STM32对接涂鸦MCU SDK实战教程
- 涂鸦智能 ① tuya-wifi-mcu-sdk-arduino-library 简单剖析
- 涂鸦开发板3.0原理图下载 0次下载
- 基于Web云端应用服务构建等的齿轮云测量终端系统 9次下载
- Keil_SDK软件精简脚本安装 2次下载
- 云计算与开源 0次下载
- Purple Pi OH 更改SDK的编译选项 166次阅读
- 聚沃科技SDK使用指南 331次阅读
- 高度集成处理器HMI设计的五大设计注意事项 348次阅读
- ZWS云平台应用(2)-设备基于SDK接入 296次阅读
- AWTK 串口屏开发(5) - MCU端 SDK 用法 298次阅读
- 基于ARM体系架构构建云服务 448次阅读
- 基于YCT的云途SDK配置工程升级方法 1166次阅读
- window端的sdk_env的构建工具使用 546次阅读
- API、SDK是什么?SDK和API的区别 2134次阅读
- 云计算的技术分析及平台建设与应用构建方法研究 3972次阅读
- 开源与云的一些争论 3200次阅读
- 如何针对涂鸦识别问题构建基于RNN的识别器 3589次阅读
- 企业如何快速的构建私有化的存储云? 1065次阅读
- Xilinx SDK使用教程 4725次阅读
- 旅行携物防失器电路 1324次阅读
下载排行
本周
- 1elmo直线电机驱动调试细则
- 4.76 MB | 9次下载 | 6 积分
- 2GB 4706.17-2010 家用和类似用途电器的安全电动机-压缩机的特殊要求
- 3.47 MB | 6次下载 | 1 积分
- 3WIFI智能音箱原理图完整版
- 0.09 MB | 5次下载 | 10 积分
- 4GB/T4706.1-2024 家用和类似用途电器的安全第1部分:通用要求
- 7.43 MB | 3次下载 | 1 积分
- 5ADL-GPIB IEEE 488命令集函数参考手册
- 0.67 MB | 2次下载 | 5 积分
- 6H10-T108KYG/5M数据表
- 0.73 MB | 2次下载 | 免费
- 748V三相逆变器电路图
- 0.54 MB | 1次下载 | 5 积分
- 8如何使用C2000 CLB实现Traction Inverter应用中的PWM输出保护功能
- 1.32 MB | 1次下载 | 免费
本月
- 1新概念模拟电路第四册信号处理电路电子书免费下载
- 10.69 MB | 53次下载 | 免费
- 2800VA纯正弦波逆变器的参考设计
- 2.96MB | 22次下载 | 免费
- 3SW6308V原理图设计指南
- 0.75 MB | 15次下载 | 1 积分
- 4SW6308V三口多协议升降压移动电源SOC中文手册
- 1.61 MB | 14次下载 | 1 积分
- 5纯电动汽⻋的主要部件及⼯作原理
- 5.76 MB | 13次下载 | 5 积分
- 6新概念模拟电路(电子版全集)
- 29.33 MB | 11次下载 | 免费
- 7GP328和GP88S对讲机的维修实列资料合集免费下载
- 0.03 MB | 10次下载 | 10 积分
- 8SW6308V寄存器手册
- 1.08 MB | 10次下载 | 1 积分
总榜
- 1matlab软件下载入口
- 未知 | 935115次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191366次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183329次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73805次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65985次下载 | 10 积分
评论
查看更多