Ga naar inhoud

WCFV

Analytics Blog

Menu
Menu

Meet Bodemvoedingsstof met behulp van Arduino & Soil NPK Sensor

Gepubliceerd op december 31, 2021 door admin

overzicht

In dit artikel zullen we leren over de koppeling van de Soil NPK Sensor met Arduino & maak onze eigen Arduino Soil NPK Meter. Het gehalte aan voedingsstoffen in de bodem kan eenvoudig worden gemeten met behulp van de NPK-Bodemsensor & Arduino. Meting van het bodemgehalte N( stikstof), p (fosfor) en K (kalium) is noodzakelijk om te bepalen hoeveel extra nutriëntengehalte aan de bodem moet worden toegevoegd om de vruchtbaarheid van het gewas te verhogen.

de bodemvruchtbaarheid wordt gedetecteerd met behulp van NPK-sensoren. Een belangrijke component van bodemmeststof is stikstof, fosfor en kalium. De kennis van de voedingsstoffenconcentratie in de bodem kan ons helpen om meer te weten te komen over voedingsdeficiëntie of overvloed in bodems die worden gebruikt om de productie van planten te ondersteunen.

er zijn verschillende methoden om het gehalte aan voedingsstoffen in de bodem te meten, zoals het gebruik van enkele optische sensoren of het gebruik van de spectrometer. Maar de spectrale analysemethode is niet handig en het nadeel is dat de gegevens slechts 60-70% correct zijn. Bij een vergelijking van de spectrale analysemethode met de traditionele natte scheikundige methoden, is de nauwkeurigheid van de producten nog niet volledig opgelost, gezien de schaarste aan gegevens in dat opzicht.

dus, hier zullen we een Jxct Soil NPK Sensor gebruiken om de bodemstikstof, fosfor & kalium in een bodem te detecteren. De Jxct Soil NPK sensor is een goedkope, snelle responsieve, hoge precisie & draagbare Sensor die werkt met Modbus RS485. Het voordeel van deze sensor ten opzichte van een traditionele detectiemethode is dat het geeft zeer snelle meting & gegevens zijn zeer nauwkeurig. Alles wat je nodig hebt is om zijn sonde in de bodem te plaatsen en de lezing te krijgen met behulp van Arduino. Zo, laten we in detail over de koppeling van de Sensor van Grondnpk met Arduino leren.

materiaallijst

de componenten die nodig zijn voor het maken van een apparaat dat u kan helpen bij het bestuderen van het gehalte aan voedingsstoffen in de bodem worden hieronder gegeven. U kunt bijna alle componenten te kopen van de Amazon.

S. N. Components Name Description Quantity
1 Arduino Board Arduino Nano 1 https://amzn.to/2tsBbp1
2 NPK Sensor JXCTIOT Soil NPK Sensor 1 https://amzn.to/38kHbAH
3 OLED Display 0.96″ I2C OLED-Display 1 https://amzn.to/2XaQ5uz
4 Modbus Module MAX485 Modbus 1 https://amzn.to/36PM2JG
5 Voeding 9V – 12V DC-Voeding 1 https://amzn.to/3fhi057
6 Verbinden Van Kabels Jumper Draden 10 https://amzn.to/2L8Xc1p
7 Breadboard – 1 https://amzn.to/2YM6YyS

Bodem NPK-Sensor

De bodem NPK-sensor is geschikt voor het opsporen van het gehalte aan stikstof, fosfor en kalium in de bodem. Het helpt bij het bepalen van de vruchtbaarheid van de bodem en vergemakkelijkt zo de systematische beoordeling van de bodemgesteldheid. De sensor kan lang in de grond worden begraven. Het heeft een sonde van hoge kwaliteit, roestweerstand, elektrolytische weerstand, zout & alkali corrosieweerstand, om de werking op lange termijn van het sondedeel te verzekeren. Daarom is het geschikt voor alle soorten grond. Het is geschikt voor de detectie van alkalische grond, zure grond, substraatgrond, zaailingbedgrond & kokoszemelengrond.

Soil NPK-Sensor

de sensor heeft geen chemisch reagens nodig. Aangezien het hoge meetnauwkeurigheid, snelle reactiesnelheid en goede uitwisselbaarheid heeft, kan het met elke microcontroller worden gebruikt. U kunt de sensor niet direct met de microcontroller gebruiken omdat deze een Modbus-communicatiepoort heeft. Daarom heeft u elke Modbus Module zoals RS485/MAX485 nodig en sluit u de sensor aan op de microcontroller.

de sensor werkt op 9-24V & het energieverbruik is zeer laag. Terwijl we het hebben over de nauwkeurigheid van de sensor, is deze tot binnen 2%. De meetresolutie van stikstof, fosfor & kalium bedraagt maximaal 1 mg/kg (mg / l).

met behulp van deze Soil NPK Sensor, kunt u uw eigen Arduino Soil NPK Meter of een wolk IoT gebaseerde bodem Nutrient content Monitoring systeem te maken.

SPECIFICATIES

1. Vermogen: 9V-24V
2. Meetbereik: 0-1999 mg/kg (mg / l)
3. Bedrijfstemperatuur: 5-45 °C
4. Resolutie: 1mg / kg
5. Nauwkeurigheid: ± 2% F. S.
6. Uitgangssignaal: RS485
7. Baudrate: 2400/4800/9600
8. Beschermingsklasse: IP68


MAX485 TTL naar RS-485 interfacemodule

de MAX485 TTL naar RS-485 interfacemodule stelt ons in staat om de RS-485 differentiële signalering te gebruiken voor robuuste seriële communicatie over lange afstand tot 1200 meter of in elektrisch lawaaierige omgevingen en wordt veel gebruikt in industriële omgevingen. Het ondersteunt tot 2,5 MBit / Sec datasnelheden, maar naarmate de afstand toeneemt, daalt de maximale datasnelheid die kan worden ondersteund.

de gegevens beginnen als een typische TTL-niveaureeks voor zover het de microcontroller betreft, terwijl de RS-485 module zorgt voor het omzetten van de elektrische signalen tussen TTL en de differentiële signalering die door RS-485 wordt gebruikt. Een belangrijk voordeel van RS-485 is dat het meerdere apparaten (tot 32) op dezelfde kabel ondersteunt, meestal aangeduid als ‘multi-drop’.

SPECIFICATIES

1. Gebruik MAX485 Interfacespaander
2. Gebruikt differentiële signalering voor ruisonderdrukking
3. Afstanden tot 1200 meter
4. Snelheden tot 2,5 Mbit / Sec
5. Multi-drop ondersteunt tot 32 apparaten op dezelfde bus
6. Rode voedings-LED
7. 5V operatie

Pinout & Moduleaansluiting

de module heeft twee 4-pins headers op het samenstel.

1 x 4 Header (gegevenszijde)

RO = Ontvangeruitgang. Maakt verbinding met een seriële RX-pin op de microcontroller
RE = Receiver Enable. Laag actief. Verbindt met een digitale outputspeld op een microcontroller. Drive laag om ontvanger in te schakelen, HIGH om Driver
DE = Driver Enable in te schakelen. Actieve HIGH. Typisch jumpered naar RE Pin.
DI = Driver Input. Kan worden aangesloten op de seriële TX-pin op de microcontroller

1 x 4 Header (uitvoerzijde)

VCC = 5V
B = Data ” B ” Omgekeerde lijn. Vaak met de B
A = gegevens ” A ” niet-Omgekeerde lijn. Kan worden aangesloten op een module aan het Verre uiteinde
GND = grond

1 x 2 Schroefterminalblok (uitvoerzijde)

B = Omgekeerde lijn met gegevens “B”. Verbindt met B op far end module
A = Data ” A ” niet-Omgekeerde lijn. Verbindt met een aan het verre einde module

de Sensor van Grondnpk met Arduino

nu, laten ons de sensor van Grondnpk met de Arduino Nano Raad met behulp van de module van MAX485 Modbus verbinden. Controleer het aansluitschema hieronder.

Soil NPK Sensor Arduino

Verbind de R0 & DI pin van de Modbus met D2 & D3 Arduino met behulp van seriële Software. Op dezelfde manier moeten we DE & RE hoog inschakelen. Sluit hiervoor de de & RE pinnen aan op de D7 & D8 pin van Arduino. De NPK Sensor heeft 4 draden. De bruine is VCC die een 9V-24V voeding nodig heeft. De GND-speld die zwart van kleur is. Dus verbind het met GND van Arduino. De blauwe draad die de b-pin is, is verbonden met de B-pin van MAX485 & De gele draad die de a-pin is, is verbonden met de a-pin van MAX485.

het 0.96 ” SSD1306 Oled-scherm is een I2C-Module. Verbind de OLED-vertoningsvcc & GND-spelden met 3.3 V & GND van Arduino. Sluit ook zijn SDA & SCL-pinnen aan op de A4 & A5 van Arduino. U kunt het schema & volgen om het circuit op een breadboard te monteren of een aangepaste printplaat te maken.

NPK-Sensorarduino

Project PCB Gerber File & PCB bestellen online

Als u het circuit niet op breadboard wilt monteren en u wilt PCB voor het project, dan is hier de PCB voor u. De printplaat voor de NPK-Meter is ontworpen met behulp van easyeda online Circuit schema ‘ s & PCB designing tool. De voor-en achterkant van de print is hieronder aangegeven.

Download Gerber Bestand: NPK Meter PCB

u kunt nu de officiële website van NextPCB bezoeken door hier te klikken: https://www.nextpcb.com/. U wordt dus doorverwezen naar de website van NextPCB.

u kunt nu het Gerber-Bestand uploaden naar de Website en een bestelling plaatsen. De printkwaliteit is schoon en briljant. Dat is de reden waarom de meeste mensen nextpcb vertrouwen voor PCB & PCBA diensten.

Modbus-opdracht voor NPK-Sensor

Modbus-opdrachten kunnen een Modbus-apparaat instrueren tot:
1. wijzig de waarde in een van zijn registers, die wordt geschreven naar rol-en Holding registers
2. lees een I / O-poort: lees gegevens van Discrete en spoelpoorten,
3. opdracht het apparaat om een of meer waarden terug te sturen die zijn opgenomen in het Spoelregister

een Modbus-opdracht bevat het Modbus-adres van het apparaat waarvoor het is bedoeld (1 tot 247). Het Modbus-adres wordt ook wel een onderzoeksframe genoemd. Alleen het geadresseerde apparaat zal reageren en handelen op de opdracht, ook al kunnen andere apparaten het ontvangen.

de NPK-Sensor heeft 3 verschillende onderzoeksframe voor het aflezen van de waarde van stikstof (N), fosfor (P) & kalium (K). Het aanvraagframe wordt samen met de handleiding geleverd. Voor de NPK-gegevens de volgende individuele onderzoekskaders:

1. Stikstof: {0x01, 0x03, 0x00, 0x1e, 0x00, 0x01, 0xe4, 0x0c}

het onderzoekskader voor het verkrijgen van de Stikstofwaarde in de bodem is:

u krijgt het volgende als antwoord:

je kunt de Bodemstikstof berekenen aan de hand van de reactie die je krijgt. Als u bijvoorbeeld 0030 als reactie krijgt, dan is de Stikstofwaarde in de bodem:
0020 H ( hexadecimaal) =32 (decimaal) = > stikstof = 32mg/kg

2. Fosfor:{0x01, 0x03, 0x00, 0x1f, 0x00, 0x01, 0xb5, 0xcc}

:

u krijgt het volgende als antwoord:

je kunt de Bodemfosfor berekenen aan de hand van de reactie die je krijgt. Als u bijvoorbeeld 0030 als reactie krijgt, is de Stikstofwaarde in de bodem:
0025 H ( hexadecimaal) =37 (decimaal) = > fosfor = 37/kg

3. Kalium: {0x01, 0x03, 0x00, 0x20, 0x00, 0x01, 0x85, 0xc0}

het onderzoekskader voor het verkrijgen van Kaliumwaarde in de bodem is:

u krijgt het volgende als antwoord:

je kunt het Potassium berekenen aan de hand van de reactie die je krijgt. Als u bijvoorbeeld 0030 als reactie krijgt, zal de Potassiumwaarde in de bodem:
0030 H (hexadecimaal) =48 (decimaal) = > Potassium = 48mg/kg

broncode/programma

de broncode voor het interfacen van de Soil NPK-Sensor met Arduino & het ophalen van de voedingswaarde van de bodem uit de Sensor via het Modbus-commando wordt hieronder gegeven. U kunt het commando verzenden en de waarde ophalen in HEX-Code. De HEX-code moet worden omgezet in decimaal om de gemeten Bodemvoedingsinhoud gegevens te krijgen.

omdat we OLED-Display gebruiken om de voedingswaarden van de bodem (stikstof, fosfor & kalium) in mg/kg weer te geven, hebt u OLED-bibliotheek nodig. Download de volgende OLED-bibliotheek en voeg deze toe aan de Arduino IDE.
1. Adafruit SSD1306 bibliotheek: Download
2. Adafruit GFX bibliotheek: Download

hier is de volledige broncode. Compileer de code & upload het naar het Arduino Nano bord.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139

#include <SoftwareSerial.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define RE 8
#define DE 7
//const byte code= {0x01, 0x03, 0x00, 0x1e, 0x00, 0x03, 0x65, 0xCD};
const byte nitro = {0x01,0x03, 0x00, 0x1e, 0x00, 0x01, 0xe4, 0x0c};
const byte phos = {0x01,0x03, 0x00, 0x1f, 0x00, 0x01, 0xb5, 0xcc};
const byte pota = {0x01,0x03, 0x00, 0x20, 0x00, 0x01, 0x85, 0xc0};
byte values;
SoftwareSerial mod(2,3);
void setup() {
Serial.begin(9600);
mod.begin(9600);
pinMode(RE, OUTPUT);
pinMode(DE, OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //initialize with the I2C addr 0x3C (128×64)
delay(500);
display.clearDisplay();
display.setCursor(25, 15);
scherm.setextgrootte(1);
display.setTextColor (Wit);
display.println (“NPK Sensor”);
beeldscherm.setCursor(25, 35);
display.setextgrootte(1);
display.afdrukken (“initialiseren”);
weergeven.display();
vertraging(3000);
}
void loop() {
byte val1,val2,val3;
val1 = stikstof();
vertraging(250);
val2 = fosfor();
vertraging(250);
val3 = kalium();
vertraging(250);
Serial.print (“stikstof: “);
serieel.print (val1);
serieel.println (“mg / kg”);
serie.print (“fosfor: “);
serieel.print(val2);
serieel.println (“mg / kg”);
serie.print (“kalium: “);
serieel.print (val3);
serieel.println (“mg/kg”);
vertraging(2000);
display.clearDisplay ();
display.setextgrootte(2);
display.setCursor(0, 5);
display.afdrukken (“N: “);
display.afdrukken (val1);
weergeven.setextgrootte (1);
scherm.afdrukken (“mg / kg”);
scherm.setextgrootte(2);
display.setCursor(0, 25);
display.afdrukken (“P: “);
display.afdrukken (val2);
weergeven.setextgrootte(1);
display.afdrukken (“mg / kg”);
scherm.setextgrootte(2);
display.setCursor(0, 45);
display.afdrukken (“K: “);
display.afdrukken (val3);
weergeven.setextgrootte(1);
display.afdrukken (“mg / kg”);
scherm.weergegeven();
}
bytstikstof(){
digitalWrite (de, hoog);
digitalWrite (RE, hoog);
vertraging(10);
if (mod.schrijf(nitro,sizeof(nitro)))==8){
digitalWrite(de,laag);
digitalWrite (RE, laag);
voor (byte i = 0;i<7; i++){
//serieel.print (mod.read (), HEX);
values = mod.read ();
Serial.print (waarden, HEX);
}
serieel.println();
}
retourneer waarden;
}
bytefosfor () {
digitalWrite (de, hoog);
digitalWrite (RE, hoog);
vertraging(10);
if (mod.schrijf (phos, sizeof (phos)))==8){
digitalWrite(de,laag);
digitalWrite (RE, laag);
voor (byte i = 0;i<7; i++){
//serieel.print (mod.read (), HEX);
values = mod.read ();
Serial.print (waarden, HEX);
}
serieel.println();
}
retourneer waarden;
}
byte kalium () {
digitalWrite (de, hoog);
digitalWrite (RE, hoog);
vertraging(10);
if (mod.schrijf (pota, sizeof (pota)))==8){
digitalWrite(de,laag);
digitalWrite (RE, laag);
voor (byte i = 0;i<7; i++){
//serieel.print (mod.read (), HEX);
values = mod.read ();
Serial.print (waarden, HEX);
}
serieel.println();
}
retourneer waarden;
}

opmerking: de code is de enige Geschikt voor het meten van de bodem NPK waarden tot 255mg/kg. Dit komt omdat we slechts 8bit waarde lezen. Volgens de datasheet van de Sensor kunt u de waarde meten tot 1999mg/kg. Om zo ‘ n waarde te lezen moeten we 16bit data lezen. Raadpleeg de bodem EC Sensor Code om zulke hoge waarden te lezen.

Monitoring Soil NPK Data on OLED Display

zodra u de code uploadt naar Arduino Nano Board, zal de OLED initialiseren samen met de sensor. De sensor zal enige tijd duren voor de stabiliteit en de lezing kan in eerste instantie onjuist zijn.

zodra de sensor stabiel wordt, kunt u de sensor in de grond dompelen om de NPK-meting te krijgen. Het volume stikstof, fosfor & kalium dat het Ammoniumgehalte in de bodem vormt, wordt weergegeven in mg / Kg.

 Soil NPK Meter Arduino

dus dit is hoe je de bodem nutriënt Sensor Arduino & meet de NPK meetwaarden. Op dezelfde manier, zet de sensor in verschillende monsters van de bodem. U ziet een variatie in het volume van NPK afhankelijk van het type grond.

Soil NPK Sensor Arduino

Video Tutorial & Guide

Volg de volgende video om meer te weten te komen over het gehele project & code informatie.

DIY bodem NPK Meter / / Meet Bodemvoedingsinhoud met behulp van bodem NPK Sensor & Arduino

bekijk deze video op YouTube.

naast het meten van de bodem NPK, kunt u ook het vochtgehalte van de bodem meten met behulp van de Bodemvochtigheidssensor, de bodem Ph met behulp van de bodem Ph Sensor & de bodem EC & zoutgehalte met behulp van de bodem EC Sensor, die wordt uitgelegd in mijn vorige post.

zo kunt u uw eigen Arduino bodem NPK Meter maken met behulp van de bovenstaande gids & bepaal de vruchtbaarheid van de bodem. U kunt ook de geavanceerde versie van dit project controleren. In de advance-versie kunt u Soil NPK-Sensor, Temperatuursensor & Soil Moisture Sensor combineren met Arduino: IoT-gebaseerde Bodemvoedingsmonitoring.

Geef een antwoord Reactie annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Recente berichten

  • niet-Metallic goud en schilderen geduld
  • Eenvoudige manieren om Cake Pops te maken zonder mal
  • Guide
  • wachtwoord voor iPod Nano
  • leven met Anorexia Nervosa
  • Google SketchUp Pro 2022 Crack 21.0.339
  • overmatige trilling van de motor van de motorfiets – oorzaken en oplossingen
  • hoe stp-bestand openen in autocad?
  • Dia De los Muertos Mask
  • Een peyote-Bezel aanmaken
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Archieven

  • maart 2022
  • februari 2022
  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Meta

  • Inloggen
  • Berichten feed
  • Reacties feed
  • WordPress.org
© J WCFV | Aangedreven door Superbs Persoonlijk blog thema