Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
U ovom vodiču ću objasniti mjerenje blizine uređaja i objavljivanje vrijednosti na Thingsai, io cloud platformi pomoću Hall senzora i razvojne ploče esp32.
Hall -ov senzor je uređaj koji se koristi za mjerenje veličine magnetskog polja. Njegov izlazni napon izravno je proporcionalan jakosti magnetskog polja kroz njega. Senzori Hall efekta koriste se za primjenu senzora blizine, pozicioniranja, otkrivanja brzine i mjerenja struje.
Korak 1: KOMPONENTE
Hardverske komponente:
1. Hall senzor
2. razvojna ploča esp32
3. Žice za kratkospojnike
Softverske komponente:
1. Arduino IDE
2. StvariIO. AI
Korak 2: POVEZIVANJA:
Hall senzor ---------------------- esp32
Izlaz ------------------------------ vp
Gnd ----------------------------- Gnd
Vcc ------------------------------ 3V3
Korak 3: KODIRANJE:
#uključi
#uključi
#uključi
int broj = 0, i, m, j, k;
int mjerenje;
int outputpin = A0; // ds18b20
//////////////////////////////////////////// SVE IZJAVE
za CLOUD ////////////////////////////////
const char* host = "api.thingsai.io"; // ILI host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // ILI
/api/v2/thingscloud2/_table/data_ac
const char* poslužitelj_vremena =
"baas.thethingscloud.com"; // ovo je za pretvaranje vremenske oznake
const int httpPort = 80;
const int httpsPort = 443;
const char* poslužitelj =
"api.thingsai.io"; // URL poslužitelja
char vremenska oznaka [10];
WiFiMulti WiFiMulti;
// Koristite klasu WiFiClient za stvaranje TCP veza
WiFiClient klijent;
/////////////////////////////////////////// TIMESTAMP
CALCULATION funkcija ///////////////////////////////////////////
int GiveMeTimestamp ()
{
bez potpisa dugo
timeout = millis ();
// WiFiClient klijent;
dok
(client.available () == 0)
{
ako (millis () -
istek> 50000)
{
client.stop ();
return 0;
}
}
while (client.available ())
{
Linija niza =
client.readStringUntil ('\ r'); // indexOf () je funkcija za traženje smthng -a, vraća -1 ako nije pronađeno
int pos =
line.indexOf ("\" vremenska oznaka / ""); // potražite "\" timestamp / "" od početka odgovora i kopirajte sve podatke nakon toga, to će biti vaša vremenska oznaka
ako (pos> =
0)
{
int j = 0;za (j = 0; j <10; j ++)
{vremenska oznaka [j] = redak [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup ()
{Serial.begin (115200);
kašnjenje (10);
// Počinjemo s
povezivanje s WiFi mrežom
WiFiMulti.addAP ("wifi_name", "wifi_password");
Serial.println ();
Serial.println ();Serial.print ("Pričekajte WiFi …");while (WiFiMulti.run ()! = WL_CONNECTED) {{100} {101}Serial.print (".");
kašnjenje (500);
}Serial.println ("");Serial.println ("WiFi povezan");Serial.println ("IP adresa:");
Serial.println (WiFi.localIP ());
kašnjenje (500);
}
void loop ()
{
int analognaVrijednost =
analogRead (outputpin);
{
/////////////////////////////////////////// POŠALJITE UPIT I
PRIMITE ODGOVOR /////////////////////////
int mjerenje
= 0;
mjerenje =
hallRead ();Serial.print ("Mjerenje Hall senzora:");Serial.println (mjerenje);
kašnjenje (1000);Serial.print ("povezivanje s");Serial.println (host); // definirano na gore:- host = devapi2.thethingscloud.com ili 139.59.26.117
//////////////////////////////////////// TIMESTAMP KOD SNIPPET
/////////////////////////
Serial.println ("unutar get vremenska oznaka / n");
ako
(! client.connect (time_server, {
povratak;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/vremenska oznaka HTTP/1.1"); // Što ovaj dio radi, nisam shvatioclient.println ("Domaćin: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Token poštara: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // pozvat će funkciju
koji će od poslužitelja dobiti odgovor vremenske oznake
Serial.println ("primljena vremenska oznaka");
Serial.println (vremenska oznaka);Serial.println ("unutar ThingsCloudPosta");
Niz PostValue =
"{" device_id / ": 61121696007, \" slave_id / ": 2";
PostVrijednost =
PostValue + ", \" dts / ":" + vremenska oznaka;
PostVrijednost =
PostValue +", \" data / ": {" proximity / ":" +mjerenje +"}" +"}";Serial.println (PostValue);
/ * stvorite instancu WiFiClientSecure */
WiFiClientSecure klijent;Serial.println ("Povežite se sa poslužiteljem putem porta 443");
ako
(! client.connect (poslužitelj, 443)) {Serial.println ("Veza nije uspjela!");
} else {Serial.println ("Povezano sa poslužiteljem!");
/* stvoriti
zahtjev */
client.println ( POST
/devices/deviceData HTTP/1.1 ");client.println ("Domaćin: api.thingsai.io");//client.println("Connection: close ");client.println ("Vrsta sadržaja: aplikacija/json");client.println ("cache-control: no-cache");
client.println ( Autorizacija:
Donositelj eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9j;client.print ("Content-Length:");client.println (PostValue.length ());
client.println ();client.println (PostValue);
////////////////////////////////////// OBJAVLJIVANJE podataka na
oblak je gotov i sada dobijte odgovor na poslužitelju u oblaku //////////////////
Serial.print ( Čeka se odgovor
);
dok
(! client.available ()) {
kašnjenje (50);
//Serial.print (".");
}
/* ako su podaci
dostupno, zatim primite i ispišite na terminal */
dok
(client.available ()) {
char c =
client.read ();Serial.write (c);
}
/ * ako je poslužitelj isključen, zaustavite klijenta */
ako
(! client.connected ()) {Serial.println ();Serial.println ("Poslužitelj je isključen");client.stop ();
}
}
Serial.println ( ////////////////////////// KRAJ
///////////////////// );
kašnjenje (3000);
}}
Korak 4: REZULTAT:
Vrijednosti koje se očitavaju sa senzora uspješno se šalju u IOT oblak i grafikon se stvara kao blizina u odnosu na vrijeme. Time se analizira rad senzora i koristi se prema potrebnim područjima primjene.
Korak 5: Cijeli vodič:
Ovo je cijeli projekt za mjerenje blizine uređaja pomoću Hall senzora esp32 i cloudsai.io platforme. Hvala vam