Tartalomjegyzék:
- 1. lépés: ALKOTRÉSZEK
- 2. lépés: KAPCSOLATOK
- 3. lépés: KÓDOLÁS:
- 4. lépés: KIMENET:
- 5. lépés: Grafikon
- 6. lépés:
Videó: A talaj nedvességtartalmának mérése az Esp32 és a Thingsio.ai platform használatával: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ebben az oktatóanyagban elmagyarázom a talaj nedvességtartalmának az esp32 használatával történő leolvasását, majd az értékek elküldését a thingsio.ai IoT felhőplatformra.
1. lépés: ALKOTRÉSZEK
Hardver alkatrészek:
1. esp32 fejlesztőtábla
2. Talajérzékelő
3. Jumper vezetékek
Szoftver:
1. Arduino IDE
2. Thingsio.ai
2. lépés: KAPCSOLATOK
Talajnedvesség érzékelő ---------------------- esp32 Board
VCC --------------------------------------- 3V3
GND -------------------------------------- GND
A0 ---------------------------------------- VP
3. lépés: KÓDOLÁS:
#befoglalni
#befoglalni
#befoglalni
int szám = 0, i, m, j, k;
int t;
int sensor_pin = A0;
int érték;
//////////////////////////////////////////////////////// MINDEN NYILATKOZAT
a CLOUD //////////////////////////////
const char* host = "api.thingsai.io"; // VAGY gazdagép =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; VAGY
/api/v2/thingscloud2/_table/data_ac
const char* time_server =
"baas.thethingscloud.com"; // ez az időbélyeg konvertálása
const int httpPort = 80;
const int httpsPort = 443;
const char* szerver =
"api.thingsai.io"; // Szerver URL -címe
char időbélyeg [10];
WiFiMulti WiFiMulti;
// A WiFiClient osztály használata TCP kapcsolatok létrehozásához
WiFiClient kliens;
/////////////////////////////////////// IDŐBÉLYEG
SZÁMÍTÁS funkció ///////////////////////////////////////
int GiveMeTimestamp ()
{
aláíratlan hosszú
timeout = millis ();
// WiFiClient kliens;
míg
(client.available () == 0)
{
ha (millis () -
időtúllépés> 50000)
{
client.stop ();
visszatérés 0;
}
}
míg (client.available ())
{
Karakterlánc =
client.readStringUntil ('\ r'); // Az indexOf () az smthng keresésére szolgáló funkció, -1 -et ad vissza, ha nem találja
int pos =
line.indexOf ("\" időbélyeg / ""); // keresse a "\" időbélyeg / "" kifejezést a válasz elejétől, majd másolja le az összes adatot, ez lesz az Ön időbélyege
ha (pos> =
0)
{
int j = 0;mert (j = 0; j <10; j ++)
{időbélyeg [j] = sor [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
üres beállítás ()
{Sorozat.kezdet (115200);Serial.println ("Olvasás az érzékelőből …");
késleltetés (2000);
// Kezdjük azzal
csatlakozás egy WiFi hálózathoz
WiFiMulti.addAP ("Wifi_név", "Wifi_Password");
Sorozat.println ();
Sorozat.println ();Serial.print ("Wait for WiFi …");while (WiFiMulti.run ()! = WL_CONNECTED) {Soros.nyomtatás (".");
késleltetés (500);
}Serial.println ("");Serial.println ("WiFi csatlakoztatva");
Serial.println ( IP
cím: );Serial.println (WiFi.localIP ());
késleltetés (500);
}
üres hurok ()
{
{
/////////////////////////////////////////////////////////////-
FOGADJA A VÁLASZOT ///////////////////////
érték =
analogRead (sensor_pin);
// érték =
térkép (érték, 550, 0, 0, 100);Serial.print ("Mositure:");Serial.print (érték);Serial.println ("%");késleltetés (1000);Serial.print ("csatlakozás");Serial.println (gazdagép); // definiált fejjel:- host = devapi2.thethingscloud.com vagy 139.59.26.117
///////////////////////////////////////////////////// TIMESTAMP CODE SNIPPET
/////////////////////////
Serial.println ("inside get timestamp / n");
ha
(! client.connect (time_server, {
Visszatérés;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/időbélyeg HTTP/1.1"); // Mit csinál ez a rész, nem értettemclient.println ("Gazdagép: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postás-jelző: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp ();
// meghívja a függvényt, amely megkapja az időbélyeg -választ a szervertől
Serial.println ("időbélyeg érkezett");
Serial.println (időbélyeg);Serial.println ("belül ThingsCloudPost");
Karakterlánc PostValue =
"{" device_id / ": 61121695918, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + időbélyeg;
PostValue =
PostValue +", \" adatok / ": {" Páratartalom / ":" +érték +"}" +"}";Serial.println (PostValue);
/ * hozzon létre egy WiFiClientSecure példányt */
WiFiClientSecure kliens;Serial.println ("Csatlakozás a szerverhez a 443 -as porton keresztül");
ha
(! client.connect (szerver, 443)) {Serial.println ("A kapcsolat nem sikerült!");
} más {Serial.println ("Csatlakoztatva a szerverhez!");
/* HTTP létrehozása
kérés */client.println ("POST/devices/deviceData HTTP/1.1");client.println ("Gazdagép: api.thingsai.io");//client.println("Connection: close ");client.println ("Tartalom-típus: application/json");
client.println ( cache-control:
nincs gyorsítótár ");client.println ("Jogosultság: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqs22kvt5kvkclient.print ("Content-Length:");
client.println (PostValue.length ());client.println ();client.println (PostValue);
//////////////////////////////////// Az adatok közzététele a
a felhő elkészült, és most megkapja a válasz formáját felhő szerver //////////////////
Serial.print ( Válaszra vár
);
míg
(! client.available ()) {
késleltetés (50);
//Soros.nyomtatás (".");
}
/* ha az adatok
elérhető, majd fogadja és nyomtatja a terminálra */
míg
(client.available ()) {
char c = kliens.olvasás ();Soros.írás (c);
}
/* ha a
a szerver leválasztva, állítsa le az ügyfelet */
ha
(! client.connected ()) {Sorozat.println ();Serial.println ("A kiszolgáló leválasztva");
client.stop ();
}
}
Serial.println ( ////////////////////// A VÉGE
///////////////////// );
késleltetés (3000);
}
}
4. lépés: KIMENET:
Megjelenik a kód kimenete.
5. lépés: Grafikon
Ez az érzékelő által leolvasott értékek grafikus ábrázolása.
6. lépés:
Itt a teljes videó a projektről. Köszönöm.
Ajánlott:
A motor fordulatszámának mérése Arduino használatával: 6 lépés
Motor fordulatszám mérés Arduino használatával: Nehéz mérni a motor fordulatszámát ??? Nem hiszem. Itt van egy egyszerű megoldás. Csak egy infravörös érzékelő és Arduino a készletben teheti meg ezt. Ebben a bejegyzésben adok egy egyszerű oktatóanyagot, amely elmagyarázza, hogyan lehet mérni bármely motor fordulatszámát infravörös érzékelő és A
Hőmérséklet mérése AD7416ARZ és Raspberry Pi használatával: 4 lépés
Hőmérsékletmérés az AD7416ARZ és a Raspberry Pi segítségével: Az AD7416ARZ 10 bites hőmérséklet-érzékelő négy egycsatornás analóg-digitális átalakítóval és egy beépített hőmérséklet-érzékelővel. Az alkatrészek hőmérséklet -érzékelője multiplexer csatornákon keresztül érhető el. Ez a nagy pontosságú hőmérséklet
Tápegység frekvencia és feszültség mérése Arduino használatával: 6 lépés
Tápegység frekvenciájának és feszültségének mérése Arduino használatával: Bevezetés: A projekt célja az ellátási frekvencia és feszültség mérése, ami itt, Indiában 220-240 V és 50 Hz között van. Arduino -t használtam a jel rögzítésére, a frekvencia és a feszültség kiszámítására, bármilyen más mikrokonzont is használhat
Hőmérsékletmérés az Esp32 és a Thingsio.ai platform használatával: 6 lépés
Hőmérsékletmérés az Esp32 és a Thingsio.ai platform használatával: Ebben az oktatóanyagban elmagyarázom a környezet hőmérsékletének mérését az esp32 fejlesztőlapon található beépített hőmérséklet -érzékelő használatával. Az esp32 számos beépített érzékelővel rendelkezik, mint például a hall érzékelő, amelyet közelségérzékelőként használnak, érintse meg
A talaj nedvességének mérése hang amplitúdókkal: 6 lépés (képekkel)
A talaj nedvességének mérése hang -amplitúdókkal: Ebben az oktatóanyagban elmagyarázzuk, hogyan lehet olyan eszközt készíteni, amely hang amplitúdójával méri a talaj nedvességtartalmát