Como fazer um aplicativo Android para seu sistema de casa inteligente no Android Studio?

Este artigo é a segunda parte de outro artigo Como fazer automação residencial inteligente usando o módulo ESP32? em que um método para fazer um Smart Home System foi fornecido. Neste artigo, vamos demonstrar o procedimento passo a passo de como desenvolver um aplicativo Android e conectá-lo ao banco de dados firebase. Então, este aplicativo móvel será usado para trocar os aparelhos elétricos da casa.



Desenvolvimento de aplicativos Android

Os sistemas domésticos inteligentes que já estão disponíveis no mercado são muito caros. Se você tiver os componentes necessários e um dispositivo Android, poderá fazer em casa um sistema de automação residencial que será igualmente eficiente, mas de custo muito baixo. Leia estes dois artigos para fazer o seu próprio Sistema de Domótica em casa.



Como desenvolver um aplicativo Android para automação residencial?

Vamos desenvolver um aplicativo Android que será usado como controle remoto para controlar os eletrodomésticos que foram conectados ao módulo ESP32 no outro artigo. para ir para o outro artigo, Clique aqui .



Etapa 1: software necessário

Como vamos desenvolver um aplicativo Android, precisaremos de apenas um software. Mas para executar esse software, primeiro precisaremos instalar outro software. Você pode baixá-los nos links a seguir.



  • Android Studio.
  • JAVA JDK.

Etapa 2: Compreendendo o funcionamento principal

Faremos um aplicativo que terá codificação front-end e back-end. Na tela principal, ele conterá alguns botões que irão controlar a comutação dos aparelhos elétricos que estão conectados à placa do microcontrolador ESP32. Na codificação de back-end, enviaremos um “1” se a chave estiver ligada e um “0” se a chave estiver desligada.

Vamos fazer um banco de dados Firebase. Este banco de dados conterá 2 entidades nomeadas como Light e AC. A luz conterá o valor para a comutação das luzes e AC conterá um valor para a comutação do ventilador. Este valor será então enviado para o microcontrolador e o microcontrolador enviará um sinal de controle para o módulo de relé de acordo.

Etapa 3: Configurando o Android Studio

Antes de instalar o Android Studio, instalaremos o JAVA JDK primeiro. Para instalar isso, clique no Exe Arquivo que você baixou do link acima e clique em Avançar até que seja instalado com sucesso. Agora, siga as etapas a seguir para que seu prompt de comando reconheça java como um comando externo ou interno.



  1. Abrir Painel de controle e clique em Sistema e Segurança .
  2. Clique em Sistema .

    Sistema

  3. Clique em Configuração avançada do sistema e então clique em Variáveis ​​Ambientais .

    Configuração avançada do sistema

  4. Na seção Variável do sistema, clique no caminho e clique em editar. Uma nova Editar Variável Ambiental a caixa aparecerá.

    Editar Caminho

  5. Agora vá para C: Arquivos de programas Java no seu PC. Abra a pasta JDK, clique na pasta bin e copie o caminho dessa pasta.

    Caminho da pasta bin

  6. Agora vá para a caixa Edit Environmental Variable e clique em new para criar uma nova variável. Cole o caminho que você copiou na etapa acima na nova variável e salve-o.
  7. Agora, para confirmar, se estiver completamente instalado, abra o prompt de comando e digite java –version .

    Versão JAVA

Agora que você instalou o Java JDK com sucesso em seu computador. Vamos agora instalar o Android Studio em seu computador. Instalar este software é muito fácil. Você precisa abrir o arquivo baixado e clicar em Avançar até que o software esteja totalmente instalado.

Etapa 4: Fazendo o layout

Faremos um layout que conterá alguns botões que enviarão o comando 0 ou 1 para o banco de dados firebase. Este será um layout simples que conterá alguns botões. No meu aplicativo, incluirei apenas dois botões que controlarão as luzes e o ventilador. Se você quiser incluir mais botões para mais eletrodomésticos, copie o mesmo pedaço de código no programa principal e crie uma nova variável no banco de dados. Sem perder tempo, vamos avançar para as etapas de fazer um layout simples para nosso aplicativo.

1. Em primeiro lugar, vá para Arquivo> Novo> Novo projeto. Um menu aparecerá. Selecione Projeto vazio.

2. Agora nomeie o projeto e defina KOTLIN como sua linguagem de programação.

3. Agora, no canto esquerdo, clique em app> res> layout> activity_main.xml.

activity_main

4. Aqui, adicione o seguinte código abaixo do código que já é fornecido em seu Android Studio. Estamos fazendo um layout de restrição. O código a seguir está adicionando um título de Room Automation no topo. Em seguida, ele está adicionando 3 opções. um botão permite que você selecione f se deseja operar os eletrodomésticos manualmente ou não. Os outros dois comutados irão operar o ventilador e as luzes respectivamente.

 

5. O Layout do seu aplicativo será semelhante à imagem abaixo.

Layout

Etapa 5: codificação de back-end

O código de back-end é a parte mais importante de qualquer aplicativo. É a principal ponte entre o layout front-end e o banco de dados do projeto. Em nossa aplicação, queremos apenas enviar um “1” no banco de dados quando a chave está ligada e um “0” no banco de dados quando a chave está desligada. Siga as etapas a seguir para adicionar o código em seu aplicativo

1. No canto esquerdo, clique em app> java> com.example.my applicationmyapplication> main_activity.

2. Agora, nesta tela, copie o código a seguir em sua classe.

automação de classe: AppCompatActivity () {var database = FirebaseDatabase.getInstance () var myRef = database.reference internal lateinit var btnSwitch: Switch interno lateinit var btnSwitch1: Switch interno 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 (instantâneo0) .visibility = View.VISIBLE if (p0.value.toString (). equals ('1')) {switch1.isChecked = true; toggleButton2.visibility = View.VISIBLE toggleButton3.visibility = View.VISIBLE myRef.child ('automação /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 = fals e}}) myRef.child ('automação / luz'). addValueEventListener (objeto: ValueEventListener {substituir fun onCancelled (p0: DatabaseError) {} substituir 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} // Log. d ('ahsan