Posted on: 2023-02-18 Posted by: tm Comments: 0
Raspberry pi устройство для умного дома Tuya Cloud

Создание устройство в iot.tuya.com

Первым делом нужно создать устройство в облаке tuya. Для этого переходим на сайт https://iot.tuya.com

И в первом же окне после того как залогинимся нажмем кнопку “Сreate” . Таким образом мы начнем создание нового устройства.

После того как нажали кнопку “Create” у нас откроется следующая страница в которой нужно выбрать пункт “Can’t find the category?”

И после этого откроется окно. В нем нужно будет дать название устройству, описание, Протокол работ и Тип работы. Под Raspberry pi выглядит следующим образом:

После того как все опишем и нажмем кнопку “Create” у Нас откроется окно настройки устройства. Тут на вкладке “Function definition” нужно описать “Custom Functions” – это функции которые будет выполнять наше создаваемое устройство. В моем случае мы создаем реле. Чтоб создать кастомные функции нажмем кнопку “+ Add”. Выглядит окно вот так:

Параметры для реле в Custom Functions где “DP Name”   и “Indentifier” произвольные, выглядят следующим образом:

После этого переходим во вкладку “Device Panel” и там нужно выбрать стиль отображения в приложении Tuya на смартфоне. Тут даже есть свой редактор в котором можете сделать уникальный интерфейс. Но я для пробы решил так не заморачиваться, а выбрал стандартный вариант. Так-же забыл сказать, что нам нужно сохранить PID созданного устройства. Данный пид можно найти в верху под названием нашего устройства. Все описанное в этом абзаце показано на этом скрине.

Так-же здесь нужно нажать кнопку “Edit” и выбрать все так как показано на скрине:

Параметра dht22 у Вас не будет, это я добавлял еще датчик температуры для пробы. Но в этой статье обойдемся без него.

Теперь переходим во вкладку “Hardware Development”. Здесь нужно проставить галочку на “Link SDK” там у Вас появится устройство “General CPU” и предложит Вам купить лицензию. Лицензия стоит 2$ для двух устройств на все время. Но изначально при создании аккаунта в iot.tuya.com дается 2 бесплатных лицензии так что в принципе у Вас может получиться создать девайс бесплатно. В общем тут нажимаем кнопку “Buy now” и оплачиваем лицензии за 0$.

Процесс оплаты я скринить не буду, думаю справитесь. Если нет, то в видео в конце статьи я этот момент демонстрирую.

После оплаты подождав минут 5, так как сразу эта кнопка не появится. В графе Purchase->Purchase у нашей купленой лицензии появится кнопка “Download license List” – это экселевский файл с Uidом и ключем, он нам понадобится как и Pid для работы со скриптом Rascpberry pi.

Ключ выглядит примерно так:

На этом с tuya cloud закончено. Теперь переходим на Raspberry pi.

Настройка Raspberry pi.

На Raspberry pi у меня установлен обычный образ Raspbian ну или как он сейчас называется Raspberry pi OS.

Здесь чтоб постоянно не вводить перед командами слово “sudo” я авторизовался сразу под админом командой “sudo -i”

Ну а теперь делаем следующее:

git clone https://github.com/tuya/tuyaos-link-sdk-python.git

Эта команду скачает SDK для работы с облаком tuya и у Вас после окончания загрузки появится папка “tuyaos-link-python.git

Следующей командой мы установим скаченный ранее SDK. Выполняем команду:

python3 -m pip install ./tuyaos-link-sdk-python

Теперь нам нужно отредактировать файл, который находится в tuyaos-link-python/examples/outlet.py  Редактировать будем командой “nano” вводим:

nano tuyaos-link-python/examples/outlet.py

И откроется скрипт в котором нам нужно ввести PID, KEY и UID которые мы сохраняли ранее.

Но это еще не все. Теперь нам нужно добавить несколько строк кода, чтоб мы могли управлять реле. Весь отредактированный мной Python скрипт будет выглядеть вот так:


import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
led1= 19
GPIO.setup(led1,GPIO.OUT)

#!/usr/bin/env python
import time
import coloredlogs
from tuyalinksdk.client import TuyaClient
from tuyalinksdk.console_qrcode import qrcode_generate

coloredlogs.install(level='DEBUG')

client = TuyaClient(productid='ravzlzeihj521512vpioqh',
                    uuid='tuya660cbfe81b4cf32142412512523f',
                    authkey='1czFNXkms3tbY4gl3lp51661123414zTB5p7TW76')

def on_connected():
    print('Connected.')

def on_qrcode(url):
    qrcode_generate(url)

def on_reset(data):
    print('Reset:', data)

def on_dps(dps):
    print('DataPoints:', dps)
    if(dps=={'101': True}):
        GPIO.output(led1,GPIO.HIGH)
    elif(dps=={'101': False}):
        GPIO.output(led1,GPIO.LOW)
    dps['102']=x
    client.push_dps(dps)

client.on_connected = on_connected
client.on_qrcode = on_qrcode
client.on_reset = on_reset
client.on_dps = on_dps

client.connect()
client.loop_start()

while True:
    time.sleep(1)

Все, далее сохраняем скрипт нажав Ctrl+X и нажав Y.

Теперь подключаем реле к GPIO19 Raspberry pi. Это вот этот пин:

Далее запускаем скрипт командой:

python3 tuyaos-link-python/examples/outlet.py

У нас запустится скрипт и откроется QR code. Этот QR код нужен для того чтоб добавить устройство в приложение Tuya на смартфоне.

Ну собственно на смартфоне сканируем QR код , произойдет добавление устройства:

Ну вот и все. Мы успешно добавили raspberry pi  в tuya cloud и можем управлять малинкой из смартфона.

Также мы можем использовать малинку в сценариях и автоматизациях Tuya. Но к сожалению, в Home Assistant устройство появляется, но никаких объектов оно не имеет.

Leave a Comment