範例說明
IFTTT的意思是If This Then That的縮寫,這篇將會透過 IFTTT 與 LINE Notify,實現「觸發某件事,就自動發送 LINE 訊息」的功能。
IFTTT提供的網址格式如下
https://maker.ifttt.com/trigger/事件名稱/with/key/驗證碼
發送資料格式:
程式列表
Python - ePy-Lite_ESP01_ifttt.py
"""
ePy-Lite_ESP01_ifttt.py
EPY_Lite ESP01
-----------------
P2(UART0_RxD) TxD
P3(UART0_TxD) RxD
3V3 VCC
GND GND
"""
from machine import Switch #獲取按鍵KEY庫
from machine import ADC
from machine import Pin
from machine import UART
from machine import LED
import utime
import ESP01
SSID = "MYAP" # 填入要連線的WiFi熱點名稱
PASSWORD = "19760106" # Wi-Fi熱點密碼
HOST = "maker.ifttt.com" # 伺服器網址,不可動
PORT = 80
event = "IFTTT_LINE"
key = "434-nF786DOj0p9AyIAbm"
str1 = ""
DEBUG = True
ledR = None
# Start Function
if __name__ == '__main__':
ledR = LED('ledy')
light = ADC(Pin.board.AIN0)
KeyA = Switch('keya') #創建按鍵A
wifi_uart=UART(0,115200)
wifi = ESP01.ESP01(wifi_uart)
wifi.InitWifiModule(SSID,PASSWORD)
print("--- Start ---")
light_val=0
try:
while True:
light_val = light.read()
if (KeyA.value()) == True: #Press A Key
ledR.on()
#https://maker.ifttt.com/trigger/{event}/with/key/{key}?value1=[1]&value2=[2]
request_str = "GET /trigger/" + event + "/with/key/" + key + "?value1=" + str(light_val) + " HTTP/1.1\r\n" \
+ "Host: " + HOST + "\r\n" \
+ "Connection: close\r\n\r\n"
request_lenth = str(len(request_str)) # 計算訊息的字串總長度
CIPSEND_CMD="AT+CIPSEND=" + request_lenth + "\r\n"
if(DEBUG):
print(CIPSEND_CMD) # 顯示此訊息內容進行debug
print(request_str) # 顯示此訊息內容進行debug
CIPSTART_CMD="AT+CIPSTART=\"TCP\",\"" + HOST + "\"," + str(PORT) + "\r\n"
wifi.sendData(CIPSTART_CMD,5000,DEBUG)
data = wifi.sendData(CIPSEND_CMD, 2000, DEBUG)
if 'ERROR' in data: # 使用in運算子檢查
print('find \"ERROR\"')
if '>' in data: # 使用in運算子檢查
print('find \">\"')
else:
print('not find \">\"')
# while (data.find(">")<0):
# utime.sleep_ms(100)
# if(wifi_uart.any()): # 當串口有可讀數據時
# data = wifi_uart.read()
wifi.sendData(request_str, 1000, DEBUG)
ledR.off()
utime.sleep_ms(5000)
finally:
pass
light.deinit()
wifi_uart.deinit()
# KeyA.deinit()
執行結果