Le immagini dei prodotti sono solo a scopo informativo e potrebbero presentare piccole differenze, a seconda del lotto e del fornitore. Le specifiche e i prezzi dei prodotti potrebbero essere soggetti a modifiche senza preavviso. Facciamo del nostro meglio per aggiungere specifiche quanto più precise e corrette possibili alla pagina del prodotto, ma è possibile che non siano del tutto corrette. Se identifichi un caso del genere, ti preghiamo di segnalarcelo.
Il prodotto è destinato agli specialisti e richiede personale qualificato e autorizzato. Il prodotto non include istruzioni di montaggio/uso . La messa in funzione del prodotto da parte di persone non qualificate comporta la perdita della garanzia secondo i Termini e Condizioni presenti sul sito.
Le specifiche tecniche indicate (corrente, potenza, ecc.) rappresentano valori massimi consentiti in condizioni ideali di funzionamento. Per un utilizzo sicuro e una durata ottimale, si raccomanda di utilizzare il prodotto in regime continuo a non più del 50% dei valori massimi specificati.
Sensore del suolo 7 in 1 (N, P, K, pH, EC, Umidità, Temperatura), RS485, 5–30V
Monitora rapidamente i parametri essenziali del suolo per fertilizzazione e irrigazione precisa, misura N, P, K, pH, EC, umidità e temperatura in un unico dispositivo, comunicazione RS485 Modbus RTU per facile integrazione in SCADA o progetti IoT, sonde in acciaio inox 316 e custodia impermeabile IP68 per uso a lungo termine, alimentazione ampia 5–30V con basso consumo.
Spedizione veloce gratuita per ordini superiori a 100EUR nella maggior parte de paesi UE.
Spediamo dal nostro magazzino entro 24 ore
Ricevi punti a ogni ordine, per un valore del 5%.
Il sensore NPKPHCTH-S è una soluzione completa per il monitoraggio del suolo, integrando in un unico dispositivo la misurazione simultanea di nove parametri: umidità, temperatura, conducibilità elettrica (EC), pH, azoto (N), fosforo (P), potassio (K), salinità e TDS (solidi totali disciolti).
I cinque sensori in acciaio inox 316 garantiscono resistenza alla ruggine, corrosione ed elettrolisi prolungata, mentre il corpo del sensore è completamente sigillato con resina epossidica ignifuga nera, conferendogli un grado di protezione IP68 adatto per un utilizzo continuo in ambienti agricoli difficili o in terreni umidi.
La trasmissione dei dati avviene tramite interfaccia RS485 utilizzando il protocollo industriale Modbus RTU, che permette una facile integrazione in sistemi SCADA, stazioni meteo automatiche o progetti IoT basati su microcontrollori come ESP32, Arduino o Raspberry Pi.
Oltre all’uscita digitale RS485, il sensore è disponibile anche in versioni con uscita analogica 4-20 mA, 0-5 V o 0-10 V, per la compatibilità con un’ampia gamma di sistemi di acquisizione. La tensione di alimentazione ampia (4.5 – 30 VDC) e il basso consumo (inferiore a 0.5 W a 24 VDC) lo rendono compatibile con installazioni alimentate da batterie o pannelli solari. Il cavo di collegamento ha una lunghezza standard di 2 m, con possibilità di personalizzazione.

Specifiche:
Tensione di esercizio: 4.5 - 30 VDC
Consumo massimo: 0.5 W (a 24 VDC)
Interfaccia: RS485 / 4-20 mA / 0-5 V / 0-10 V
Protocollo: Modbus RTU
Campo di misura umidità: 0 - 100% RH
Precisione umidità: ±2% (0 - 50% RH), ±3% (50 - 100% RH)
Stabilità a lungo termine umidità: ≤1% RH/anno
Tempo di risposta umidità: ≤4 s
Campo di misura temperatura: -40 - 80°C
Precisione temperatura: ±0.5°C
Stabilità a lungo termine temperatura: ≤0.1°C/anno
Tempo di risposta temperatura: ≤15 s
Campo di misura conducibilità (EC): 0 - 20000 uS/cm
Precisione conducibilità: ±3% (0 - 10000 uS/cm), ±5% (10000 - 20000 uS/cm)
Stabilità a lungo termine conducibilità: ≤1 uS/cm/anno
Tempo di risposta conducibilità: ≤1 s
Campo di misura pH: 3 - 9 pH
Precisione pH: ±0.3 pH
Stabilità a lungo termine pH: ≤5%/anno
Tempo di risposta pH: ≤10 s
Campo di misura NPK: 1 - 1999 mg/kg
Risoluzione NPK: 1 mg/kg
Tempo di risposta NPK: ≤1 s
Lunghezza cavo: 2 m (personalizzabile)
Materiale sonda: Acciaio inox 316
Materiale corpo: Resina epossidica ignifuga nera
Grado di protezione: IP68
Temperatura di esercizio: -40 - 80°C
Dimensioni: 45 x 15 x 123 mm
Pinout Sonda:
| Pin | Colore | Funzione |
|---|---|---|
| 1 | Marrone | VCC (4.5 - 30 VDC) |
| 2 | Nero | GND |
| 3 | Giallo | RS485 A+ (Data+) |
| 4 | Blu | RS485 B- (Data-) |
Registri:
| Registro | Parametro | Unità | Fattore |
|---|---|---|---|
| 0x0000 | Umidità | %RH | /10 |
| 0x0001 | Temperatura | °C | /10 |
| 0x0002 | Conducibilità | uS/cm | x1 |
| 0x0003 | pH | pH | /10 |
| 0x0004 | Azoto (N) | mg/kg | x1 |
| 0x0005 | Fosforo (P) | mg/kg | x1 |
| 0x0006 | Potassio (K) | mg/kg | x1 |
| 0x0007 | Salinità | g/L | x1 |
| 0x0008 | TDS | mg/L | x1 |
Utilizzo:
Inserire le sonde completamente nel terreno fino al segno sul corpo del sensore, evitando il contatto con pietre o radici.
Collegare i fili secondo la tabella pinout al modulo RS485 (MAX485 o simile) o direttamente al convertitore RS485-USB.
Alimentare il sensore con una tensione tra 4.5 e 30 VDC sul filo marrone (+) e nero (GND).
Collegare il filo giallo al terminale A+ e il filo blu al terminale B- del modulo RS485.
Configurare la porta seriale con i seguenti parametri: baud rate 4800, 8 bit di dati, nessuna parità, 1 bit di stop (4800 8N1).
Inviare comandi Modbus RTU individuali all’indirizzo predefinito 0x01 per ogni registro desiderato, secondo la tabella dei registri sopra.
Interpretare i valori ricevuti applicando il fattore di scala corrispondente a ciascun parametro.
Dopo l’uso, pulire le sonde con acqua pulita e conservare il sensore al riparo dal gelo.
Codice di test con ESP32 e Modulo RS485:

Produs destinat utilizarii in proiecte electronice, automatizari, prototipare, educatie si cercetare.
Produsul trebuie utilizat numai conform specificatiilor tehnice mentionate in descriere si/sau in documentatia produsului.
Avertismente generale de siguranta:
Nu utilizati produsul la tensiuni, curenti sau temperaturi peste valorile specificate.
Montajul si conectarea trebuie realizate de persoane cu cunostinte tehnice minime in domeniul electric/electronic.
Evitati scurtcircuitele, inversarea polaritatii si conectarea gresita a alimentarii.
Nu lasati produsul alimentat nesupravegheat in timpul testelor.
Produsul nu este jucarie si nu este destinat copiilor.
Pentru modulele electronice, se recomanda utilizarea in carcase, panouri sau montaje protejate, dupa caz.
Identificare produs:
Denumirea produsului, codul/SKU-ul si caracteristicile tehnice sunt mentionate in pagina produsului si/sau pe eticheta ambalajului.
Producator / Importator / Distribuitor:
Sigmanortec S.R.L.
Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania
E-mail: [email protected]
Website: www.sigmanortec.ro
Persoana responsabila in UE:
Sigmanortec S.R.L.
Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania
E-mail: [email protected]
Documentatie si siguranta:
Pentru informatii suplimentare, fise tehnice, declaratii de conformitate sau instructiuni, ne puteti contacta la [email protected].
// NPKPHCTH-S - 9-parameter soil sensor | ESP32 + ThingSpeak
// RS485 module connected to Serial1 (RX=17, TX=16), RE/DE pin=4
// Baud rate: 4800, 8N1, sensor default address: 0x01
// Data is uploaded to ThingSpeak every 10 minutes
#include "WiFi.h"
#include "ThingSpeak.h"
#define RE 4
#define RXD2 17
#define TXD2 16
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
unsigned long channelID = 0; // your ThingSpeak channel ID
const char* writeAPIKey = "YOUR_KEY"; // your ThingSpeak write API key
WiFiClient client;
// Modbus RTU requests - one register each (address 0x01, function 0x03)
const byte humi[] = {0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x84, 0x0A};
const byte temp[] = {0x01, 0x03, 0x00, 0x01, 0x00, 0x01, 0xD5, 0xCA};
const byte cond[] = {0x01, 0x03, 0x00, 0x02, 0x00, 0x01, 0x25, 0xCA};
const byte phph[] = {0x01, 0x03, 0x00, 0x03, 0x00, 0x01, 0x74, 0x0A};
const byte nitro[] = {0x01, 0x03, 0x00, 0x04, 0x00, 0x01, 0xC5, 0xCB};
const byte phos[] = {0x01, 0x03, 0x00, 0x05, 0x00, 0x01, 0x94, 0x0B};
const byte pota[] = {0x01, 0x03, 0x00, 0x06, 0x00, 0x01, 0x64, 0x0B};
const byte sali[] = {0x01, 0x03, 0x00, 0x07, 0x00, 0x01, 0x35, 0xCB};
const byte tds[] = {0x01, 0x03, 0x00, 0x08, 0x00, 0x01, 0x05, 0xC8};
byte values[7];
int readRegister(const byte* request, uint8_t len) {
digitalWrite(RE, HIGH);
delay(10);
for (uint8_t i = 0; i < len; i++) Serial1.write(request[i]);
Serial1.flush();
digitalWrite(RE, LOW);
delay(100);
unsigned long t = millis();
uint8_t idx = 0;
while (millis() - t < 300 && idx < 7) {
if (Serial1.available()) values[idx++] = Serial1.read();
}
if (idx < 5) return -1;
return int(values[3] << 8 | values[4]);
}
void setup() {
Serial.begin(115200);
Serial1.begin(4800, SERIAL_8N1, RXD2, TXD2);
pinMode(RE, OUTPUT);
digitalWrite(RE, LOW);
delay(1000);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
Serial.println("NPKPHCTH-S ready.");
}
void loop() {
if (WiFi.status() != WL_CONNECTED) {
Serial.print("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, password);
delay(5000);
}
Serial.println(" connected.");
}
int raw;
float val[9];
const byte* reqs[] = {humi, temp, cond, phph, nitro, phos, pota, sali, tds};
uint8_t lens[] = {sizeof(humi), sizeof(temp), sizeof(cond), sizeof(phph),
sizeof(nitro), sizeof(phos), sizeof(pota),
sizeof(sali), sizeof(tds)};
float scales[] = {10.0, 10.0, 1.0, 10.0, 1.0, 1.0, 1.0, 1.0, 1.0};
const char* names[] = {"Humidity","Temperature","EC","pH",
"Nitrogen","Phosphorus","Potassium","Salinity","TDS"};
const char* units[] = {"%","deg.C","uS/cm","","mg/kg",
"mg/kg","mg/kg","g/L","mg/L"};
for (uint8_t i = 0; i < 9; i++) {
raw = readRegister(reqs[i], lens[i]);
val[i] = (raw >= 0) ? raw / scales[i] : -1;
Serial.print(names[i]); Serial.print(": ");
if (raw >= 0) { Serial.print(val[i], (scales[i] > 1) ? 1 : 0);
Serial.println(units[i]); }
else Serial.println("read error");
delay(200);
}
// Upload to ThingSpeak (8 fields max per free channel)
ThingSpeak.setField(1, val[0]); // humidity
ThingSpeak.setField(2, val[1]); // temperature
ThingSpeak.setField(3, val[2]); // EC
ThingSpeak.setField(4, val[3]); // pH
ThingSpeak.setField(5, val[4]); // nitrogen
ThingSpeak.setField(6, val[5]); // phosphorus
ThingSpeak.setField(7, val[6]); // potassium
ThingSpeak.setField(8, WiFi.RSSI());
int status = ThingSpeak.writeFields(channelID, writeAPIKey);
Serial.println(status == 200 ? "Upload OK." :
"Upload failed, HTTP " + String(status));
Serial.println("----------------------------------");
delay(600000); // 10 minutes
}