Skip to content

An application that receives data from a light sensor through Firebase, this sensor is connected to an Arduino and sending data to Firebase through NodeJS and Jhonnyfive.

Notifications You must be signed in to change notification settings

fabriciobedin/android-arduino-sensor-firebase

Repository files navigation

App Android that read sensor ldr data in arduino with Firmata, Johnny-five and Firebase

Aplicativo que recebe dados de um sensor de luz pelo firebase, esse sensor está conectado a um arduino, sendo lido pelo Firmata e Jhonny-five e enviando dados para o Firebase.

1º - Ligar o sensor no arduino conforme imagem abaixo

2º - Abrir o Arduino, ir em File -> Example -> Firmata -> StandardFirmata

(caso você não tenha é só ir em arduino.cc, baixar e instalar)
O Firmata faz a leitura do que estiver conectado ao arduino, sem precisar escrever 1 linha em C#.

3º - Instalar o Node JS

Disponível em https://nodejs.org/

4º - Abrir o terminal do Node e executar esse comando para instalar o plugin Johnny-five

npm install johnny-five (jhonifive é uma api que você pode utilizar pra ligar varios sensores no arduino ou placa que estiver usando, ele tem um suporte bem amplo. Com ele, você não precisa se preocupar em escrever um código extenso pra fazer a leitura de um sensor, ele se comunica com o firmata que deixou rodando no arduino e faz tudo sozinho.)

5º - Entrar no site do Johnny-Five pra copiar o código do sensor que estiver usando

http://johnny-five.io/api/light/
o código pra leitura desse sensor que estou usando é esse:

var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function() {
var light = new five.Light("A0");
light.on("change", function() {
console.log(this.level);
});
});

6º - Criar um novo projeto no Firebase

https://console.firebase.google.com/

Após criado, vai em adicionar app e seleciona a opção WEB
Vai abrir uma janela com um script, vai ser algo parecido com isso.. copie ele.

var config = {
apiKey: "AIzaSyAFns36dXaJbFrRBYK_XsoU649M0loIPXo",
authDomain: "cloudhomeautomation-cfde9.firebaseapp.com",
databaseURL: "https://cloudhomeautomation-cfde9.firebaseio.com",
storageBucket: "cloudhomeautomation-cfde9.appspot.com",
messagingSenderId: "498048127162"
};
firebase.initializeApp(config);

7º - Criar um novo arquivo script.js com algum editor (eu usei o Sublime Text)

• colar o código copiado no firebase pra esse arquivo
• colar o código copiado do johnny-five no mesmo arquivo
o script vai ficar parecido com o arquivo que está nesse projeto, dentro da pasta arduino, script.js
https://github.com/fabriciobedin/ArduinoSensorWithFirebase/blob/master/arduino/script.js
Eu apenas coloquei um "if" para apenas enviar os valores para o firebase quando forem alterados, ou seja, se não tiver variação de luz, ele mantém o mesmo valor e não fica enviando numeros iguais.

8º - Abrir o terminal e acessar por ele o diretório onde o script.js foi salvo

exemplo: cd C:/Users/Fabricio/Desktop/Scripts
Executar os seguintes comandos:
• npm install -g firebase-tools
(pra instalar o plugin do firebase)
• firebase login
(entre com os dados da sua conta google que você criou o projeto do firebase)
(vai pedir pra confirmar umas coisas, pode ir colocando y e enter)
• npm install firebase --save
• firebase init
• node script.js
após executar isso, ele vai se conectar ao arduino e começar a passar os dados do sensor para o Firebase

9º - Abrir o https://console.firebase.google.com/ e entrar no projeto criado

Clicar na guia Database (menu do lado esquerdo), e ver se apareceu uma chave com uma tag sensor com os dados dentro Caso não tenha aparecido, as regras do Firebase devem estar bloqueando, vai na guia regras (na parte de cima, no lado de dados) e altere os valores conforme abaixo, isso vai fazer o Firebase liiberar qualquer comunicação, sem autenticação.

{
"rules": {
".read": true,
".write": true
}
}

10º - Volte pro inicio do Firebase e selecione a opção Adicionar Projeto Android

Tenha cuidado pra deixar o mesmo nome do pacote, no meu caso eu deixei esse:
casca.upf.com.homeautomation

11º - Após isso, você pode clonar esse projeto do github no seu Android Studio

E substituir o arquivo google-services.json que está na raiz do projeto pelo arquivo que o Firebase gerou. (Porque se deixar o arquivo que está atualmente, ele vai tentar se comunicar com o meu projeto do Firebase e não com o seu).

12º - Pronto, pode executar o aplicativo que conforme a leitura do sensor vai aparecer a lampada acesa ou apagada

Caso a imagem da lampada não mude, apenas olhe o valor que o sensor está informando e mude no "if" da classe MainActivity. Porque conforme o sensor utilizado ele dá uma pequena variação nos valores, aí você olha no firebase qual o valor que ele fica quando apaga ou acende a luz e coloca nesse if.

About

An application that receives data from a light sensor through Firebase, this sensor is connected to an Arduino and sending data to Firebase through NodeJS and Jhonnyfive.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published