Обзор и разбор одной c
RGB лампочки с WIFI

Мне для проекта понадобилась лампочка которой можно управлять по WIFI, но без выхода в интернет. Нашел пару работающих моделей по похожему принципу, но потом любопытность взяла вверх и я купил еще 3 лампочки разных производителей. Начну с перечисления всех ламп.
Лампы на фоне моей скромной библиотеки.
1.Умная лампочка Yeelight Smart LED Bulb 1S Colorful 1120 рублей.
2.Умная лампочка Яндекса E27, работает с Алисой 690 рублей.
3.Умная лампа Yeelight Smart LED Bulb W3(Multiple color) 787 рублей.
4.Лампа светодиодная 14501 Camelion 584 рубля.
5.Умная лампочка Hiper IoT LED A1 841 рубль.
Начнем с номера 1. Это самая дорогая и огромная лампа из всех что я купил. Начну с изучения и настройки.
Для ее настройки нужно подключится к домашней Wifi сети и отключить VPN. Приложение для настройки Yeelight. Находится мигом. Настройка очень простая и лампа отлично работает.
2.Лампа от самого Яндекса. Лампа не совсем RGB и больше куплена чтобы посмотреть как работает и подарить другу. Настройка была не из простых. Я убил минут 10 водить лампу в режим настройки. Настройка через приложение Умный дом от Яндекса. Лампа на самом деле от гиганта IOT Tuya. Но кастомизирована под Яндекс. Не рекомендую.
3. Простая в настройке лампа как и 1 номер. Но меньше и менее яркая.
4.Лампа хоть и самая дешевая но приятно удивила быстрой и простой настройкой. Это тоже лампа от Tuya. Не очень яркая. Но дешевая.
5.А эту красотку я не смог даже настроить. Ужасно неудобная в настройке. Поэтому я ее разобрал и покажу на базе чего она построена.
Теперь про настройку ламп от Yeelight для локального управления. В интернете есть документация по управлению лампами.
Чтобы не строить велосипед, мы к этому еще придем. Есть библиотека на Python python-yeelight
Ниже приведен пример для лампы. IP адрес лампы можно узнать по кнопке “Информация о устройстве”. Важно, вы должны включить в приложении Управление по LAN.


import asyncio
import logging
import pprint

from yeelight.aio import AsyncBulb

BULBIP = "192.168.107.116"


logging.basicConfig(level=logging.DEBUG)


def my_callback(data):
    pprint.pprint(data)


async def yeelight_asyncio_demo():
    bulb = AsyncBulb(BULBIP)
    await bulb.async_listen(my_callback)
    print("turn on:", await bulb.async_turn_on())
    await asyncio.sleep(2)
    print("turn off:", await bulb.async_turn_off())
    await asyncio.sleep(2)
    print("turn on:", await bulb.async_turn_on())
    for i in range(10):
        brightness = (i + 1) * 10
        print(
            f"set brightness {brightness}:", await bulb.async_set_brightness(brightness)
        )
        await asyncio.sleep(1)
    await asyncio.sleep(500)
    await bulb.async_stop_listening()


if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(yeelight_asyncio_demo())
Как же управлять остальными? Пока не разобрался. Но управление можно будет реализовать через https://developer.tuya.com/en/
Буду потом как-нибудь реализовать для остальных ламп.
На чем же построена лампа номер 5. Оказывается китайцы давно стоят лампы на bk7231t от BEKEN, а не ESP8266. Сам радиомодуль на отдельной плате как и источник питания 3.3 вольта для модуля.

Материалы для изучения.
https://github.com/tuya/tuya-iotos-embeded-sdk-wifi-ble-bk7231t?source=post_page-----dd398b4ff14b--------------------------------
https://developer.tuya.com/en/docs/iot/bk7231t-cob-hardware-design-guideline?id=Ka97u6dz0h8b8
Made on
Tilda