Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Σε αυτό το σεμινάριο θα εξηγήσω για τη μέτρηση της εγγύτητας μιας συσκευής και τη δημοσίευση των τιμών στην πλατφόρμα cloud Thingsai, io χρησιμοποιώντας αισθητήρα αίθουσας και πίνακα ανάπτυξης esp32.
Ο αισθητήρας φαινομένου Hall είναι μια συσκευή που χρησιμοποιείται για τη μέτρηση του μεγέθους ενός μαγνητικού πεδίου. Η τάση εξόδου του είναι ευθέως ανάλογη με τη δύναμη του μαγνητικού πεδίου μέσω αυτού. Οι αισθητήρες φαινομένου Hall χρησιμοποιούνται για ανίχνευση εγγύτητας, τοποθέτηση, ανίχνευση ταχύτητας και τρέχουσες εφαρμογές ανίχνευσης.
Βήμα 1: ΣΥΣΤΑΤΙΚΑ
Συστατικά υλικού:
1. Αισθητήρας Hall
2. πίνακας ανάπτυξης esp32
3. Καλώδια βραχυκυκλωτήρων
Στοιχεία λογισμικού:
1. Arduino IDE
2. ThingsIO. AI
Βήμα 2: ΣΥΝΔΕΣΕΙΣ:
Αισθητήρας Hall ---------------------- esp32
Aout ------------------------------ vp
Gnd ----------------------------- Gnd
Vcc ------------------------------ 3V3
Βήμα 3: ΚΩΔΙΚΟΠΟΙΗΣΗ:
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
int count = 0, i, m, j, k;
int μέτρηση?
int outputpin = A0; // ds18b20
//////////////////////////////////////// Όλες οι δηλώσεις
για ΝΕΦΩΣ ///////////////////////////////
const char* host = "api.thingsai.io"; // host κεντρικός υπολογιστής =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // Ή
/api/v2/thingscloud2/_table/data_ac
const char* time_server =
"baas.thethingscloud.com"; // αυτό είναι για τη μετατροπή χρονικής σήμανσης
const int httpPort = 80;
const int httpsPort = 443;
const char* διακομιστής =
"api.thingsai.io"; // URL διακομιστή
timestamp char [10]?
WiFiMulti WiFiMulti;
// Χρησιμοποιήστε την κλάση WiFiClient για να δημιουργήσετε συνδέσεις TCP
Πελάτης WiFiClient.
/////////////////////////////////////// TIMESTAMP
Λειτουργία ΥΠΟΛΟΓΙΣΜΟΣ ///////////////////////////////////////
int GiveMeTimestamp ()
{
ανυπόγραφη μακρά
timeout = millis ();
// πελάτης WiFiClient.
ενώ
(client.available () == 0)
{
εάν (millis () -
χρονικό όριο> 50000)
{
client.stop ();
επιστροφή 0?
}
}
while (client.available ())
{
Γραμμή συμβολοσειράς =
client.readStringUntil ('\ r'); // indexOf () είναι μια λειτουργία αναζήτησης για smthng, επιστρέφει -1 αν δεν βρεθεί
int pos =
line.indexOf ("\" χρονική σήμανση / ""); // αναζήτηση για "\" timestamp / "" από την αρχή της απόκρισης και αντιγράψτε όλα τα δεδομένα μετά από αυτό, θα είναι η χρονική σήμανση σας
εάν (pos> =
0)
{
int j = 0;για (j = 0; j <10; j ++)
{χρονική σήμανση [j] = γραμμή [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup ()
{Serial.begin (115200);
καθυστέρηση (10)?
// Ξεκινάμε από
σύνδεση σε δίκτυο WiFi
WiFiMulti.addAP ("wifi_name", "wifi_password");
Serial.println ();
Serial.println ();Serial.print ("Περιμένετε για WiFi …");ενώ (WiFiMulti.run ()! = WL_CONNECTED) {Serial.print (".");
καθυστέρηση (500)?
}Serial.println ("");Serial.println ("WiFi συνδεδεμένο");Serial.println ("Διεύθυνση IP:");
Serial.println (WiFi.localIP ());
καθυστέρηση (500)?
}
κενός βρόχος ()
{
int analogValue =
analogRead (έξοδος εξόδου);
{
/////////////////////////////////////// ΣΤΕΙΛΤΕ ΤΟ ΕΡΩΤΗΜΑ ΚΑΙ
ΛΑΒΕΤΕ ΤΗΝ ΑΠΑΝΤΗΣΗ ///////////////////////
int μέτρηση
= 0;
μέτρηση =
hallRead ();Serial.print ("Μέτρηση αισθητήρα αίθουσας:");Serial.println (μέτρηση);
καθυστέρηση (1000)?Serial.print ("σύνδεση με");Serial.println (οικοδεσπότης); // καθορισμένο ανάποδα:- host = devapi2.thethingscloud.com ή 139.59.26.117
/////////////////////////////////////// TIMESTAMP CODE SNIPPET
/////////////////////////
Serial.println ("εντός λήψης χρονικής σήμανσης / n");
αν
(! client.connect (διακομιστής χρόνου, {
ΕΠΙΣΤΡΟΦΗ;
//*-*-*-*-*-*-*-*-*-*
}client.println ("GET/api/timestamp HTTP/1.1"); // Τι κάνει αυτό το μέρος, δεν κατάλαβαclient.println ("Host: baas.thethingscloud.com");client.println ("Cache-Control: no-cache");client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // θα καλέσει τη συνάρτηση
που θα λάβει την απόκριση χρονικής σήμανσης από τον διακομιστή
Serial.println ("λήξη χρονικής σήμανσης");
Serial.println (χρονική σήμανση);Serial.println ("μέσα στο ThingsCloudPost");
String PostValue =
"{" device_id / ": 61121696007, \" slave_id / ": 2";
PostValue =
PostValue + ", \" dts / ":" + χρονική σήμανση;
PostValue =
PostValue +", \" data / ": {" εγγύτητα / ":" +μέτρηση +"}" +"}";Serial.println (PostValue);
/ * δημιουργήστε ένα παράδειγμα WiFiClientSecure */
WiFiClientSecure πελάτης. Serial.println ("Σύνδεση με διακομιστή μέσω θύρας 443");
αν
(! client.connect (διακομιστής, 443)) {Serial.println ("Η σύνδεση απέτυχε!");
} αλλο {Serial.println ("Συνδέθηκε με διακομιστή!");
/* δημιουργία
αίτηση */
client.println ( POST
/devices/deviceData HTTP/1.1 ");client.println ("Host: api.thingsai.io");//client.println("Σύνδεση: κλείσιμο ");client.println ("Τύπος περιεχομένου: εφαρμογή/json");client.println ("cache-control: no-cache");
client.println ( Εξουσιοδότηση:
Φορέας eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9d;client.print ("Περιεχόμενο-Μήκος:");client.println (PostValue.length ());
client.println ();client.println (PostValue);
//////////////////////////////////// ΑΝΑΡΤΗΣΗ των δεδομένων στο
το cloud τελείωσε και τώρα λάβετε τη φόρμα απόκρισης cloud server ///////////////////
Serial.print ( Αναμονή απάντησης
);
ενώ
(! client.available ()) {
καθυστέρηση (50)?
//Serial.print (".");
}
/* εάν τα δεδομένα είναι
διαθέσιμο, στη συνέχεια λάβετε και εκτυπώστε στο τερματικό */
ενώ
(client.available ()) {
char c =
client.read ();Serial.write (c);
}
/ * εάν ο διακομιστής είναι αποσυνδεδεμένος, διακόψτε τον πελάτη */
αν
(! client.connected ()) {Serial.println ();Serial.println ("Ο διακομιστής αποσυνδέθηκε");client.stop ();
}
}
Serial.println ( ////////////////////// ΤΕΛΟΣ
///////////////////// );
καθυστέρηση (3000)?
}}
Βήμα 4: ΑΠΟΤΕΛΕΣΜΑ:
Οι τιμές που διαβάζονται από τον αισθητήρα αποστέλλονται με επιτυχία στο σύννεφο IOT και το γράφημα δημιουργείται ως εγγύτητα έναντι του χρόνου. Με αυτό, η λειτουργία του αισθητήρα αναλύεται και χρησιμοποιείται σύμφωνα με τις απαιτούμενες περιοχές εφαρμογής.
Βήμα 5: Πλήρες σεμινάριο:
Αυτό είναι το πλήρες έργο για τη μέτρηση της εγγύτητας μιας συσκευής χρησιμοποιώντας αισθητήρα αίθουσας esp32 και πλατφόρμα σύννεφων thingsai.io. Σας ευχαριστώ