Cuprins:
- Pasul 1: COMPONENTE
- Pasul 2: CONEXIUNI:
- Pasul 3: CODIFICARE:
- Pasul 4: REZULTAT:
- Pasul 5: Tutorial complet:
Video: Măsurarea proximității: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
În acest tutorial voi explica despre măsurarea proximității unui dispozitiv și publicarea valorilor în platforma de cloud Thingsai, io folosind senzorul de hol și placa de dezvoltare esp32.
Un senzor de efect Hall este un dispozitiv care este utilizat pentru a măsura magnitudinea unui câmp magnetic. Tensiunea sa de ieșire este direct proporțională cu intensitatea câmpului magnetic prin ea. Senzorii de efect Hall sunt utilizați pentru aplicații de detectare a proximității, poziționare, detectare a vitezei și detectare a curentului.
Pasul 1: COMPONENTE
Componente hardware:
1. Senzor Hall
2. placa de dezvoltare esp32
3. Firele jumperului
Componente software:
1. IDE Arduino
2. LucruriIO. AI
Pasul 2: CONEXIUNI:
Senzor Hall ---------------------- esp32
În afară de ------------------------------ vp
Gnd ----------------------------- Gnd
Vcc ------------------------------ 3V3
Pasul 3: CODIFICARE:
#include
#include
#include
int count = 0, i, m, j, k;
măsurare int;
int outputpin = A0; // ds18b20
////////////////////////////////////////// TOATE DECLARAȚIILE
pentru CLOUD ////////////////////////////////
const char * host = "api.thingsai.io"; // SAU gazdă =
devapi2.thethingscloud.com
const char * post_url = "/ devices / deviceData"; // SAU
/ api / v2 / thingscloud2 / _table / data_ac
const char * time_server =
„baas.thethingscloud.com”; // aceasta este pentru a converti marca de timp
const int httpPort = 80;
const int httpsPort = 443;
const char * server =
"api.thingsai.io"; // Adresa URL a serverului
timestamp char [10];
WiFiMulti WiFiMulti;
// Utilizați clasa WiFiClient pentru a crea conexiuni TCP
Client WiFiClient;
/////////////////////////////////////// TIMESTAMP-UL
Funcția CALCUL // /////////////////////////////////////////
int GiveMeTimestamp ()
{
nesemnat mult
timeout = milis ();
// client WiFiClient;
in timp ce
(client.available () == 0)
{
if (milis () -
expirare> 50000)
{
client.stop ();
retur 0;
}
}
while (client.available ())
{
Linia șirului =
client.readStringUntil ('\ r'); // indexOf () este o funcție pentru a căuta smthng, returnează -1 dacă nu este găsit
int pos =
line.indexOf ("\" timestamp / ""); // căutați "\" timestamp / "" de la începutul răspunsului și copiați toate datele după aceea, va fi marca dvs. de timp
if (pos> =
0)
{
int j = 0;pentru (j = 0; j <10; j ++)
{timestamp [j] = line [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
configurare nulă ()
{Serial.begin (115200);
întârziere (10);
// Începem prin
conectarea la o rețea WiFi
WiFiMulti.addAP ("wifi_name", "parolă_wifi");
Serial.println ();
Serial.println ();Serial.print („Așteptați WiFi …”);while (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
întârziere (500);
}Serial.println ("");Serial.println ("WiFi conectat");Serial.println ("adresa IP:");
Serial.println (WiFi.localIP ());
întârziere (500);
}
bucla nulă ()
{
int analogValue =
analogRead (ieșire);
{
///////////////////////////////////////// TRIMITE CERERE ȘI
PRIMI RĂSPUNSUL /////////////////////////
măsurare int
= 0;
măsurare =
hallRead ();Serial.print ("Măsurarea senzorului Hall:");Serial.println (măsurare);
întârziere (1000);Serial.print („conectarea la”);Serial.println (gazdă); // definită invers: - host = devapi2.thethingscloud.com sau 139.59.26.117
/////////////////////////////////////// COD TIMESTAMP SNIPPET
/////////////////////////
Serial.println ("inside get timestamp / n");
dacă
(! client.connect (time_server, {
întoarcere;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET / api / timestamp HTTP / 1.1"); // Ce face această parte, nu am primitclient.println („Gazdă: baas.thethingscloud.com”);client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // va apela funcția
care va primi răspunsul de timestamp de la server
Serial.println ("timestamp primit");
Serial.println (timestamp);Serial.println („în interiorul ThingsCloudPost”);
String PostValue =
"{" device_id / ": 61121696007, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + timestamp;
PostValue =
PostValue + ", \" data / ": {" prossimitate / ":" + măsurare + "}" + "}";Serial.println (PostValue);
/ * creați o instanță WiFiClientSecure * /
Client WiFiClientSecure;Serial.println („Conectare la server prin portul 443”);
dacă
(! client.connect (server, 443)) {Serial.println ("Conexiunea a eșuat!");
} altceva {Serial.println ("Conectat la server!");
/ * creați
cerere */
client.println ( POST
/ devices / deviceData HTTP / 1.1 ");client.println ("Gazdă: api.thingsai.io");//client.println("Connection: close ");client.println ("Content-Type: application / json");client.println ("cache-control: no-cache");
client.println ( Autorizație:
Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9td;client.print („Lungime conținut:”);client.println (PostValue.length ());
client.println ();client.println (PostValue);
//////////////////////////////////// PUBLICAREA datelor pe
cloud este gata și acum obțineți formularul de răspuns server cloud //////////////////
Serial.print („Se așteaptă răspunsul
);
in timp ce
(! client.available ()) {
întârziere (50);
//Serial.print (".");
}
/ * dacă datele sunt
disponibil apoi primiți și tipăriți la Terminal * /
in timp ce
(client.available ()) {
char c =
client.read ();Serial.write (c);
}
/ * dacă serverul s-a deconectat, opriți clientul * /
dacă
(! client.connected ()) {Serial.println ();Serial.println („Server deconectat”);client.stop ();
}
}
Serial.println ( //////////////////////// SFÂRȘITUL
///////////////////// );
întârziere (3000);
}}
Pasul 4: REZULTAT:
Valorile care sunt citite de la senzor sunt trimise cu succes în cloud IOT și graficul este creat ca proximitate vs timp. Cu aceasta, funcționarea senzorului este analizată și utilizată în funcție de domeniile de aplicare necesare.
Pasul 5: Tutorial complet:
Acesta este proiectul complet pentru măsurarea proximității unui dispozitiv utilizând senzorul de hală esp32 și platforma cloud thingsai.io. Mulțumesc
Recomandat:
Măsurarea vitezei motorului utilizând Arduino: 6 pași
Măsurarea vitezei motorului utilizând Arduino: Este dificil să măsoară rpm-ul motorului? Nu cred. Iată o soluție simplă. Doar un senzor IR și Arduino din kitul dvs. pot face acest lucru. În acest post vă voi oferi un tutorial simplu care explică cum să măsurați RPM-ul oricărui motor folosind senzorul IR și A
Măsurarea timpului (ceas cu bandă măsurată): 5 pași (cu imagini)
Time Measure (Tape Measure Clock): Pentru acest proiect, noi (Alex Fiel și Anna Lynton) am luat un instrument de măsurare zilnic și l-am transformat într-un ceas! Planul inițial era de a motoriza o bandă-măsură existentă. Făcând asta, am decis că ar fi mai ușor să ne creăm propriul shell pentru a merge cu
Măsurarea temperaturii: 7 pași
Măsurarea temperaturii:
Măsurarea temperaturii folosind XinaBox și un termistor: 8 pași
Măsurarea temperaturii folosind XinaBox și un termistor: Măsurați temperatura unui lichid folosind o intrare analogică xChip de la XinaBox și o sondă cu termistor
4 pași pentru măsurarea rezistenței interne a bateriei: 4 pași
4 pași pentru măsurarea rezistenței interne a bateriei: Iată cei 4 pași simpli care vă pot ajuta să măsurați rezistența internă a bateriei