Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bu təlimatda, bir cihazın yaxınlığının ölçülməsi və dəyərlərin Thingsai, io bulud platformasında yayımlanması və hall sensoru və esp32 inkişaf etdirmə lövhəsindən istifadə edilməsi ilə izah ediləcək.
Hall effekti sensoru, maqnit sahəsinin böyüklüyünü ölçmək üçün istifadə olunan bir cihazdır. Çıxış gərginliyi onun üzərindəki maqnit sahəsinin gücü ilə düz mütənasibdir. Hall effektli sensorlar yaxınlıq algılama, yerləşdirmə, sürət algılama və cari algılama tətbiqləri üçün istifadə olunur.
Addım 1: BİLEŞENLER
Avadanlıq Komponentləri:
1. Hall Sensoru
2. esp32 inkişaf lövhəsi
3. Jumper telləri
Proqram Komponentləri:
1. Arduino IDE
2. Şeylər AI. AI
Addım 2: BAĞLANTILAR:
Zal sensoru ---------------------- esp32
Aout ------------------------------ vp
Gnd ----------------------------- Gnd
Vcc ------------------------------ 3V3
Addım 3: KODLAMA:
#daxil edin
#daxil edin
#daxil edin
int sayı = 0, i, m, j, k;
int ölçmə;
int çıxış pin = A0; // ds18b20
///////////////////////////////////////// BÜTÜN Bəyannamələr
CLOUD üçün ///////////////////////////////
const char* host = "api.thingsai.io"; // OR ana =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // OR
/api/v2/thingscloud2/_table/data_ac
const char* time_server =
"baas.thethingscloud.com"; // bu zaman damgasını çevirməkdir
const int httpPort = 80;
const int httpsPort = 443;
const char* server =
"api.thingsai.io"; // Server URL
simvol işarəsi [10];
WiFiMulti WiFiMulti;
// TCP əlaqələri yaratmaq üçün WiFiClient sinifindən istifadə edin
WiFi müştəri;
////////////////////////////////////////// TIMESTAMP
HESAB VERMƏ funksiyası //////////////////////////////////////////////////////////////////////////
int GiveMeTimestamp ()
{
imzasız uzun
zaman aşımı = millis ();
// WiFiClient müştəri;
isə
(müştəri.available () == 0)
{
əgər (millis () -
vaxt aşımı> 50000)
{
client.stop ();
qaytarma 0;
}
}
while (client.available ())
{
String xətti =
client.readStringUntil ('\ r'); // indexOf () smthng axtaran bir funksiyadır, tapılmazsa -1 qaytarır
int pos =
line.indexOf ("\" zaman damgası / ""); // "\" zaman damgası / "" nı axtarın və sonra bütün məlumatları kopyalayın, bu sizin zaman damganız olacaq
əgər (pos> =
0)
{
int j = 0;üçün (j = 0; j <10; j ++)
{vaxt damgası [j] = sətir [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
boş quraşdırma ()
{Serial.begin (115200);
gecikmə (10);
// Başlayırıq
WiFi şəbəkəsinə qoşulma
WiFiMulti.addAP ("wifi_adı", "wifi_password");
Serial.println ();
Serial.println ();Serial.print ("WiFi gözləyin …");isə (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
gecikmə (500);
}Serial.println ("");Serial.println ("WiFi bağlıdır");Serial.println ("IP ünvanı:");
Serial.println (WiFi.localIP ());
gecikmə (500);
}
boşluq döngəsi ()
{
int analogValue =
analogRead (çıxış pin);
{
////////////////////////////////////////////////////////// SORĞU GÖNDƏRİN VƏ
CAVAB ALIN ///////////////////////
int ölçmə
= 0;
ölçmə =
hallRead ();Serial.print ("Hall sensoru ölçümü:");Serial.println (ölçü);
gecikmə (1000);Serial.print ("qoşulur");Serial.println (ev sahibi); // tərs olaraq təyin olunur:- host = devapi2.thethingscloud.com və ya 139.59.26.117
////////////////////////////////////////////////////////////////// TIMESTAMP KODU SNIPPET
/////////////////////////
Serial.println ("daxilində zaman damgası alın / n");
əgər
(! client.connect (time_server, {
qayıtmaq;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/zaman damgası HTTP/1.1"); // Bu hissə nə edir, başa düşmədimclient.println ("Host: baas.thethingscloud.com");client.println ("Önbelleğe Nəzarət: önbelleği yoxdur");client.println ("Poçtalyon-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
müştəri.println ();
GiveMeTimestamp (); // funksiyanı çağıracaq
zaman damgası cavabını serverdən alacaq
Serial.println ("vaxt damgası alındı");
Serial.println (vaxt damgası);Serial.println ("ThingsCloudPost daxilində");
String PostValue =
"{" device_id / ": 61121696007, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + zaman damgası;
PostValue =
PostValue +", \" data / ": {" yaxınlıq / ":" +ölçü +"}" +"}";Serial.println (PostValue);
/ * WiFiClientSecure nümunəsi yaradın */
WiFiClientSecure müştəri;Serial.println ("Serverə 443 portu ilə qoşulun");
əgər
(! client.connect (server, 443)) {Serial.println ("Bağlantı uğursuz oldu!");
} başqa {Serial.println ("Serverə qoşuldu!");
/* HTTP yaradın
tələb */
client.println ( POST
/cihazlar/cihazData HTTP/1.1 ");client.println ("Host: api.thingsai.io");//client.println("Bağlantı: yaxın ");client.println ("Məzmun Növü: application/json");client.println ("cache-control: no-cache");
client.println ( İcazə:
Taşıyıcı eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m ")client.print ("Məzmun-Uzunluq:");müştəri.println (PostValue.length ());
müştəri.println ();client.println (PostValue);
////////////////////////////////////////////////// Məlumatların yerləşdirilməsi
bulud tamamlandı və indi bulud serverinin cavab formasını əldə edin /////////////////
Serial.print ( Cavab gözləyirik
);
isə
(! müştəri.available ()) {
gecikmə (50);
//Serial.print (".");
}
/* məlumatlar varsa
mövcuddur, sonra alın və Terminalda çap edin */
isə
(müştəri.available ()) {
char c =
client.read ();Serial.write (c);
}
/ * server bağlantısı kəsilərsə, müştərini dayandırın */
əgər
(! client.connected ()) {Serial.println ();Serial.println ("Server bağlantısı kəsildi");client.stop ();
}
}
Serial.println ( ////////////////////// SON
///////////////////// );
gecikmə (3000);
}}
Addım 4: NƏTİCƏ:
Sensordan oxunan dəyərlər uğurla IOT buluduna göndərilir və qrafik zamana qarşı yaxınlıq olaraq yaradılır. Bununla sensorun işi təhlil edilir və lazımi tətbiq sahələrinə uyğun olaraq istifadə olunur.
Addım 5: Tam Təlimat:
Zal sensoru esp32 və thingsai.io bulud platformasından istifadə edərək cihazın yaxınlığını ölçmək üçün tam bir layihədir. Çox sağ ol