Problema
Innanzitutto il problema: devo riempire un serbatoio d’acqua distante 1,5Km, quindi ho bisogno di due dispositivi:
- un server che gestisce una pompa: se il serbatoio remoto non è pieno il server avvia la pompa con un relè e quando il serbatoio è pieno, arresta la pompa.
- Pompa start-stop;
- Gestire il messaggio remoto;
- Prevenire azioni pericolose se il dispositivo remoto non è più attivo;
- Monitorare per selezionare una modalità operativa e uno stato.
- Un client che si trova in una posizione remota (posizione serbatoio) controlla il livello dell’acqua e avverte il Server se è tutto ok o se il serbatoio è pieno.
- Controllare il livello massimo e minimo;
- Avvisa il server sullo stato;
- Batteria e solare;
- Modalità sospensione se non è più necessario.
Una semplice dimostrazione
Ecco un semplice video dimostrativo.
Dispositivi
Microcontrollore
Come al solito userò un WeMos D1 mini perché è piccolo e potente, e vorrei usare il WiFi (nella prossima versione) per gestire la configurazione, maggiori informazioni su questo tutorial. “Tutorial ESP8266 (WeMos D1)“.
Ecco il mio WeMos D1 WeMos D1 mini - NodeMCU V2 V2.1 V3 - esp01 - esp01 programmer
Comunicazione
Per la comunicazione utilizzerò dispositivi Ebyte e32; controlla i dispositivi in questo tutorial, “Dispositivi LoRa e32“.
Qui la mia selezione di dispositivi Ebyte E32 AliExpress (433MHz 5Km) - AliExpress (433MHz 8Km) - AliExpress (433MHz 16Km) - AliExpress (868MHz 915MHz 5.5Km) - AliExpress (868MHz 915MHz 8Km)
Schermo
Mi piacciono i dispositivi i2c e in questo progetto userò un SDD1306, maggiori informazioni in questo tutorial “OLED SDD1306“.
Ecco il mio display OLED AliExpress I2C SPI SSD1306 0.91 0.96 inch OLED
Alimentazione elettrica
Per il Server non ho problemi perché sicuramente fornisce sufficiente energia (per la gestione della pompa), quindi un semplice regolatore di tensione 5v (7805) per Microcontrollore (selezionabile) e 3,3v (LM1117T-3.3) per tutti gli altri componenti.
Fai attenzione. Puoi configurare il PCB per alimentare l’E32 con 3.3v con LM1117 o da WeMos D1 o con 5v da 7805. Con 5v puoi raggiungere distanze maggiori, già ad oggi è in corso la revisione del PCB per alimentare a 5v.
Per il cliente è più complesso, perché è alimentato a batteria, quindi riutilizzerò un semplice schema che puoi trovare in questo articolo “Power bank di emergenza fatto in casa”, e un semplice pannello solare 6v; Ho scelto di utilizzare un LM1117 per 3,3 v per una migliore gestione della batteria, ma non è così importante, farò una variante per utilizzare 5v per ottenere prestazioni migliori.
Bottoni
Per i controlli userò un pcf8574 con un encoder, maggiori informazioni in questo articolo “PCF8574 i2c digital I/O expander: Arduino, esp8266 e esp32, rotary encoder”.
pcf8574 AliExpress
Encoder AliExpress
Altri componenti
Altri componenti semplici come relè 3.3v, condensatori elettrolitici, transistor 2n2222a, LED, ecc.
Relé AliExpressTransistor AliExpress
Inizia la prototipazione
Per iniziare la prototipazione, utilizzo una serie di shield creati per questo uso, il risultato sembra abbastanza instabile, ma funziona molto bene.
Tutto questo shield è distribuito gratuitamente e puoi acquistare il PCB dal produttore del PCB, il PCB completo del Server e il client. È anche disponibile.
Per il Server utilizzo:
Per il client
Software
Uso varie librerie per gestire dispositivi e dati.
Per il Server utilizzo:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "PCF8574.h"
#include "LoRa_E32.h"
#include <ArduinoJson.h>
La libreria per la visualizzazione di Adafruit, le mie librerie per pcf8574 e LoRa E32 e una libreria per gestire i messaggi in formato JSON.
Per il client:
#include "LoRa_E32.h"
#include <ArduinoJson.h>
#include <ESP8266WiFi.h>
La mia libreria di dispositivi LoRa E32, Arduino JSON e la libreria WiFi gestiscono la modalità di sospensione.
Grazie
- Controllo remoto del livello della cisterna d’acqua e della pompa via LoRa: introduzione
- Controllo remoto del livello dell’acqua e della pompa via LoRa: server software
- Controllo remoto del livello dell’acqua e della pompa via LoRa: client software
- Controllo remoto del livello dell’acqua e della pompa via LoRa: PCB del server
- Controllo remoto del livello dell’acqua e della pompa via LoRa: PCB client
- Controllo remoto del livello dell’acqua e della pompa via LoRa: assemblare il server e box stampato in 3D
- Controllo remoto del livello dell’acqua e della pompa via LoRa: assemblare il client e box stampato in 3D