INHOUDSOPGAWE:
- Stap 1: KOMPONENTE
- Stap 2: AANSLUITINGS:
- Stap 3: KODERING:
- Stap 4: RESULTAT:
- Stap 5: Voltooi handleiding:
Video: Meting van nabyheid: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
In hierdie tutoriaal gaan ek verduidelik oor die meting van die nabyheid van 'n toestel en die publisering van die waardes in die Thingsai, io -wolkplatform deur gebruik te maak van saalsensor en esp32 -ontwikkelbord.
'N Hall -effek sensor is 'n toestel wat gebruik word om die grootte van 'n magnetiese veld te meet. Die uitgangsspanning daarvan is direk eweredig aan die magnetiese veldsterkte daardeur. Hall -effek sensors word gebruik vir nabyheidswaarneming, posisionering, spoedopsporing en stroomwaarnemingstoepassings.
Stap 1: KOMPONENTE
Hardeware komponente:
1. Hall Sensor
2. esp32 ontwikkelingsbord
3. Springdrade
Sagteware komponente:
1. Arduino IDE
2. ThingsIO. AI
Stap 2: AANSLUITINGS:
Hallsensor ---------------------- esp32
Uit ------------------------------ vp
Gnd ---------------------------- Gnd
Vcc ------------------------------ 3V3
Stap 3: KODERING:
#insluit
#insluit
#insluit
int telling = 0, i, m, j, k;
int meting;
int outputpin = A0; // ds18b20
/////////////////////////////////////////////////////
vir CLOUD ////////////////////////////////////
const char* host = "api.thingsai.io"; // OF gasheer =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // OF
/api/v2/thingscloud2/_table/data_ac
const char* time_server =
"baas.thethingscloud.com"; // dit is om die tydstempel om te skakel
const int httpPort = 80;
const int httpsPort = 443;
const char* bediener =
"api.thingsai.io"; // Bediener -URL
char tydstempel [10];
WiFiMulti WiFiMulti;
// Gebruik WiFiClient -klas om TCP -verbindings te skep
WiFiClient -kliënt;
/////////////////////////////////////// TYDSTEMPEL
BEREKENING funksie ///////////////////////////////////////////
int GiveMeTimestamp ()
{
ongeteken lank
time -out = millis ();
// WiFiClient -kliënt;
terwyl
(client.available () == 0)
{
as (millis () -
time -out> 50000)
{
client.stop ();
terugkeer 0;
}
}
terwyl (client.available ())
{
String line =
client.readStringUntil ('\ r'); // indexOf () is 'n funksie om na smthng te soek, dit gee -1 as dit nie gevind word nie
int pos =
line.indexOf ("\" tydstempel / ""); // soek na "\" tydstempel / "" vanaf die begin van die antwoord, en kopieer daarna alle data, dit is u tydstempel
as (pos> =
0)
{
int j = 0;vir (j = 0; j <10; j ++)
{tydstempel [j] = reël [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
leemte opstelling ()
{Serial.begin (115200);
vertraging (10);
// Ons begin by
verbinding met 'n WiFi -netwerk
WiFiMulti.addAP ("wifi_name", "wifi_wagwoord");
Serial.println ();
Serial.println ();Serial.print ("Wag vir WiFi …");terwyl (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
vertraging (500);
}Serial.println ("");Serial.println ("WiFi gekoppel");Serial.println ("IP -adres:");
Serial.println (WiFi.localIP ());
vertraging (500);
}
leemte lus ()
{
int analogValue =
analogRead (uitvoerpen);
{
////////////////////////////////////////// Stuur die navraag EN
ONTVANG DIE ANTWOORD /////////////////////////
int meting
= 0;
meting =
hallRead ();Serial.print ("Hallsensormeting:");Serial.println (meting);
vertraging (1000);Serial.print ("verbind met");Serial.println (gasheer); // gedefinieerde onderstebo:- gasheer = devapi2.thethingscloud.com of 139.59.26.117
/////////////////////////////////////
/////////////////////////
Serial.println ("binne kry tydstempel / n");
as
(! client.connect (time_server, {
terugkeer;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/tydstempel HTTP/1.1"); // Wat hierdie deel doen, het ek nie gekry nieclient.println ("Gasheer: baas.thethingscloud.com");client.println ("Cache-beheer: geen cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // dit noem die funksie
wat die antwoord op die tydstempel van die bediener kry
Serial.println ("tydstempel ontvang");
Serial.println (tydstempel);Serial.println ("binne ThingsCloudPost");
String PostValue =
"{" device_id / ": 61121696007, \" slave_id / ": 2";
Postwaarde =
PostValue + ", \" dts / ":" + tydstempel;
Postwaarde =
PostValue +", \" data / ": {" proximity / ":" +meting +"}" +"}";Serial.println (PostValue);
/ * skep 'n instansie van WiFiClientSecure */
WiFiClientSecure -kliënt;Serial.println ("Koppel aan bediener via poort 443");
as
(! client.connect (bediener, 443)) {Serial.println ("Verbinding misluk!");
} anders {Serial.println ("gekoppel aan bediener!");
/* skep
versoek */
client.println ( POST
/toestelle/deviceData HTTP/1.1 ");client.println ("Gasheer: api.thingsai.io");//client.println("Connection: close ");client.println ("Inhoudstipe: toepassing/json");client.println ("cache-control: no-cache");
client.println ( Magtiging:
Draer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9Pky6_mtd;client.print ("Inhoudlengte:");client.println (PostValue.length ());
client.println ();client.println (PostValue);
//////////////////////////////////////////////////////////////////////////////////'//
wolk is klaar en kry nou die antwoordvorm wolkbediener ////////////////////
Serial.print ( Wag vir reaksie
);
terwyl
(! client.available ()) {
vertraging (50);
//Serial.print (".");
}
/* as data is
beskikbaar, ontvang dan en druk dit na Terminal */
terwyl
(client.available ()) {
char c =
client.read ();Reeks.skryf (c);
}
/ * as die bediener ontkoppel het, stop die kliënt */
as
(! client.connected ()) {Serial.println ();Serial.println ("Server ontkoppel");client.stop ();
}
}
Serial.println ( //////////////////////// END
///////////////////// );
vertraging (3000);
}}
Stap 4: RESULTAT:
Die waardes wat van die sensor gelees word, word suksesvol na die IOT -wolk gestuur en die grafiek word as nabyheid teenoor tyd geskep. Hiermee word die werking van die sensor geanaliseer en volgens die vereiste toepassingsgebiede gebruik.
Stap 5: Voltooi handleiding:
Dit is die volledige projek om die nabyheid van 'n toestel te meet met behulp van hall sensor esp32 en thingsai.io wolkplatform. Dankie
Aanbeveel:
Meting van versnelling met behulp van ADXL345 en Particle Photon: 4 stappe
Meting van versnelling met behulp van ADXL345 en Particle Photon: Die ADXL345 is 'n klein, dun, ultra-lae, 3-as versnellingsmeter met 'n hoë resolusie (13-bis) meting tot ± 16 g. Digitale uitsetdata word geformateer as 'n 16-bis tweeling-aanvulling en is toeganklik via die I2 C digitale koppelvlak. Dit meet die
Meting van temperatuur met behulp van AD7416ARZ en Framboos Pi: 4 stappe
Meting van temperatuur met behulp van AD7416ARZ en Framboos Pi: AD7416ARZ is 'n 10-bis temperatuur sensor met vier enkanaals analoog na digitale omsetters en 'n ingeboude temperatuursensor daarin. Toegang tot die temperatuursensor op die dele is via multiplexerkanale. Hierdie hoë akkuraatheidstemperatuur
Meting van ligintensiteit met behulp van BH1715 en Framboos Pi: 5 stappe
Meting van ligintensiteit deur gebruik te maak van BH1715 en Raspberry Pi: Gister was ons besig met LCD -skerms, en terwyl ons daaroor werk, besef ons die belangrikheid van ligintensiteitsberekening. Ligintensiteit is nie net belangrik in die fisiese domein van hierdie wêreld nie, maar dit speel ook 'n welbekende rol in die biologie
Meting van versnelling met behulp van H3LIS331DL en Arduino Nano: 4 stappe
Meting van versnelling met behulp van H3LIS331DL en Arduino Nano: H3LIS331DL, is 'n lae-krag hoëprestasie 3-as lineêre versnellingsmeter wat tot die "nano" -familie behoort, met 'n digitale I²C-seriële koppelvlak. H3LIS331DL het 'n gebruiker -kiesbare volle weegskaal van ± 100g/± 200g/± 400g en kan versnellings meet met
Sonar nabyheid alarm: 6 stappe
Sonar nabyheids alarm: hierdie instruksie sal verduidelik hoe u 'n nabyheidssensor/alarm kan skep met behulp van 'n ultrasoniese emitter/ontvanger en LED's