Skip to content

Mobile app for intuitive control of smart home πŸ πŸ“² devices and automation

Notifications You must be signed in to change notification settings

MSagGik/SmartHomeApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Русский | English

SmartHomeApp

Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для управлСния ΡƒΠΌΠ½Ρ‹ΠΌ Π΄ΠΎΠΌΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· Bluetooth

SmartHomeApp β€” это Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для управлСния ΠΊΠ»ΠΈΠΌΠ°Ρ‚ΠΎΠΌ ΠΈ освСщСниСм Π² систСмС ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚:

  • Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Android-прилоТСния с соврСмСнными Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ,
  • ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Bluetooth-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ,
  • Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ IoT-устройства Π½Π° Π±Π°Π·Π΅ Atmega328p с ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ Π½Π° C/C++,
  • кастомный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями (JSON).

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности

  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ IoT-устройством Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‡Π΅Ρ€Π΅Π· Bluetooth
  • Чистая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°: Clean Architecture + MVVM
  • Бвоя Bluetooth-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°: Ρ€Π°Π±ΠΎΡ‚Π° с сокСтами, ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, JSON
  • Π£ΠΌΠ½ΠΎΠ΅ освСщСниС Π½Π° основС Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (Palette API)
  • Π Π°Π±ΠΎΡ‚Π° с сСнсорами: Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°, Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ, Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅
  • Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΈ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ взаимодСйствиС (Coroutines + SharedFlow)

АрхитСктура прилоТСния

  • Single Activity + Jetpack Navigation Component
  • ΠœΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ структура
  • MVVM + Clean Architecture (Presentation / Domain / Data)
  • Dependency Injection с Koin
  • ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Kotlin Coroutines ΠΈ Flow
  • SharedFlow для Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ обновлСния UI

Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ инструмСнты

Π―Π·Ρ‹ΠΊΠΈ:

  • Kotlin β€” Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
  • C/C++ β€” ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° Atmega328p Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:
  • Room / SharedPreferences β€” локальноС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅
  • Bluetooth SPP (Serial Port Profile) β€” коммуникация
  • Sockets & Streams β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ…
  • Palette API β€” Π°Π½Π°Π»ΠΈΠ· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
  • FlexboxLayout, ViewPager2 (кастом), Glide β€” UI
  • Gradle + Proguard β€” сборка, оптимизация

БобствСнная Bluetooth-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ Bluetooth-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, разработанная Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚:

  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ соСдинСниСм ΠΈ сокСтами
  • ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…
  • Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ доставку сообщСний Π² UI Ρ‡Π΅Ρ€Π΅Π· Coroutines ΠΈ Flow
  • Π Π°Π±ΠΎΡ‚Π° с JSON-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ для Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ взаимодСйствия

IoT-устройство Π½Π° Atmega328p

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ устройства:

  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с сСнсоров: Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°, Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ, Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅
  • RGB-подсвСтка с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ²:
    • ΠœΠΎΠ½ΠΎΡ†Π²Π΅Ρ‚
    • ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ ΠΈΠ· ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ изобраТСния
    • Π Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ° яркости
  • АкустичСская обратная связь
  • LED-дисплСй
  • АвтоматичСскоС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ рСсивСра ΠΏΡ€ΠΈ простоС

Π‘ΠΊΠ΅Ρ‚Ρ‡ устройства: sketch_smart_home_ru.ino

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» взаимодСйствия (JSON)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ входящСго сообщСния

{
    "type": "SMART_HOME_DATA",
    "temperature": "A",
    "humidity": "B",
    "pressure": "C",
    "led_m": "D",
    "led_a": "E",
    "led_r": "F",
    "led_g": "G",
    "led_b": "I"
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ исходящих сообщСний:

Π Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ° яркости

{ "type": "LED_ALPHA", "a": "N" }

ΠœΠΎΠ½ΠΎΡ†Π²Π΅Ρ‚

{
    "type": "LED_MONO",
    "m": "A",
    "a": "B",
    "r": "C",
    "g": "D",
    "b": "E"
}

ЦвСтовая композиция (5 ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ²)

{ "type": "LED_FLOW_A", "a": "A", "r0": "B", "g0": "C", "b0": "D", "r1": "E" }
{ "type": "LED_FLOW_B", "g1": "F", "b1": "G", "r2": "H", "g2": "J", "b2": "K" }
{ "type": "LED_FLOW_C", "r3": "L", "g3": "M", "b3": "N", "r4": "O", "g4": "P" }
{ "type": "LED_FLOW_FIN", "g4": "Q", "m": "R" }

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ΡΡ сСриСй, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. ΠšΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

{ "type": "TIME_UPDATE", "epoch": "N" }

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСсивСром

{ "type": "COM_ENABLED", "state_com": "N" }

Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ UX/UI

  • Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ прилоТСния с анимациями ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ вСрсткой

  • ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΈ наглядноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Ρ‘ΠΌΠ½ΠΎΠΉ ΠΈ свСтлой Ρ‚Π΅ΠΌ, Ρ‚Ρ€Ρ‘Ρ… языков (английский, русский ΠΈ китайский) ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² экрана смартфона

  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ с LED-ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈ Π·Π²ΡƒΠΊΠΎΠΌ

  • Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ прилоТСния:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚:

About

Mobile app for intuitive control of smart home πŸ πŸ“² devices and automation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published