Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Në këtë tutorial do të shpjegoj në lidhje me matjen e afërsisë së një pajisjeje dhe publikimin e vlerave në platformën cloud Thingsai, io duke përdorur sensorin e sallës dhe bordin e zhvillimit esp32.
Një sensor efekti Hall është një pajisje që përdoret për të matur madhësinë e një fushe magnetike. Tensioni i daljes së tij është drejtpërdrejt proporcional me fuqinë e fushës magnetike përmes saj. Sensorët e efektit Hall përdoren për zbulimin e afërsisë, pozicionimin, zbulimin e shpejtësisë dhe aplikimet aktuale të ndijimit.
Hapi 1: PMPRBRSIT
Komponentët e harduerit:
1. Sensori i Hallit
2. bordi i zhvillimit esp32
3. Telat e kërcyesit
Komponentët e Softuerit:
1. Arduino IDE
2. GjëratIO. AI
Hapi 2: LIDHJET:
Sensori i sallës ---------------------- esp32
Aout ------------------------------ vp
Gnd ---------------------------- Gnd
Vcc ------------------------------ 3V3
Hapi 3: KODIMI:
#përfshi
#përfshi
#përfshi
int numërimi = 0, i, m, j, k;
matja int;
int outputpin = A0; // ds18b20
//////////////////////////////////////// GJITHA DEKLARATAT
për CLOUD ///////////////////////////////
const char* host = "api.thingsai.io"; // OSE host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // OSE
/api/v2/thingscloud2/_table/data_ac
const char* serveri i kohës =
"baas.thethingscloud.com"; // kjo është për të konvertuar vulën kohore
const int httpPort = 80;
const int httpsPort = 443;
const char* server =
"api.thingsai.io"; // URL e serverit
vula e kohës char [10];
WiFiMulti WiFiMulti;
// Përdorni klasën WiFiClient për të krijuar lidhje TCP
Klienti WiFiClient;
//////////////////////////////////////// TIMESTAMP
Funksioni i llogaritjes ////////////////////////////////////////
int GiveMeTimestamp ()
{
pa firmosur gjatë
timeout = millis ();
// klienti WiFiClient;
derisa
(klienti i disponueshëm () == 0)
{
nëse (milis () -
timeout> 50000)
{
client.stop ();
kthimi 0;
}
}
ndërsa (klienti i disponueshëm ())
{
Linja e vargut =
client.readStringUntil ('\ r'); // indexOf () është një funksion për të kërkuar smthng, ai kthen -1 nëse nuk gjendet
int pos =
line.indexOf ("\" afati kohor / ""); // kërko për "\" timestamp / "" që nga fillimi i përgjigjes mori dhe kopjo të gjitha të dhënat pas kësaj, do të jetë vula juaj kohore
nëse (pos> =
0)
{
int j = 0;për (j = 0; j <10; j ++)
{vula kohore [j] = rreshti [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup ()
{Serial.filloj (115200);
vonesa (10);
// Fillojmë nga
lidhja me një rrjet WiFi
WiFiMulti.addAP ("emri wifi", "fjalëkalim wifi");
Serial.println ();
Serial.println ();Serial.print ("Prisni për WiFi …");ndërsa (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
vonesë (500);
}Serial.println ("");Serial.println ("WiFi i lidhur");Serial.println ("Adresa IP:");
Serial.println (WiFi.localIP ());
vonesë (500);
}
lak void ()
{
int analogVlera =
analogRead (outputpin);
{
//////////////////////////////////////// DENDRGUAR PYETJEN DHE
MERRNI PESRGJIGJEN ///////////////////////
matja int
= 0;
matje =
hallRead ();Serial.print ("Matja e sensorit të sallës:");Serial.println (matja);
vonesa (1000);Serial.print ("lidh me");Serial.println (host); // e përcaktuar me kokë:- host = devapi2.thethingscloud.com ose 139.59.26.117
/////////////////////////////////////// TIMESTAMP KODI SNIPPET
/////////////////////////
Serial.println ("brenda merrni vulën kohore / n");
nëse
(! client.connect (server_ kohor, {
kthim;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/timestamp HTTP/1.1"); // Çfarë bën kjo pjesë, nuk e kuptovaclient.println ("Pritësi: baas.thethingscloud.com");client.println ("Cache-Control: pa-cache");client.println ("Postier-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klient.println ();
GiveMeTimestamp (); // do të thërrasë funksionin
i cili do të marrë përgjigjen e afatit kohor nga serveri
Serial.println ("vula kohore e marrë");
Serial.println (vula kohore);Serial.println ("brenda ThingsCloudPost");
String PostValue =
"{" device_id / ": 61121696007, \" slave_id / ": 2";
Vlera Post =
PostValue + ", \" dts / ":" + vula kohore;
Vlera Postare =
PostValue +", \" data / ": {" afërsi / ":" +matje +"}" +"}";Serial.println (PostValue);
/ * krijoni një shembull të WiFiClientSecure */
Klient WiFiClientSecure;Serial.println ("Lidhu me serverin përmes portit 443");
nëse
(! client.connect (server, 443)) {Serial.println ("Lidhja dështoi!");
} tjetër {Serial.println ("I lidhur me serverin!");
/* krijoni
kërkesë */
client.println ( POST
/pajisje/pajisjeData HTTP/1.1 ");client.println ("Pritësi: api.thingsai.io");//client.println("Lidhja: mbyll ");client.println ("Lloji i përmbajtjes: aplikacion/json");client.println ("cache-control: pa-cache");
client.println ( Autorizimi:
Mbartësi eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9d;client.print ("Përmbajtja-Gjatësia:");client.println (PostValue.length ());
klient.println ();client.println (PostValue);
/////////////////////////////////// POSTIMI i të dhënave në
cloud është përfunduar dhe tani merrni përgjigjen nga serveri cloud //////////////////
Serial.print ( Në pritje të përgjigjes
);
derisa
(! client.available ()) {
vonesë (50);
//Serial.print (".");
}
/* nëse të dhënat janë
e disponueshme pastaj merrni dhe printoni në Terminal */
derisa
(client.available ()) {
char c =
client.read ();Serial.shkruani (c);
}
/ * nëse serveri është shkëputur, ndaloni klientin */
nëse
(! client.connected ()) {Serial.println ();Serial.println ("Serveri u shkëput");client.stop ();
}
}
Serial.println ( ////////////////////// FUNDI
///////////////////// );
vonesë (3000);
}}
Hapi 4: REZULTATI:
Vlerat që lexohen nga sensori po dërgohen me sukses në cloud IOT dhe grafiku po krijohet si afërsi kundrejt kohës. Me këtë puna e sensorit analizohet dhe përdoret sipas fushave të kërkuara të aplikimit.
Hapi 5: Udhëzues i plotë:
Ky është projekti i plotë për matjen e afërsisë së një pajisjeje duke përdorur sensorin e sallës esp32 dhe platformën cloud thingsi.io. Faleminderit