Sommario:

Umidità del suolo con nodo: 7 passaggi
Umidità del suolo con nodo: 7 passaggi

Video: Umidità del suolo con nodo: 7 passaggi

Video: Umidità del suolo con nodo: 7 passaggi
Video: Sensore multilivello di umidità e temperatura del suolo xNode Multilevel - Installazione 2024, Luglio
Anonim
Image
Image
Suolo più umido con nodo
Suolo più umido con nodo
Suolo più umido con nodo
Suolo più umido con nodo
Suolo più umido con nodo
Suolo più umido con nodo

In questo manuale ti mostrerò come realizzare un sensore del suolo fatto in casa per il sistema gardenhealth. Ti mostrerò ciò di cui hai bisogno, fornirò alcuni esempi di codice e come implementare il codice.

Alla fine delle istruzioni saprai come cambiare il colore di una striscia led quando il terreno è bagnato, un po' bagnato o asciutto.

In questo manuale userò:

  • Arduino versione 1.8.9
  • La libreria Adafruit_NeoPixel.h

Forniture

Avrai bisogno di:

  • NodeMCU 1.0 (modulo ESP-12E)
  • 1 cavo da femmina a femmina
  • Una striscia LED
  • (Opzionale) Sensore del suolo fatto in casa (Guarda il video qui sopra fino alle 00:36)

Passaggio 1: configurazione

Impostare
Impostare
Impostare
Impostare
Impostare
Impostare
Impostare
Impostare
  • Prendi il tuo nodo e il tuo sensore del suolo.
  • Collegare il sensore suolo ad A0.(Foto 1) (in alternativa prendere un cavo femmina stript e collegarlo ad A0 (Foto 3)

Prendi la tua striscia LED e metti GND in G, 5V su 3V e il cavo centrale in D5. (Foto 2)

Ora assomiglierà all'ultima foto.

Passaggio 2: aggiunta del codice per il sensore del suolo

Aggiunta del codice per il sensore del suolo
Aggiunta del codice per il sensore del suolo
  • Crea un nuovo progetto in arduino IDE
  • Passato nel seguente codice:

/* Ingresso analogico, uscita analogica, uscita seriale

Legge un pin di ingresso analogico, mappa il risultato in un intervallo da 0 a 255 e utilizza il risultato per impostare la modulazione di larghezza di impulso (PWM) di un pin di uscita. Stampa anche i risultati sul monitor seriale.

Il circuito: - potenziometro collegato al pin analogico 0. Il pin centrale del potenziometro va al pin analogico. i pin laterali del potenziometro vanno a +5V e massa - LED collegato dal pin digitale 9 a massa

creato il 29 dicembre 2008 modificato il 9 aprile 2012 da Tom Igoe

Questo codice di esempio è di dominio pubblico.

www.arduino.cc/en/Tutorial/AnalogInOutSeri… *

/ Queste costanti non cambieranno. Servono per dare nomi ai pin utilizzati: const int analogInPin = A0; // Pin di ingresso analogico a cui è collegato il potenziometro const int analogOutPin = D5; // Pin di uscita analogica a cui è collegato il LED

int valoresensore = 0; // valore letto dal piatto

void setup() { // inizializza le comunicazioni seriali a 9600 bps: Serial.begin(9600); }

void loop() { // legge il valore analogico in: sensorValue = analogRead(analogInPin);

// stampa i risultati sul monitor seriale: Serial.print("sensor = "); Serial.print(sensorValue); Serial.print("\n"); // Serial.println(outputValue);

// attende 1 millisecondi prima del ciclo successivo affinché il convertitore analogico-digitale // si stabilizzi dopo l'ultima lettura: delay(1000); }

Ora puoi controllare se il tuo sensore fornisce un valore.

Tocca l'estremità della vite o del cavo e vedrai qualcosa come la foto 1

Se non funziona controlla i cavi. Sono collegati correttamente?

Passaggio 3: libreria Neopixel

Libreria Neopixel
Libreria Neopixel
  • Scarica la libreria adafruit_neopixel (se non l'hai già fatto).

    • Vai a strumenti> gestisci liberatori
    • cerca adafruit neopixel foto 1
    • Installa la versione 1.2.5

Passaggio 4: configurazione del codice Neopixel

  • Aggiungi quanto segue nella parte superiore del tuo progetto

    • #includere
    • #includere
    • #include "Adafruit_NeoPixel.h"
  • Sotto quello:

char ssid = "SSID"; // il tuo SSID di rete (nome)

char password = "password"; // la tua password di rete

E sotto quello

#define PIXEL_PIN D5#define PIXEL_COUNT 30 //cambia a quanti led sono sulla tua striscia

#define PIXEL_TYPE NEO_GRB + NEO_KHZ800

Adafruit_NeoPixel pixel = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);

Passaggio 5: configurazione nulla

Inserisci il seguente codice nel file voide setup()

pixel.begin(); // INIZIALIZZA l'oggetto striscia NeoPixel (RICHIESTO)pixels.show(); // Spegne tutti i pixel al più presto

pixels.setBrightness(50); //deve essere compreso tra 0 e 255 se desideri che la striscia led sia più luminosa puoi aumentare il numero

Passaggio 6: loop vuoto

Nel void loop() e sotto il delay(1000); inserire il seguente codice

if (sensorValue == 0 ||sensorValue <= 200) {

for(int i=0; i

pixels.setPixelColor(i, 255, 0, 0);

pixel.mostra();

}

}else if (sensorValue > 200 || sensorValue <= 500) {

per (int i=0; i

pixels.setPixelColor(i, 0, 255, 0);

pixel.mostra();

}

} else if (sensorValue > 500) {

for(int i=0; i

pixels.setPixelColor(i, 0, 0, 255);

pixel.mostra();

}

}

}

Passaggio 7: verifica

Dai un'occhiata
Dai un'occhiata
Dai un'occhiata
Dai un'occhiata

Congratulazioni! Hai appena creato un sistema che può indicare se il terreno è bagnato o asciutto.

Ora, quando metti il sensore in terreno umido, il LED diventa verde e quando è in terreno asciutto diventa rosso. Come nelle immagini sopra.

Consigliato: