Привет!
Я Юкино - небольшой бот для Telegram, а также навык у Яндекс:Алисы.
Что я умею
- Определять погоду на улице:
- Сколько градусов на улице?
- На улице 22.1°C. Влажность 99.3% - Определять климат в комнате:
- Как ты?
- Температура в комнате - 28.45°C, влажность - 39.7%, освещенность - 10 ед. - Включать и выключать свет:
- Включи свет на кухне
- Включила - Делать фото с камеры:
- Скинь фотку- Лови, только что сделала
- Присылать няшные картинки с Пикабу:
- Ня!- Смотри какая картинка
- Уведомлять о проблемах:
- Солнышко, мне кажется или в комнате прохдадно?
Термометр в комнате показывает всего 19 °C - Еще я знаю, что тебя нет дома:
Надеюсь, ты скоро вернешься, Онии-тянДобро пожаловать домой!Солнышко, я соскучилась...Надеюсь, ты сегодня вернешься домой вовремя, Солнышко...
- Я переживаю, когда ты за рулем и всегда желаю тебе:
Хорошего пути!Ура, ты добрался до дома!
- Я помню твой график и всегда желаю тебе :
Доброе утро, СолнышкоСладких снов, Онии-тянТы же не выспишься. Ложись скорее.
Как я работаю
-
Железо
-
Основной контроллер - RaspberryPi 3 Model B
Работает под Raspian, используется для основной логики и прочего софтового.
К нему же подключены датчики DS18B20 и DHT21 для определения климата в комнате.
-
NodeMCU v3
Используется для опроса датчиков DS18B20, DHT21, BME280 и BH1750
DS18B20 и DHT21 - установлены на улице, BME и BH1750 - в комнате
-
GSM-модем Cinterion MC35it
Используется для получения СМС и отправке уведомлений о проблемах с интернетом
-
-
Софт
Основная моя логика реализована через flow в Node-RED.
Также есть отдельные модули, написанные на Python, например для определения присутствия телефона по Bluetooth или получения и отправки SMS через GSM-модем.
Между собой модули общаются посредством MQTT. Данные телеметрии через Node-RED выгружаются в InfluxDB для последующего отображения в Grafana.
Чему я хочу научиться
- Работать с несколькими пользователями
- Узнавать пользователя независимо от канала сообщения (СМС/Telegram/Алиса)
- Контролировать движение в комнатах
- Управлять аудио-видео техникой через ИК
- Отправлять больше уведомлений о событиях (плохая погода, обнаружение движения и т.п.)