predire consumo energia

HAEP (Home Automation and Energy Prediction System) è un progetto riguardante un sistema di domotica che si basa sull’idea di misurare e predire il consumo di energia della casa.
L’automazione domestica sta entrando sempre più nel nostro quotidiano facilitandoci in tantissimi aspetti della nostra vita. Chi non ha mai sognato macchine volanti, una casa completamente automatizzata e un mondo in cui tutto è disponibile con la semplice pressione di un pulsante? Anche se le macchine non sanno ancora volare, la guida autonoma non è più troppo lontano e nemmeno la possibilità di controllare molti aspetti della  casa con pochi clic.
In definitiva, a un certo punto, i nostri vari elettrodomestici potrebbero essere collegati, permettendoci di controllarli tutti dai nostri telefoni o da un altro tipo di dispositivo. Per ora, alcune app possono essere controllate utilizzando una connessione Wi-Fi, ma è necessario disporre di app o dispositivi smartphone separati per dire loro cosa fare.
Lo scopo principale di questo progetto è di eseguire analisi sui dati raccolti e prevedere il consumo di energia futura (sia che si tratti di un  giorno che di un mese)
Generalmente lo spreco di energia nell’uso quotidiano è alto: dal non spegnere  le luci quando non sono in uso o pwer l’utilizzo di apparecchi vecchi e inefficienti che consumano grandi quantità di energia. L’energia deve essere conservata non solo per ridurre i costi ma anche per preservare le risorse per un uso prolungato. 

Passaggio 1: Walking Through System

HAEP
  1. L’utente accenderà / spegnerà il dispositivo usando l’app Android creata per il sistema.
  2. I dati di Android vanno al documento Firebase su Cloud.
  3. Arduino riceve continuamente il cambiamento dei dati nel documento Firebase.
  4. In base al valore Field nel documento Firebase, cambia lo stato de
  5. l dispositivo.Arduino continua a raccogliere la temperatura e l’umidità a
  6. ttuali.Questi valori vengono inviati al documento Firebase per scopi di analisi.
  7. I dati vengono raccolti dallo script Python in esecuzione sul server.
  8. Un modello di regressione lineare viene eseguito sui dati raccolti e la pre
  9. visione del giorno successivo viene eseguita.
  10. Il valore viene quindi inviato nuovamente all’app Android tramite Firebase.

 

Passaggio 2: I COMPONENTI

COMPONENTI_HAEP
HARDWARE
Arduino UNO
ESP8266/01
LED’s
DHT11
Wires
Power Source
SOFTWARE
Firebase Account
Python
Scikit-Learn

Passaggio 3: collegamento e codifica di Arduino al modulo  ESP

ESP ha solo 8 pin, di cui solo due possono essere utilizzati per scopi GPIO. Quindi, per superare la carenza di pin e allo stesso tempo collegarsi a Internet, bisogna collegare in serie l’ESP ad Arduino in modo che Arduino possa scambiare pacchetti tramite ESP.
Quindi Arduino è codificato per raccogliere dati dai sensori e poi tutto per ESP e anche ricevere dati da ESP tramite Serial Comm.
Analogamente, ESP è codificato per ricevere tutti i dati del sensore da Arduino e inviarlo a Firebase e inviare i pacchetti in arrivo da Firebase a Arduino per eseguire l’azione richiesta.
 
Scarica DataToESP

Passaggio 4: configurazione di Firebase

  1. Scarica FirebaseArduino form Library Manger di Arduino IDE.
  2. Apri File> Esempi> FirebaseArduino> FirebaseRoom_ESP8266 In FirebaseRoom_ESP8266: Sostituisci WIFI_SSID e WIFI_PASSWORD con le credenziali WiFi
  3. Vai a https://firebase.google.com/console/ e crea un nuovo Progetto Firebase
  4. Vai al database
    Copia il nome host del database (URL del database senza https: // e trailing /)
    In FirebaseRoom_ESP8266: sostituire FIREBASE_HOST cn il nome host del database
  5. Vai a ⚙> Impostazioni progetto> Database> Database Secret Fai clic sui Secret di Firebase> Mostra
  6. Copia il Database Secret
  7. In FirebaseRoom_ESP8266: Sostituisci FIREBASE_AUTH con Database Secret
  8. Selezionare la scheda Board> Moduli ESP8266> NodeMCU 1.0
  9. Seleziona la porta seriale Porta> / dev / tty …
  10. Seleziona la velocità di caricamento Velocità di caricamento> 115200
  11. Fai clic su Sketch > Carica
    Per  maggiori informazioni leggi la documentazione: http://firebase-arduino.readthedocs.io/en/latest/

 

Passaggio 5: impostazione di Python ed esecuzione di Analytics

Iniziamo a descrivere i dati:  ogni volta che l’utente accende o spegne qualsiasi apparecchiatura, viene memorizzato il momento temporale in cui è stato acceso. Il dato è memorizzato nel Firebase insieme alla temperatura e all’umidità correnti della stanza. La prossima volta che l’utente spegne di nuovo lo stesso dispositivo, un timestamp viene generato e memorizzato nel firebase. Ora abbiamo i nostri dati in firebase, calcoleremo la differenza usando lo script python e per ottenere la durata per cui il dispositivo è stato acceso. Lo moltiplicheremo con il tasso di energia unitario dell’area per ottenere il prezzo totale.
Le nostre funzionalità comprendono Day, Temperature e Umidità, mentre le nostre etichette includono Durata per cui è stato acceso il nostro dispositivo.
Effettueremo la regressione lineare sui dati in arrivo. È un algoritmo di apprendimento automatico senza supervisione. La maggior parte dei tipi fondamentali di regressione e analisi predittiva comunemente usata. La regressione lineare tenta di modellare la relazione tra due variabili adattando un’equazione lineare ai dati osservati. Una variabile è considerata una variabile esplicativa e l’altra è considerata una variabile dipendente.

Equazione: Y = aX + b

Passagio 6 Android App

L’app è sviluppata in Android Studio.
Per aggiungere Firebase alla tua app avrai bisogno di un progetto Firebase e un file di configurazione Firebase per la tua app.

Crea un progetto Firebase nella console Firebase, se non ne hai già uno. Se hai già un progetto Google associato alla tua app mobile, fai clic su Importa Google Project. Altrimenti, fai clic su Aggiungi progetto.

Fai clic su Aggiungi Firebase all’app per Android e segui i passaggi di installazione. Se stai importando un progetto Google esistente, questo può accadere automaticamente e puoi semplicemente scaricare il file di configurazione.

Quando richiesto, inserisci il nome del pacchetto dell’app. È importante inserire il nome del pacchetto utilizzato dalla tua app; questo può essere impostato solo quando aggiungi un’app al tuo progetto Firebase.

Alla fine, scaricherai un file google-services.json. Puoi scaricare nuovamente questo file in qualsiasi momento.
Se non lo hai già fatto, copia questo nella cartella del modulo del progetto, in genere app /.
Aggiungi l’SDK

Se desideri integrare le librerie Firebase in uno dei tuoi progetti, devi eseguire alcune attività di base per preparare il tuo progetto Android Studio. Potresti averlo già fatto come parte dell’aggiunta di Firebase alla tua app.
Innanzitutto, aggiungi le regole al file build.gradle di livello root, per includere il plug-in per i servizi di google e il repository Maven di Google:
buildscript {
// …
dependencies {
// …
classpath ‘com.google.gms:google-services:3.1.1’ // google-services plugin
}
}
allprojects {
// …
repositories {
// …
maven {
url “https://maven.google.com” // Google’s Maven repository
}
}
}
Aggiungi Firebase al tuo progetto Android
Prerequisiti
Un dispositivo con Android 4.0 (Ice Cream Sandwich) o versioni successive e Google Play Services 11.8.0 o versioni successive
L’ultima versione di Android Studio
Se non hai già un progetto Android Studio, puoi scaricare uno dei nostri esempi Quickstart se desideri semplicemente provare una funzione Firebase. Se stai utilizzando un quickstart, ricorda di ottenere l’ID dell’applicazione dal file build.gradle nella cartella del modulo del progetto (in genere app /), poiché avrai bisogno del nome di questo pacchetto per il passaggio successivo.
Nota: se si sta effettuando l’aggiornamento da una versione 2.X dell’SDK di Firebase, consultare la nostra guida all’aggiornamento per Android per iniziare.
Aggiungi Firebase alla tua app
Se utilizzi Android Studio versione 2.2 o successiva, Firebase Assistant è il modo più semplice per connettere la tua app a Firebase. L’Assistente può collegare il progetto esistente o crearne uno nuovo per te con tutte le dipendenze gradle necessarie.
Se stai utilizzando una versione precedente di Android Studio o hai una configurazione di progetto più complessa, puoi comunque aggiungere manualmente Firebase alla tua app.
Usa l’Assistente Firebase
Per aprire l’Assistente Firebase in Android Studio:
Fare clic per espandere una delle funzionalità elencate (ad esempio, Analytics), quindi fare clic sul collegamento del tutorial fornito (ad esempio, Registra un evento di Analytics).
Fai clic sul pulsante Connetti a Firebase per connetterti a Firebase e aggiungi il codice necessario alla tua app.
Questo è tutto! Puoi saltare ai prossimi passi.
Aggiungi manualmente Firebase
Per aggiungere Firebase alla tua app avrai bisogno di un progetto Firebase e un file di configurazione Firebase per la tua app.
Crea un progetto Firebase nella console Firebase, se non ne hai già uno. Se hai già un progetto Google associato alla tua app mobile, fai clic su Importa Google Project. Altrimenti, fai clic su Aggiungi progetto.
Fai clic su Aggiungi Firebase all’app per Android e segui i passaggi di installazione. Se stai importando un progetto Google esistente, questo può accadere automaticamente e puoi semplicemente scaricare il file di configurazione.
Quando richiesto, inserisci il nome del pacchetto dell’app. È importante inserire il nome del pacchetto utilizzato dalla tua app; questo può essere impostato solo quando aggiungi un’app al tuo progetto Firebase.
Alla fine, scaricherai un file google-services.json. Puoi scaricare nuovamente questo file in qualsiasi momento.
Se non lo hai già fatto, copia questo nella cartella del modulo del progetto, in genere app /.
Nota: se sono state definite più varianti di build con nomi di pacchetti diversi, ciascuna app deve essere aggiunta al progetto nella console di Firebase.
Aggiungi l’SDK
Se desideri integrare le librerie Firebase in uno dei tuoi progetti, devi eseguire alcune attività di base per preparare il tuo progetto Android Studio. Potresti averlo già fatto come parte dell’aggiunta di Firebase alla tua app.
Innanzitutto, aggiungi le regole al file build.gradle di livello root, per includere il plug-in per i servizi di google e il repository Maven di Google:
buildscript {
// …
dipendenze {
// …
classpath ‘com.google.gms: google-services: 3.1.1’ // plugin per google-services
}
}
tutti i progetti {
// …
repository {
// …
maven {
url “https://maven.google.com” // repository Maven di Google
}
}
}
Quindi, nel tuo file Gradle del modulo (in genere l’app / build.gradle), aggiungi la riga del plug-in in fondo al file per abilitare il plugin Gradle:
applica il plugin: ‘com.android.applica

Irma Garioni