Sadržaj:
- Korak 1: KOMPONENTE
- Korak 2: POVEZIVANJA:
- Korak 3: KODIRANJE:
- Korak 4: REZULTAT:
- Korak 5: Cijeli vodič:
Video: Mjerenje blizine: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
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
Preporučeni:
Raspberry Pi - TMD26721 Infracrveni digitalni detektor blizine Java Vodič: 4 koraka
Raspberry Pi-TMD26721 Infracrveni digitalni detektor blizine Java Tutorial: TMD26721 je infracrveni digitalni detektor blizine koji pruža potpuni sustav za otkrivanje blizine i logiku digitalnog sučelja u jednom 8-pinskom modulu za površinsko montiranje. Detekcija blizine uključuje poboljšani signal-šum i točnost. Profesionalac
Visuino Kako koristiti induktivni senzor blizine: 7 koraka
Visuino Kako koristiti induktivni senzor blizine: U ovom ćemo vodiču koristiti induktivni senzor blizine i LED diodu povezanu na Arduino UNO i Visuino za otkrivanje metalne blizine. Pogledajte demonstracijski video
Napravite senzor blizine s Magicbitom [Magicblocks]: 6 koraka
Napravite senzor blizine s Magicbitom [Magicblocks]: Ovaj vodič će vas naučiti koristiti senzor blizine s Magicbitom pomoću Magicblocks -a. Koristimo magicbit kao razvojnu ploču u ovom projektu koji se temelji na ESP32. Stoga se u ovom projektu može koristiti bilo koja razvojna ploča ESP32
Zračni klavir pomoću IC senzora blizine, zvučnika i Arduino Uno (nadograđeno/dio 2): 6 koraka
Zračni klavir pomoću IC senzora blizine, zvučnika i Arduino Uno (nadograđeno/dio 2): Ovo je nadograđena verzija prethodnog projekta zračnog klavira?. Ovdje koristim JBL zvučnik kao izlaz. Uključio sam i gumb osjetljiv na dodir za promjenu načina rada prema zahtjevima. Na primjer- Način tvrdog basa, Normalni način, Visoka fr
Zračni klavir pomoću IC senzora blizine i Arduino Uno Atmega 328: 6 koraka (sa slikama)
Zračni klavir pomoću infracrvenog senzora blizine i Arduino Uno Atmega 328: Uobičajeno, glasoviri, bilo električni ili mehanički, rade na jednostavnom mehanizmu pritiskanja gumba. Ali evo zaokreta, mogli bismo jednostavno ukloniti potrebu za tipkama u glasoviru pomoću nekih senzora. Infracrveni senzori blizine najbolje odgovaraju uzroku jer t