女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>使用涂鴉云SDK構建的假期旅行開源

使用涂鴉云SDK構建的假期旅行開源

2022-11-01 | zip | 0.24 MB | 次下載 | 免費

資料介紹

描述

概述

每當我因工作和學習而感到壓力時,假期真的是讓我興奮的地方。假日季節通常被認為是從 11 月下旬到 1 月初。為什么不游覽這座城市或參觀新的地方,看看該鎮提供的所有亮點。由于旅行的速度,我們在探索所有地方時經常會錯過一些著名的目的地,慢慢地詳細描述賽道上的所有地標(有時也是不可預測的天氣)。所以我想到的是一個簡單的解決方案來解決這個問題。Holidays Traveler 設備旨在按照您的步調穿越地標,只需將其連接到網絡即可。

設備將根據 IP 地址、天氣更新和附近的著名地點和簡要摘要自動檢測位置,并將這些更新通過電子郵件和短信發送到我們的手機上,讓觀光更有趣。

功能性

該設備是使用涂鴉云 SDK構建的,這個涂鴉項目用例可以幫助開發人員為旅游業思考和創新——尤其是在營銷您的產品或其他方面。想象一下這樣的創新用例——當用戶到達特定位置時向他們發送警報,并建議他們參觀著名的公園、餐館、建筑物等。

Tuya到底是什么?

涂鴉智能是一個全球物聯網開發平臺,構建互連標準,以橋接品牌、OEM、開發商和零售連鎖店在廣泛的智能設備和行業中的智能需求。

涂鴉基于全球公有云,通過提供硬件開發工具、整合公有云服務、提供智能業務開發平臺,連接不同的智能場景和智能設備。

先決條件

$ pip install tuya-iot-py-sdk

設置涂鴉云賬號和項目:

注冊后,您將前往儀表板。從那里,轉到“云”并創建一個插入以下信息的項目。

poYBAGNgfReASUsvAAGmmqHCpYI249.png
?

授權所需的 API(我們將需要天氣、位置、電子郵件和 SMS API)

?
?
?
pYYBAGNgfRqAXui6AAIFVp6FvO8908.png
?
1 / 2
?

涂鴉云 API

最重要的是,您需要 ACCESS_ID 和 ACCESS_KEY 才能使用 API

poYBAGNgfR2AaPC9AACAf5fZR5Q860.png
?
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)

成功信息應該是這樣的,

pYYBAGNgfSCAGWP9AAG-iy5nid8508.png
?
{
  "result": {
    "template_id": "MAIL_9584653696"
  },
  "success": true,
  "t": 1640579722731
}

保存 template_id,我們將需要它進行進一步的步驟。請注意,在審核并允許之前,您將無法使用此模板。別擔心,這個過程將需要不到 2 個工作日。

短信模板也一樣,直接在涂鴉云API瀏覽器

poYBAGNgfSOAZmTWAAIDki_Yi-4334.png
?

初始測試對模板有好處,請參閱下面的 SMS 和電子郵件的外觀

pYYBAGNgfSWAMMPGAABigKnWPi8523.png
?
poYBAGNgfSqALv3dAADznpaQ8D4037.jpg
?

準備好兩個模板后,讓我們跳到我們的代碼。

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 都以幾乎相同的方式使用。請求參數和包含所有所需內容的字典。文檔非常易于遵循。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1蘇泊爾電磁爐線路的電路原理圖資料合集
  2. 2.02 MB   |  286次下載  |  5 積分
  3. 2長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
  4. 0.46 MB   |  87次下載  |  5 積分
  5. 3AO4803A雙P通道增強型場效應晶體管的數據手冊
  6. 0.11 MB   |  28次下載  |  2 積分
  7. 4長虹液晶彩電LS29機芯的技術資料說明
  8. 3.42 MB   |  16次下載  |  2 積分
  9. 5AI智能眼鏡產業鏈分析
  10. 4.43 MB   |  14次下載  |  免費
  11. 6TP4055 500mA線性鋰離子電池充電器中文手冊
  12. 0.75 MB   |  9次下載  |  免費
  13. 7TP4054 400mA線性鋰離子電池充電器中文手冊
  14. 0.70 MB   |  2次下載  |  免費
  15. 8TP4057X 500mA線性鋰離子電池充電器中文手冊
  16. 0.74 MB   |  2次下載  |  免費

本月

  1. 1人形機器人電機驅動和傳感報告
  2. 4.27 MB   |  475次下載  |  免費
  3. 2蘇泊爾電磁爐線路的電路原理圖資料合集
  4. 2.02 MB   |  286次下載  |  5 積分
  5. 3長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
  6. 0.46 MB   |  87次下載  |  5 積分
  7. 4U盤一鍵制作
  8. 23.84 MB   |  41次下載  |  免費
  9. 5AO4803A雙P通道增強型場效應晶體管的數據手冊
  10. 0.11 MB   |  28次下載  |  2 積分
  11. 6Altium Designer元件庫
  12. 17.11 MB   |  26次下載  |  免費
  13. 7長虹液晶彩電LS29機芯的技術資料說明
  14. 3.42 MB   |  16次下載  |  2 積分
  15. 8AI智能眼鏡產業鏈分析
  16. 4.43 MB   |  14次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191382次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81586次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分