Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Šioje pamokoje aš paaiškinsiu, kaip matuoti įrenginio artumą ir paskelbti vertes „Thingsai“, „io“debesies platformoje, naudojant salės jutiklį ir esp32 kūrimo plokštę.
Halės efekto jutiklis yra prietaisas, naudojamas matuoti magnetinio lauko dydį. Jo išėjimo įtampa yra tiesiogiai proporcinga magnetinio lauko stiprumui per jį. „Hall“efekto jutikliai naudojami artumo jutimui, padėties nustatymui, greičio aptikimui ir srovės jutikliams.
1 žingsnis: KOMPONENTAI
Techninės įrangos komponentai:
1. Salės jutiklis
2. esp32 kūrimo lenta
3. Jumper laidai
Programinės įrangos komponentai:
1. „Arduino IDE“
2. DaiktaiIO. AI
2 žingsnis: JUNGTYS:
Salės jutiklis ---------------------- esp32
Apie ------------------------------ vp
Gnd ----------------------------- Gnd
Vcc ------------------------------ 3V3
3 žingsnis: KODAVIMAS:
#įtraukti
#įtraukti
#įtraukti
int skaičius = 0, i, m, j, k;
int matavimas;
int outputpin = A0; // ds18b20
//////////////////////////////////////////////////////// VISI DEKLARACIJOS
CLOUD //////////////////////////////
const char* host = "api.thingsai.io"; // ARBA šeimininkas =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // ARBA
/api/v2/thingscloud2/_table/data_ac
const char* laiko_serveris =
„baas.thethingscloud.com“; // tai yra laiko žymos konvertavimas
const int httpPort = 80;
const int httpsPort = 443;
const char* serveris =
"api.thingsai.io"; // Serverio URL
char laiko žyma [10];
WiFiMulti WiFiMulti;
// Naudokite „WiFiClient“klasę, kad sukurtumėte TCP ryšius
„WiFiClient“klientas;
////////////////////////////////////////////////////// TIMESTAMP
APSKAIČIAVIMO funkcija ///////////////////////////////////////
int GiveMeTimestamp ()
{
nepasirašytas ilgai
skirtasis laikas = milis ();
// „WiFiClient“klientas;
tuo tarpu
(client.available () == 0)
{
jei (milis () -
skirtasis laikas> 50000)
{
client.stop ();
grįžti 0;
}
}
o (client.available ())
{
Eilutės eilutė =
client.readStringUntil ('\ r'); // indexOf () yra funkcija ieškoti smthng, ji grąžina -1, jei nerasta
int pos =
line.indexOf ("\" laiko žyma / ""); // ieškokite "\" laiko žymos / "" nuo atsakymo pradžios ir nukopijuokite visus duomenis po to, tai bus jūsų laiko žyma
jei (poz> =
0)
{
int j = 0;(j = 0; j <10; j ++)
{laiko žyma [j] = eilutė [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
negaliojanti sąranka ()
{Serial.begin (115200);
vėlavimas (10);
// Pradedame nuo
prisijungimas prie „WiFi“tinklo
WiFiMulti.addAP ("wifi_name", „wifi_password“);
Serial.println ();
Serial.println ();Serial.print („Palaukite„ WiFi “…“);while (WiFiMulti.run ()! = WL_CONNECTED) {Serijinis atspaudas (".");
vėlavimas (500);
}Serial.println ("");Serial.println („WiFi prijungtas“);Serial.println ("IP adresas:");
Serial.println (WiFi.localIP ());
vėlavimas (500);
}
tuštumos kilpa ()
{
int analogValue =
analogRead (išvesties kaištis);
{
////////////////////////
GAUTI ATSAKYMĄ ///////////////////////
int matavimas
= 0;
matavimas =
hallRead ();Serial.print ("Halės jutiklio matavimas:");Serial.println (matavimas);
vėlavimas (1000);Serial.print ("prisijungimas prie");Serial.println (priegloba); // apibrėžta aukštyn kojomis:- šeimininkas = devapi2.thethingscloud.com arba 139.59.26.117
////////////////////////
/////////////////////////
Serial.println ("viduje gauti laiko žymę / n");
jei
(! client.connect (time_server, {
grįžti;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/laiko žymė HTTP/1.1"); // Ką daro ši dalis, aš nesupratauclient.println ("Priimančioji: baas.thethingscloud.com");client.println („Cache-Control: no-cache“);client.println („Paštininkas-žetonas: ea3c18c6-09ba-d049-ccf3-369a22a284b8“);
klientas.println ();
GiveMeTimestamp (); // jis iškvies funkciją
kuris gaus serverio laiko žymos atsakymą
Serial.println ("gauta laiko žyma");
Serial.println (laiko žyma);Serial.println ("viduje ThingsCloudPost");
Eilutė PostValue =
"{" device_id / ": 61121696007, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + laiko žyma;
PostValue =
PostValue +", \" data / ": {" proximity / ":" +matavimas +"}" +"}";Serial.println (PostValue);
/ * sukurti „WiFiClientSecure“egzempliorių */
„WiFiClientSecure“klientas;Serial.println („Prisijunkite prie serverio per 443 prievadą“);
jei
(! client.connect (serveris, 443)) {Serial.println ("Nepavyko prisijungti!");
} Kitas {Serial.println ("Prisijungta prie serverio!");
/* sukurti
prašymas */
client.println ( POST
/devices/deviceData HTTP/1.1 ");client.println ("Priegloba: api.thingsai.io");//client.println("Connection: close ");client.println ("Turinio tipas: programa/json");client.println ("cache-control: no-cache");
client.println ( Autorizacija:
Nešiklio akisclient.print ("Turinio ilgis:");client.println (PostValue.length ());
klientas.println ();client.println („PostValue“);
//////////////////////////////////////////////// Skelbdami duomenis į
debesis baigtas ir dabar gaukite atsakymo formą iš debesies serverio //////////////////
Serial.print ( Laukiama atsakymo
);
tuo tarpu
(! client.available ()) {
vėlavimas (50);
//Serijinis atspaudas (".");
}
/* jei duomenys yra
galima gauti ir spausdinti į terminalą */
tuo tarpu
(client.available ()) {
char c =
client.read ();Serial.write (c);
}
/ * jei serveris atjungtas, sustabdykite klientą */
jei
(! client.connected ()) {Serial.println ();Serial.println („Serveris atjungtas“);client.stop ();
}
}
Serial.println ( ////////////////////// PABAIGA
///////////////////// );
vėlavimas (3000);
}}
4 žingsnis: REZULTATAS:
Iš jutiklio nuskaitytos vertės sėkmingai siunčiamos į IOT debesį, o diagrama kuriama kaip artumas ir laikas. Taip jutiklio veikimas analizuojamas ir naudojamas pagal reikiamas taikymo sritis.
5 veiksmas: užpildykite mokymo programą:
Tai yra visas projektas, skirtas prietaiso artumui matuoti naudojant salės jutiklį esp32 ir „thingsai.io“debesies platformą. Ačiū