Sommario:

Come Realizzare un Sistema di Allarme Rilevamento Inondazione Intelligente Usando Raspberry Pi e Particelle Argon: 6 Passaggi
Come Realizzare un Sistema di Allarme Rilevamento Inondazione Intelligente Usando Raspberry Pi e Particelle Argon: 6 Passaggi

Video: Come Realizzare un Sistema di Allarme Rilevamento Inondazione Intelligente Usando Raspberry Pi e Particelle Argon: 6 Passaggi

Video: Come Realizzare un Sistema di Allarme Rilevamento Inondazione Intelligente Usando Raspberry Pi e Particelle Argon: 6 Passaggi
Video: Home Assistant - Come realizzare un semplice Allarme Antifurto dall'espandibilità infinta - ep.21 2024, Dicembre
Anonim
Image
Image
Come realizzare un sistema di allarme intelligente per il rilevamento delle inondazioni utilizzando Raspberry Pi e Particle Argon
Come realizzare un sistema di allarme intelligente per il rilevamento delle inondazioni utilizzando Raspberry Pi e Particle Argon

Avere sensori di allagamento standard è ottimo per prevenire danni ingenti alla tua casa o al posto di lavoro.

Ma è difficile se non sei a casa per assistere all'allarme.

Certo che potresti comprare quelli intelligenti

Questo sistema di allarme alluvione rileva qualsiasi liquido e attiva l'allarme e aggiorna la pagina web sull'alluvione a cui è possibile accedere in qualsiasi parte del mondo, sia che tu stia trascorrendo una vacanza rilassante o semplicemente al lavoro e desideri conoscere lo stato della tua casa.

Forniture

Raspberry pi (sto usando il modello 3 B+) con raspbian

Particella Argon

Sensore d'acqua Grove

Fotocamera Raspi

Cicalino

Ponticelli

Passaggio 1: collegare il sensore dell'acqua alla particella

Collega il sensore dell'acqua alla particella
Collega il sensore dell'acqua alla particella
Collega il sensore dell'acqua alla particella
Collega il sensore dell'acqua alla particella

il sensore dell'acqua ha 4 pin, che sono GND, VCC, NC e SIG e ne useremo solo tre

Sto collegando il pin SIG a D2 su Argon.

Ora puoi avviare Particle Web IDE per scrivere il codice e flashare su Argon

Quindi abbiamo registrato la funzione Particle liquid e definito una variabile isFloodPresent, che può essere chiamata da Particle Console e ottenere il valore booleano di isFloodPresent e anche chiamare la funzione liquid per il test di simulazione che assume il valore 1 come input che significa vero per il flusso (acqua) presente.

assicurati di essere in grado di vedere quella funzione e variabile dalla Console delle particelle del tuo dispositivo a particelle.

Passaggio 2: collegare la sorgente di allarme a Raspberry

Collega la sorgente di allarme a Raspberry
Collega la sorgente di allarme a Raspberry

Sulla breadboard puoi collegare Buzzer al pin GPIO di Raspberry

Ho collegato l'estremità più piccola del cicalino a GND (PIN 6) e l'estremità più lunga al pin 7 su lampone.

Ora esegui il codice per vedere. Avremo bisogno che questo file python sia sempre in esecuzione in modo che possa ricevere i trigger dal server Web e rispondere di conseguenza.

In alternativa puoi eseguire questo file all'avvio sul tuo raspberry, cosa che puoi fare modificando /etc/systemd

e questo file verrà inserito nella cartella cgi del tuo server apache, Ho creato una nuova directory flood-cgi all'interno di /var/www/html/ e ho inserito questo file.py che comunicherà con il mio script cgi

Passaggio 3: configurare il server Apache

Configura server Apache
Configura server Apache

puoi installare il server apache digitando sudo apt-get install apache2

quando è installato, puoi verificare digitando hostname -I

e otterrai il tuo indirizzo IP locale e puoi andare al tuo browser e dovresti vedere il server in esecuzione

Passaggio 4: abilita CGI su Apache

Abilita CGI su Apache
Abilita CGI su Apache

puoi abilitare cgi digitando sudo a2enmod cgi

Per impostazione predefinita cgi_bin di apache si trova in /usr/lib/cgi-bin

qui è dove puoi mettere i tuoi script cgi dopo aver abilitato cgi

per avere effetto, è necessario riavviare il server apache

Volevo una directory personalizzata per i miei script cgi, quindi ho creato una directory in /var/www/html/ chiamata flood-cgi

per abilitare questa directory ho dovuto creare il file conf digitando

sudo nano /etc/apache2/conf-available/flood-cgi.conf

e aggiungendo comandi come mostrato nello screenshot

quindi abilita questa directory digitando

var/www/html $ sudo a2enconf flood-cgi

ora puoi riavviare di nuovo il tuo server apache e tutti i cgi da questa cartella saranno leggibili da apache dopo l'autorizzazione.

Passaggio 5: configurare la pagina Web

Imposta la pagina web
Imposta la pagina web

Per questo semplice servizio web, sto usando HTML, Javascript, CSS, jquery e ajax.

Ho cinque etichette di controllo selezionabili, Nel caso in cui si faccia clic su Scatta foto dalla pagina Web, si attiverà la funzione di clic del pulsante foto e questa funzione avrà questo aspetto

$("#photobutton").click(function() { var floodDate = new Date();

var floodImageName = "Flood_IMG_" + floodDate.toLocaleTimeString();

$.ajax({

URL: 'flood-cgi/flood_cgi.py', metodo: 'posta', dati: { name_for_image: floodImageName }, successo: funzione (dati) {

avviso(dati, stato)

$("#recentpic").attr("src", "flood-cgi/" + floodImageName + ".jpg");

}

})

});

questo chiamerà lo script flood_cgi.py per scattare foto e salverà l'immagine con un nome personalizzato generato dalla data e dall'ora correnti e ajax carica fino alla pagina.

in caso di Allarme, possiamo utilizzare questa funzione

funzione callAlarm(alarmType) {

$.ajax({

url: 'flood-cgi/alarm.cgi', metodo: 'posta', dati: { tipo_allarme: tipo_allarme }, successo: funzione (dati) { avviso (dati)

}, errore: funzione (XMLHttpRequest, textStatus, throwError) { alert(throwError) } });

}

la funzione callAlarm verrà chiamata quando si fa clic sull'etichetta del cicalino, $("#buzzer").click(function() { callAlarm("test");

})

sotto il codice è quando si desidera fare clic su mock flood, ovvero chiamare l'API Particle e chiamare la funzione e modificare il valore del liquido 1 e controllare il sistema se l'intero funziona come previsto conducendo un evento di simulazione del flusso

$("#mockFlood").click(function() { console.log("ha richiesto il finto flood");

var floodVal = 1;

$("#segnale2").css("dimensione carattere", "piccolo");

var varName = "isFloodPresent";

var deviceID = "ID DEL TUO DISPOSITIVO";

var accessToken = "IL TUO TOKEN DI ACCESSO";

if (floodVal) {

$.post("https://api.particle.io/v1/devices/" + deviceID + "/liquid?access_token=" + accessToken, { liquid: floodVal }, funzione (dati, stato) {

if (stato == "successo") {

alert("Il Mock Flood ha condotto!!!");

} altro {

alert("Siamo spiacenti, c'è stato un problema");

}

});

}

});

Queste sono le funzioni principali di cui hai bisogno per stabilire una connessione con Particle Api e il tuo raspberry in modo che il tuo raspberry pi e il dispositivo particellare Argon possano comunicare.

nota: volevo caricare tutto il codice, ma non mi consente di caricare il file.html

Passaggio 6: creare uno script per la fotocamera Raspi

stiamo creando un semplice.py per catturare l'immagine e che avrà un'annotazione della data e dell'ora correnti su di essa.

quindi creeremo lo script cgi flood_cgi.py così verrà chiamato dal web e questo comanderà al file.py di scattare la foto.

assicurati di avviare lo script cgi con #! /usr/bin/env python

e dai anche il permesso ad apache di eseguire questi file.

il server apache viene eseguito sui dati dell'utente www, quindi una volta creato il file.py o.cgi, apache deve essere il proprietario del file

sudo chown pi:www-data flood-cgi.py

e dai il permesso di eseguire

sudo chmod a+x flood-cgi.py

dovrai farlo per tutti i file che devono essere eseguiti dal server apache.

NOTA: esporre il tuo lampone a Internet e dare tutte queste autorizzazioni rende il tuo lampone molto vulnerabile per motivi di sicurezza, quindi è necessario seguire utenti e permessi rigorosi e installare un firewall come firewall semplice (ufw)

Consigliato: