Android Studio에서 스마트 홈 시스템 용 Android 앱을 만드는 방법은 무엇입니까?

이 기사는 다른 기사의 2 부입니다. ESP32 모듈을 사용하여 스마트 홈 자동화를 만드는 방법? 스마트 홈 시스템을 만드는 방법을 제공했습니다. 이 기사에서는 Android 애플리케이션을 개발하고이를 Firebase 데이터베이스에 연결하는 방법에 대한 단계별 절차를 보여줄 것입니다. 그런 다음이 모바일 애플리케이션을 사용하여 가정에서 전기 제품을 전환합니다.



Android 앱 개발

이미 시장에 나와있는 스마트 홈 시스템은 비용이 많이 듭니다. 필요한 구성 요소와 안드로이드 장치가 있다면 가정에서 똑같이 효율적이지만 비용이 매우 저렴한 홈 자동화 시스템을 만들 수 있습니다. 이 두 기사를 통해 가정에서 자신 만의 홈 자동화 시스템을 만드십시오.



홈 자동화를위한 Android 애플리케이션을 개발하는 방법은 무엇입니까?

다른 기사에서는 ESP32 모듈에 연결된 가전 제품을 제어하기위한 리모컨으로 사용할 안드로이드 앱을 개발할 예정입니다. 다른 기사로 이동하려면 여기를 클릭하세요 .



1 단계 : 필요한 소프트웨어

Android 애플리케이션을 개발할 예정이므로 하나의 소프트웨어 만 필요합니다. 그러나 해당 소프트웨어를 실행하려면 먼저 다른 소프트웨어를 설치해야합니다. 다음 링크에서 다운로드 할 수 있습니다.



  • Android Studio.
  • JAVA JDK.

2 단계 : 주요 작업 이해

우리는 프런트 엔드와 백 엔드 코딩이 모두있는 애플리케이션을 만들 것입니다. 메인 화면에는 ESP32 마이크로 컨트롤러 보드에 연결된 전기 제품의 스위칭을 제어하는 ​​몇 가지 버튼이 있습니다. 백엔드 코딩에서 스위치가 켜져 있으면 '1'을 보내고 스위치가 꺼져 있으면 '0'을 보냅니다.

Firebase 데이터베이스를 만들 것입니다. 이 데이터베이스에는 Light 및 AC라는 2 개의 엔티티가 포함됩니다. 표시등에는 표시 등 전환 값이 포함되고 AC에는 팬 전환 값이 포함됩니다. 이 값은 마이크로 컨트롤러로 전송되고 마이크로 컨트롤러는 그에 따라 릴레이 모듈에 제어 신호를 보냅니다.

3 단계 : Android Studio 설정

Android Studio를 설치하기 전에 먼저 JAVA JDK를 설치합니다. 이것을 설치하려면 exe 파일 위 링크에서 다운로드 한 다음 성공적으로 설치 될 때까지 다음을 클릭합니다. 이제 명령 프롬프트가 java를 외부 또는 내부 명령으로 인식하도록 다음 단계를 수행하십시오.



  1. 열다 제어판 그리고 클릭 시스템과 보안 .
  2. 클릭 체계 .

    체계

  3. 클릭 고급 시스템 설정 그런 다음 환경 변수 .

    고급 시스템 설정

  4. 시스템 변수 섹션에서 경로를 클릭 한 다음 편집을 클릭합니다. 새로운 환경 변수 편집 상자가 나타납니다.

    경로 편집

  5. 이제 이동 C : Program Files Java PC에서. JDK 폴더를 열고 bin 폴더를 클릭 한 다음 해당 폴더의 경로를 복사합니다.

    bin 폴더의 경로

  6. 이제 환경 변수 편집 상자로 이동하여 새로 만들기를 클릭하여 새 변수를 만듭니다. 위 단계에서 복사 한 경로를 새 변수에 붙여넣고 저장하십시오.
  7. 이제 확인을 위해 완전히 설치 되었으면 명령 프롬프트를 열고 다음을 입력하십시오. 자바 – 버전 .

    JAVA 버전

이제 컴퓨터에 Java JDK를 성공적으로 설치했습니다. 이제 컴퓨터에 Android Studio를 설치하겠습니다. 이 소프트웨어를 설치하는 것은 매우 쉽습니다. 다운로드 한 파일을 열고 소프트웨어가 완전히 설치 될 때까지 다음을 클릭해야합니다.

4 단계 : 레이아웃 만들기

0 또는 1 명령을 firebase 데이터베이스에 보내는 몇 가지 버튼이 포함 된 레이아웃을 만듭니다. 이것은 몇 가지 버튼을 포함하는 간단한 레이아웃입니다. 내 앱에는 조명과 팬을 제어하는 ​​두 개의 버튼 만 포함됩니다. 더 많은 가전 제품에 더 많은 버튼을 포함하려면 메인 프로그램에서 동일한 코드 청크를 복사하고 데이터베이스에 새 변수를 만드십시오. 시간을 낭비하지 않고 앱의 간단한 레이아웃을 만드는 단계로 이동하겠습니다.

1. 먼저 파일> 새로 만들기> 새 프로젝트. 메뉴가 나타납니다. 고르다 빈 프로젝트.

2. 이제 프로젝트 이름을 지정하고 코 틀린 프로그래밍 언어로.

3. 이제 왼쪽 모서리에서 app> res> 레이아웃> activity_main.xml.

activity_main

4. 여기에서 Android 스튜디오에 이미 제공된 코드 아래에 다음 코드를 추가합니다. 제약 레이아웃을 만들고 있습니다. 다음 코드는 상단에 Room Automation의 제목을 추가합니다. 그런 다음 3 개의 스위치를 추가합니다. 하나의 스위치를 사용하여 가전 제품을 수동으로 작동할지 여부를 선택할 수 있습니다. 다른 두 스위치는 팬과 조명을 각각 작동시킵니다.

 

5. 앱의 레이아웃은 아래 이미지와 같습니다.

형세

5 단계 : 백엔드 코딩

백엔드 코드는 모든 애플리케이션에서 가장 중요한 부분입니다. 프로젝트의 프런트 엔드 레이아웃과 데이터베이스 사이의 주요 다리입니다. 우리 애플리케이션에서는 스위치가 켜져있을 때 데이터베이스에 '1'을 보내고 스위치가 꺼져있을 때 데이터베이스에 '0'을 보내려고합니다. 애플리케이션에 코드를 추가하려면 다음 단계를 따르세요.

1. 왼쪽 모서리에서 app> java> com.example.my applicationmyapplication> main_activity.

2. 이제이 화면에서 수업에 다음 코드를 복사합니다.

클래스 자동화 : AppCompatActivity () {var database = FirebaseDatabase.getInstance () var myRef = database.reference internal lateinit var btnSwitch : Switch internal lateinit var btnSwitch1 : Switch internal lateinit var btnSwitch2 : Switch override fun onCreate (savedInstanceState : Bundle?) {super .onCreate (savedInstanceState) setContentView (R.layout.activity_automation) myRef.child ( 'Toggle / switch'). addValueEventListener (object : ValueEventListener {override fun onCancelled (p0 : DatabaseError) {} override fun onDataChange (p0 : DataSnapshot) {switch1 .visibility = View.VISIBLE if (p0.value.toString (). equals ( '1')) {switch1.isChecked = true; toggleButton2.visibility = View.VISIBLE toggleButton3.visibility = View.VISIBLE myRef.child ( 'automation /AC').addValueEventListener(object : ValueEventListener {override fun onCancelled (p0 : DatabaseError) {} override fun onDataChange (p0 : DataSnapshot) {if (p0.value.toString (). equals ( '1')) {toggleButton2. isChecked = true} else toggleButton2.isChecked = 거짓 e}}) myRef.child ( 'automation / light'). addValueEventListener (object : ValueEventListener {override fun onCancelled (p0 : DatabaseError) {} override fun onDataChange (p0 : DataSnapshot) {if (p0.value.toString (). equals ( '1')) {toggleButton3.isChecked = true} else toggleButton3.isChecked = false}})} else {switch1.isChecked = false toggleButton2.visibility = View.GONE toggleButton3.visibility = View.GONE} // 로그. d ( '아산