資料介紹
描述
概述
每當我因工作和學習而感到壓力時,假期真的是讓我興奮的地方。假日季節(jié)通常被認為是從 11 月下旬到 1 月初。為什么不游覽這座城市或參觀新的地方,看看該鎮(zhèn)提供的所有亮點。由于旅行的速度,我們在探索所有地方時經(jīng)常會錯過一些著名的目的地,慢慢地詳細描述賽道上的所有地標(有時也是不可預測的天氣)。所以我想到的是一個簡單的解決方案來解決這個問題。Holidays Traveler 設備旨在按照您的步調(diào)穿越地標,只需將其連接到網(wǎng)絡即可。
設備將根據(jù) IP 地址、天氣更新和附近的著名地點和簡要摘要自動檢測位置,并將這些更新通過電子郵件和短信發(fā)送到我們的手機上,讓觀光更有趣。
功能性
該設備是使用涂鴉云 SDK構(gòu)建的,這個涂鴉項目用例可以幫助開發(fā)人員為旅游業(yè)思考和創(chuàng)新——尤其是在營銷您的產(chǎn)品或其他方面。想象一下這樣的創(chuàng)新用例——當用戶到達特定位置時向他們發(fā)送警報,并建議他們參觀著名的公園、餐館、建筑物等。
Tuya到底是什么?
涂鴉智能是一個全球物聯(lián)網(wǎng)開發(fā)平臺,構(gòu)建互連標準,以橋接品牌、OEM、開發(fā)商和零售連鎖店在廣泛的智能設備和行業(yè)中的智能需求。
涂鴉基于全球公有云,通過提供硬件開發(fā)工具、整合公有云服務、提供智能業(yè)務開發(fā)平臺,連接不同的智能場景和智能設備。
先決條件
- 涂鴉開發(fā)者賬號。在這里獲取 - https://developer.tuya.com/en/
- 涂鴉開放API 。安裝,
$ pip install tuya-iot-py-sdk
設置涂鴉云賬號和項目:
注冊后,您將前往儀表板。從那里,轉(zhuǎn)到“云”并創(chuàng)建一個插入以下信息的項目。
授權所需的 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))
如果一切正確,您將不會收到錯誤代碼,并且可以繼續(xù)執(zhí)行其他步驟。我們將需要我們的位置數(shù)據(jù)來使用涂鴉天氣 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' ]
現(xiàn)在我們將使用天氣 API 獲取我們所在位置的天氣數(shù)據(jù)
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)
現(xiàn)在我們將構(gòu)建消息,但在此之前讓我們探索涂鴉短信和電子郵件 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"}))
上面是請求參數(shù), 1. template_id:是郵件模板的ID。涂鴉提供默認設置,您也可以創(chuàng)建自己的。公共默認模板,MAIL_1624531323, MAIL_1624531338
2. reply_to_address:表示用戶將發(fā)送回復的地址。
我們將根據(jù)我們的項目創(chuàng)建一個新的電子郵件模板,您可以直接從涂鴉云 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"
}
第一個字符串是請求參數(shù)。字典是為了內(nèi)容。
-
name
是您的模板的名稱。 -
content
代表消息內(nèi)容。 -
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)
在代碼部分中找到完整的代碼。在聯(lián)網(wǎng)的 Raspberry Pi 設備上運行程序并隨身攜帶(使用按鈕等觸發(fā)機制來防止收件箱填滿)
連接按鈕后,在腳本中使用以下代碼
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 進行創(chuàng)新。幾乎所有這些 API 都以幾乎相同的方式使用。請求參數(shù)和包含所有所需內(nèi)容的字典。文檔非常易于遵循。
- 儀器手套開源構(gòu)建
- 基于涂鴉LZ201 Cat.1和MCU SDK的自動售貨機
- 使用涂鴉link SDK的自動風扇控制應用程序
- 使用涂鴉link SDK的土壤水分數(shù)據(jù)檢索應用
- 涂鴉DAEMON開源項目
- 使用涂鴉云平臺破解你自己的智能小工具
- 愛迪生Arduino SDK開源分享
- 從零開始創(chuàng)建GD32F4系列單片機工程模板&移植涂鴉MCU-SDK
- 涂鴉標準模組MCU SDK開發(fā)流程
- STM32對接涂鴉MCU SDK實戰(zhàn)教程
- 涂鴉智能 ① tuya-wifi-mcu-sdk-arduino-library 簡單剖析
- 涂鴉開發(fā)板3.0原理圖下載 0次下載
- 基于Web云端應用服務構(gòu)建等的齒輪云測量終端系統(tǒng) 9次下載
- Keil_SDK軟件精簡腳本安裝 2次下載
- 云計算與開源 0次下載
- Purple Pi OH 更改SDK的編譯選項 166次閱讀
- 聚沃科技SDK使用指南 331次閱讀
- 高度集成處理器HMI設計的五大設計注意事項 348次閱讀
- ZWS云平臺應用(2)-設備基于SDK接入 296次閱讀
- AWTK 串口屏開發(fā)(5) - MCU端 SDK 用法 298次閱讀
- 基于ARM體系架構(gòu)構(gòu)建云服務 448次閱讀
- 基于YCT的云途SDK配置工程升級方法 1166次閱讀
- window端的sdk_env的構(gòu)建工具使用 546次閱讀
- API、SDK是什么?SDK和API的區(qū)別 2134次閱讀
- 云計算的技術分析及平臺建設與應用構(gòu)建方法研究 3972次閱讀
- 開源與云的一些爭論 3200次閱讀
- 如何針對涂鴉識別問題構(gòu)建基于RNN的識別器 3589次閱讀
- 企業(yè)如何快速的構(gòu)建私有化的存儲云? 1065次閱讀
- Xilinx SDK使用教程 4725次閱讀
- 旅行攜物防失器電路 1324次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多