
Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:44

Tässä opetusohjelmassa aion selittää maaperän kosteuspitoisuuden lukemisen käyttämällä esp32: ta ja lähettämällä sitten arvot thingsio.ai IoT -pilvialustaan.
Vaihe 1: KOMPONENTIT


Laitteiston osat:
1. esp32 -kehityskortti
2. maaperän anturi
3. hyppyjohdot
Ohjelmisto:
1. Arduino IDE
2. Thingsio.ai
Vaihe 2: LIITÄNNÄT

Maaperän kosteusanturi ---------------------- esp32 Board
VCC --------------------------------------- 3V3
GND -------------------------------------- GND
A0 ---------------------------------------- VP
Vaihe 3: KOODAUS:
#sisältää
#sisältää
#sisältää
int -luku = 0, i, m, j, k;
int t;
int sensor_pin = A0;
int arvo;
/////////////////////////////////////////////////////////////////////// KAIKKI ILMOITUKSET
CLOUD ///////////////////////////////
const char* isäntä = "api.thingsai.io"; // TAI isäntä =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // TAI
/api/v2/thingscloud2/_table/data_ac
const char* aikapalvelin =
"baas.thethingscloud.com"; // tämä on aikaleiman muuntaminen
const int httpPort = 80;
const int httpsPort = 443;
const char* palvelin =
"api.thingsai.io"; // Palvelimen URL -osoite
char -aikaleima [10];
WiFiMulti WiFiMulti;
// Käytä WiFiClient -luokkaa TCP -yhteyksien luomiseen
WiFiClient -asiakas;
/////////////////////////////////////// AIKALEIMA
LASKELU -toiminto ////////////////////////////////////////
int GiveMeTimestamp ()
{
allekirjoittamaton pitkä
aikakatkaisu = millis ();
// WiFiClient -asiakas;
sillä aikaa
(client.available () == 0)
{
jos (millis () -
aikakatkaisu> 50000)
{
client.stop ();
palauta 0;
}
}
kun taas (client.available ())
{
Merkkijono =
client.readStringUntil ('\ r'); // indexOf () on smthng -hakutoiminto, se palauttaa -1, jos sitä ei löydy
int pos =
line.indexOf ("\" aikaleima / ""); // etsi "\" aikaleima / "" vastauksen alusta ja kopioi kaikki tiedot sen jälkeen, se on aikaleimasi
jos (pos> =
0)
{
int j = 0;(j = 0; j <10; j ++)
{aikaleima [j] = rivi [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
mitätön asennus ()
{Sarja.alku (115200);Serial.println ("Lukeminen anturista …");
viive (2000);
// Aloitamme
yhdistäminen WiFi -verkkoon
WiFiMulti.addAP ("Wifi_name", "Wifi_Password");
Sarja.println ();
Sarja.println ();Serial.print ("Odota WiFi -yhteyttä …");while (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
viive (500);
}Serial.println ("");Serial.println ("WiFi -yhteys");
Serial.println ( IP
osoite: );Serial.println (WiFi.localIP ());
viive (500);
}
tyhjä silmukka ()
{
{
//////////////////////////
VASTAA VASTAUS ////////////////////////
arvo =
analogRead (sensor_pin);
// arvo =
kartta (arvo, 550, 0, 0, 100);Serial.print ("Mositure:");Serial.print (arvo);Serial.println ("%");viive (1000);Serial.print ("yhdistäminen");Serial.println (isäntä); // määritelty ylösalaisin:- isäntä = devapi2.thethingscloud.com tai 139.59.26.117
////////////////////////////////////////////////////// AJAMERKKIKOODIN SIPPETTI
/////////////////////////
Serial.println ("inside get timestamp / n");
jos
(! client.connect (aikapalvelin, {
palata;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/aikaleima HTTP/1.1"); // Mitä tämä osa tekee, en saanutclient.println ("Isäntä: baas.thethingscloud.com");client.println ("Välimuistin hallinta: ei välimuistia");client.println ("Postimies-tunnus: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp ();
// se kutsuu funktion, joka saa aikaleiman vastauksen palvelimelta
Serial.println ("aikaleima vastaanotettu");
Serial.println (aikaleima);Serial.println ("sisällä ThingsCloudPost");
Merkkijono PostValue =
"{" device_id / ": 61121695918, \" orjatunnus / ": 2";
Postiarvo =
PostValue + ", \" dts / ":" + aikaleima;
Postiarvo =
PostValue +", \" data / ": {" KOSTEUS ":" +arvo +"}" +"}";Serial.println (PostValue);
/ * luo WiFiClientSecure -ilmentymä */
WiFiClientSecure -asiakas;Serial.println ("Yhdistä palvelimeen portin 443 kautta");
jos
(! client.connect (palvelin, 443)) {Serial.println ("Yhteys epäonnistui!");
} muuta {Serial.println ("Yhdistetty palvelimeen!");
/* luo
pyyntö */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Isäntä: api.thingsai.io");//asiakas.println ("Yhteys: sulje");client.println ("Sisältötyyppi: application/json");
client.println ( cache-control:
välimuisti ");client.println ("Valtuutus: Siirtotie eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs2f2x2x2X2K2KWDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXclient.print ("Content-Length:");
client.println (PostValue.length ());client.println ();client.println (PostValue);
///////////////////////////////////////////////// Tietojen julkaiseminen
pilvi on valmis ja hae nyt vastauslomake pilvipalvelimelta ///////////////////
Serial.print ( Odotan vastausta
);
sillä aikaa
(! client.available ()) {
viive (50);
//Serial.print (".");
}
/* jos tiedot ovat
käytettävissä ja vastaanota ja tulosta päätelaitteeseen */
sillä aikaa
(client.available ()) {
char c = asiakas.luku ();Serial.write (c);
}
/* jos
palvelin irrotettu, pysäytä asiakas */
jos
(! client.connected ()) {Sarja.println ();Serial.println ("Palvelin irrotettu");
client.stop ();
}
}
Serial.println ( /////////////////////// LOPPU
///////////////////// );
viive (3000);
}
}
Vaihe 4: LÄHTÖ:

Koodin lähtö näkyy.
Vaihe 5: KAAVIO

Tämä on graafinen esitys arvoista, jotka luetaan anturista.
Vaihe 6:

Tässä on täydellinen video projektista. Kiitos.
Suositeltava:
Maaperän kosteuden mittaaminen Raspberry Pi -laitteella 4: 4 askelta

Maaperän kosteuden mittaaminen Raspberry Pi 4: llä: Tiedätkö kuinka usein kastaa kasveja? Tai vuotanut kasveja ja menettänyt ne. Tämän ratkaisemiseksi ajattelin, että olisi epäolennaisempaa, jos saisimme maaperän vesipitoisuuden arvon, jotta voimme tehdä päätöksen kasvien kastelusta
Alhaisen kosteuden maaperän hälytysjärjestelmä kasveillesi: 5 vaihetta

Hälytysjärjestelmä vähäkosteisesta maaperästä kasveillesi: Useissa asunnoissa on tavallista löytää purkkeja, joissa on erilaisia kasveja. Monien päivittäisten aktiviteettien ansiosta ihmiset unohtavat kastaa kasvejaan ja lopulta kuolevat veden puutteen vuoksi. Jotta voimme välttää tämän ongelman, päätimme
IoT -pohjainen maaperän kosteuden seuranta- ja ohjausjärjestelmä NodeMCU: n avulla: 6 vaihetta

IoT-pohjainen maaperän kosteuden seuranta- ja ohjausjärjestelmä NodeMCU: n avulla: Tässä opetusohjelmassa aiomme ottaa käyttöön IoT-pohjaisen maaperän kosteuden seuranta- ja ohjausjärjestelmän ESP8266 WiFi -moduulin eli NodeMCU: n avulla. INR) Relemoduuli- Amazon (130/- INR
Maaperän kosteuden mittaaminen Arduinolla: 6 vaihetta

Maaperän kosteuden mittaaminen Arduinolla: Tässä nopeassa opetusohjelmassa näytän sinulle, kuinka voit lukea maaperän kosteusanturin arduino -ohjelmalla ja tulostaa maaperän kosteustason Arduino -sarjamonitorista. Löydät minun kirjoittamani alkuperäisen postauksen Sinhalasta tämän linkin takaa
Maaperän kosteuden tunnistaminen - SF: 4 vaihetta (kuvilla)

Maaperän kosteuden tunnistaminen - SF: Aloittaaksemme testisuunnitelman aloitimme tavoitteellamme, joka oli suunnitella laite, joka kykenisi havaitsemaan, onko maaperänäyte sateesta märkä vai ei. Suunnitelman toteuttamiseksi meidän oli opittava käyttämään ja asettamaan maaperän kosteutta oikein