Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Selles õpetuses selgitan seadme läheduse mõõtmist ja väärtuste avaldamist asjade pilveplatvormile Thingsai, saali anduri ja esp32 arendusplaadi abil.
Halli efekti andur on seade, mida kasutatakse magnetvälja suuruse mõõtmiseks. Selle väljundpinge on otseselt proportsionaalne magnetvälja tugevusega selle kaudu. Halli efekti andureid kasutatakse läheduse tuvastamiseks, positsioneerimiseks, kiiruse tuvastamiseks ja praegusteks rakendusteks.
1. samm: KOMPONENDID
Riistvara komponendid:
1. Halli andur
2. esp32 arendusplaat
3. Jumper juhtmed
Tarkvara komponendid:
1. Arduino IDE
2. AsjadIO. AI
2. samm: ÜHENDUSED:
Halli andur ---------------------- esp32
Aout ------------------------------ vp
Gnd ----------------------------- Gnd
Vcc ------------------------------ 3V3
3. samm: KOODIMINE:
#kaasake
#kaasake
#kaasake
int arv = 0, i, m, j, k;
int mõõtmine;
int väljundpin = A0; // ds18b20
//////////////////////////////////////////////////////// KÕIK DEKLARATSIOONID
PILVE jaoks //////////////////////////////
const char* host = "api.thingsai.io"; // VÕI host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // VÕI
/api/v2/thingscloud2/_table/data_ac
const char* ajaserver =
"baas.thethingscloud.com"; // see on ajatempli teisendamiseks
const int httpPort = 80;
const int httpsPort = 443;
const char* server =
"api.thingsai.io"; // Serveri URL
sümboli ajatempel [10];
WiFiMulti WiFiMulti;
// Kasutage WiFi -kliendi klassi TCP -ühenduste loomiseks
WiFiClient klient;
/////////////////////////////////////////////////////// TIMESTAMP
Funktsioon ARVUTAMINE ///////////////////////////////////////
int GiveMeTimestamp ()
{
allkirjata pikk
timeout = millis ();
// WiFiClient klient;
samas
(client.available () == 0)
{
kui (millis () -
ajalõpp> 50000)
{
client.stop ();
tagasitulek 0;
}
}
samas (client.available ())
{
Stringirida =
client.readStringUntil ('\ r'); // indexOf () on funktsioon smthng otsimiseks, tagastab -1, kui seda ei leita
int pos =
line.indexOf ("\" ajatempel / ""); // otsi vastuse algusest "\" ajatempel / "" ja kopeeri pärast seda kõik andmed, see on sinu ajatempel
kui (pos> =
0)
{
int j = 0;jaoks (j = 0; j <10; j ++)
{ajatempel [j] = rida [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
tühine seadistus ()
{Seriaalne algus (115200);
viivitus (10);
// Alustame
WiFi -võrguga ühenduse loomine
WiFiMulti.addAP ("wifi_nimi", "wifi_parool");
Serial.println ();
Serial.println ();Serial.print ("Oota WiFi …");samas (WiFiMulti.run ()! = WL_CONNECTED) {Seeria.print (".");
viivitus (500);
}Serial.println ("");Serial.println ("WiFi ühendatud");Serial.println ("IP -aadress:");
Serial.println (WiFi.localIP ());
viivitus (500);
}
tühine tsükkel ()
{
int analogValue =
analogRead (väljundpinge);
{
///////////////////////////////////////////////////////////////////////////////////////-
VASTA VASTUS ///////////////////////
int mõõtmine
= 0;
mõõtmine =
hallRead ();Serial.print ("Halli anduri mõõtmine:");Serial.println (mõõtmine);
viivitus (1000);Serial.print ("ühenduse loomine");Serial.println (host); // määratletud tagurpidi:- host = devapi2.thethingscloud.com või 139.59.26.117
/////////////////////////////////////////////////-
/////////////////////////
Serial.println ("inside get timestamp / n");
kui
(! client.connect (time_server, {
tagasipöördumine;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/ajatempel HTTP/1.1"); // Mida see osa teeb, ma ei saanud aruclient.println ("Host: baas.thethingscloud.com");client.println ("Vahemälu kontroll: vahemälu puudub");client.println ("Postimees-märk: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klient.println ();
GiveMeTimestamp (); // see kutsub funktsiooni
mis saab serverilt ajatemplivastuse
Serial.println ("ajatempel saadud");
Serial.println (ajatempel);Serial.println ("sees ThingsCloudPost");
String PostValue =
"{" seadme_id / ": 61121696007, \" orja_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + ajatempel;
PostValue =
PostValue +", \" andmed / ": {" lähedus / ":" +mõõtmine +"}" +"}";Serial.println (PostValue);
/ * looge WiFiClientSecure'i eksemplar */
WiFiClientSecure klient;Serial.println ("Ühenda serveriga pordi 443 kaudu");
kui
(! client.connect (server, 443)) {Serial.println ("Ühendus ebaõnnestus!");
} muud {Serial.println ("Ühendatud serveriga!");
/* luua
taotlus */
client.println ( POST
/devices/deviceData HTTP/1.1 ");client.println ("Host: api.thingsai.io");//client.println("Connection: close ");client.println ("Sisu tüüp: rakendus/json");client.println ("cache-control: no-cache");
client.println ( Autoriseerimine:
Kandja silmaclient.print ("Sisu-pikkus:");klient.println (PostValue.length ());
klient.println ();klient.println (PostValue);
//////////////////////////////////////////////// ning andmete postitamine
pilv on tehtud ja hankige nüüd vastusvorm pilveserver //////////////////
Serial.print ( Ootan vastust
);
samas
(! client.available ()) {
viivitus (50);
//Seeria.print (".");
}
/* kui andmed on
saadaval, seejärel võtke vastu ja printige terminali */
samas
(client.available ()) {
sümbol c =
client.read ();Serial.write (c);
}
/ * kui server on lahti ühendatud, peata klient */
kui
(! client.connected ()) {Serial.println ();Serial.println ("Server on lahti ühendatud");client.stop ();
}
}
Serial.println ( ////////////////////// LÕPP
///////////////////// );
viivitus (3000);
}}
4. samm: TULEMUS:
Andurilt loetud väärtused saadetakse edukalt IOT pilve ja graafik luuakse läheduse ja aja vahel. Selle abil analüüsitakse anduri tööd ja kasutatakse seda vastavalt nõutavatele kasutusvaldkondadele.
Samm: viige läbi õpetus:
See on täielik projekt seadme läheduse mõõtmiseks, kasutades saali sensorit esp32 ja thingsai.io pilveplatvormi. Aitäh