Controllo remoto del livello della cisterna d’acqua e della pompa via LoRa: (ReWaL) introduzione – 1

Spread the love

LoRa wireless remote water tank and pump controller (esp8266)
LoRa wireless remote water tank and pump controller (esp8266)

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)“.

WeMos D1 mini esp8266 pinout mischianti low resolution
WeMos D1 mini esp8266 pinout mischianti low resolution

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“.

LoRa E32-TTL-100

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”.

Rotative encoders photo
Rotative encoders photo

pcf8574 AliExpress

Encoder AliExpress

Altri componenti

Altri componenti semplici come relè 3.3v, condensatori elettrolitici, transistor 2n2222a, LED, ecc.

Relé AliExpress
Transistor 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.

WeMos All Shield pcf8574 ssd1036 relay e32 Lora
WeMos All Shield pcf8574 ssd1036 relay e32 Lora

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:

LoRa wireless remote water tank and pump controller esp8266 Server PCB
LoRa wireless remote water tank and pump controller esp8266 Server PCB

Per il client

LoRa wireless remote water tank and pump controller esp8266 Client PCB
LoRa wireless remote water tank and pump controller esp8266 Client PCB

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

  1. Controllo remoto del livello della cisterna d’acqua e della pompa via LoRa: introduzione
  2. Controllo remoto del livello dell’acqua e della pompa via LoRa: server software
  3. Controllo remoto del livello dell’acqua e della pompa via LoRa: client software
  4. Controllo remoto del livello dell’acqua e della pompa via LoRa: PCB del server
  5. Controllo remoto del livello dell’acqua e della pompa via LoRa: PCB client
  6. Controllo remoto del livello dell’acqua e della pompa via LoRa: assemblare il server e box stampato in 3D
  7. Controllo remoto del livello dell’acqua e della pompa via LoRa: assemblare il client e box stampato in 3D

Spread the love

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *