Πίνακας περιεχομένων:
- Βήμα 1: Στοιχεία
- Βήμα 2: ΣΥΝΔΕΣΕΙΣ
- Βήμα 3: ΚΩΔΙΚΟΠΟΙΗΣΗ
- Βήμα 4: ΕΞΟΔΟΣ
- Βήμα 5: Γράφημα
- Βήμα 6: Ακολουθεί ένα βίντεο με την εξήγηση του Breif
Βίντεο: Ανιχνευτής κίνησης με χρήση πλατφόρμας cloud Thingsai.io Iot: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Σε αυτό το σεμινάριο θα εξηγήσω για την ανίχνευση κίνησης χρησιμοποιώντας έναν αισθητήρα PIR και Esp32 μαζί με μια πλατφόρμα cloud IOT Thingai.io
Βήμα 1: Στοιχεία
ΣΥΣΤΑΤΙΚΑ HARDWARE;
1.esp32 Πίνακας Ανάπτυξης
2. Αισθητήρας PIR
3. Jumper Wires
ΛΟΓΙΣΜΙΚΟ:
1. Arduino IDE
2. Λογαριασμός Thingsai.io
Βήμα 2: ΣΥΝΔΕΣΕΙΣ
Οι συνδέσεις είναι ήσυχες απλές.
PIN PIN ------------ ESP32 PIN
VCC ------------------- 3V3 στο esp32
GND ------------------ GND στο esp32
OUT ------------------- D22 στο esp32
Βήμα 3: ΚΩΔΙΚΟΠΟΙΗΣΗ
Επικολλήστε αυτόν τον κωδικό στο Arduino IDE σας με κάποια ενημέρωση, ο αισθητήρας κίνησης θα δώσει την έξοδο άψογα.
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
int count = 0, i, m, j, k;
int t, t1, t2, t3;
int pin = 22;
///////////////////////////////////////// Όλες οι δηλώσεις για το σύννεφο ////// //////////////////////////
const char* host = "api.thingsai.io"; // host host = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // OR/api/v2/thingscloud2/_table/data_ac
const char* time_server = "baas.thethingscloud.com"; // αυτό είναι για τη μετατροπή χρονικής σήμανσης
const int httpPort = 80;
const int httpsPort = 443;
const char* server = "api.thingsai.io"; // URL διακομιστή
timestamp char [10]?
WiFiMulti WiFiMulti;
// Χρησιμοποιήστε την κλάση WiFiClient για να δημιουργήσετε συνδέσεις TCP
Πελάτης WiFiClient.
//////////////////////////////////////// Λειτουργία TIMESTAMP CALCULATION ///////// /////////////////////////////////
int GiveMeTimestamp ()
{
unsigned long timeout = millis ();
// πελάτης WiFiClient.
while (client.available () == 0)
{
εάν (millis () - χρονικό όριο> 50000)
{
client.stop ();
επιστροφή 0?
}
}
while (client.available ())
{
String line = client.readStringUntil ('\ r'); // indexOf () είναι μια λειτουργία αναζήτησης για smthng, επιστρέφει -1 αν δεν βρεθεί
int pos = line.indexOf ("\" timestamp / ""); // αναζήτηση για "\" timestamp / "" από την αρχή της απόκρισης και αντιγράψτε όλα τα δεδομένα μετά από αυτό, θα είναι η χρονική σήμανση σας
αν (pos> = 0)
{
int j = 0;
για (j = 0; j <10; j ++)
{
χρονική σήμανση [j] = γραμμή [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup ()
{
Serial.begin (115200);
καθυστέρηση (10)?
pinMode (pin, INPUT);
// Ξεκινάμε συνδέοντας ένα δίκτυο 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 (έξοδος εξόδου);
{
/////////////////////////////////////// ΣΤΕΙΛΤΕ ΤΟ ΕΡΩΤΗΜΑ ΚΑΙ ΛΑΒΕΤΕ ΤΗΝ ΑΠΑΝΤΗΣΗ //// /////////////////////
{
bool isDetected = digitalRead (pin);
εάν (εντοπίζεται) {
Serial.println ("Εντοπίστηκε παρουσία");
}
καθυστέρηση (500)?
}
Serial.print ("σύνδεση με");
Serial.println (οικοδεσπότης); // καθορισμένο ανάποδα:- host = devapi2.thethingscloud.com ή 139.59.26.117
/////////////////////////////////////// TIMESTAMP CODE SNIPPET /////////// /////////////////
Serial.println ("εντός λήψης χρονικής σήμανσης / n");
εάν (! client.connect (time_server, {
ΕΠΙΣΤΡΟΦΗ; //*-*-*-*-*-*-*-*-*-*-*
}
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 / ": 61121695839, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + χρονική σήμανση;
PostValue = PostValue +", \" data / ": {" PIR / ":" +pin +"}" +"}";
Serial.println (PostValue);
/ * δημιουργήστε ένα παράδειγμα WiFiClientSecure */
WiFiClientSecure πελάτης.
Serial.println ("Σύνδεση με διακομιστή μέσω θύρας 443");
if (! client.connect (διακομιστής, 443)) {
Serial.println ("Η σύνδεση απέτυχε!");
} αλλο {
Serial.println ("Συνδέθηκε με διακομιστή!");
/ * δημιουργία αιτήματος HTTP */
client.println ( POST/devices/deviceData
client.println ("Host: api.thingsai.io");
//client.println("Σύνδεση: κλείσιμο ");
client.println ("Τύπος περιεχομένου: εφαρμογή/json");
client.println ("cache-control: no-cache");
client.println ("Άδεια: Ανώνυμες eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKy6_m9tdW5AG7ajfVlY")?
client.print ("Περιεχόμενο-Μήκος:");
client.println (PostValue.length ());
client.println ();
client.println (PostValue);
/////////////////////////////////// ΑΠΟΣΤΟΛΗ των δεδομένων στο cloud έχει γίνει και τώρα λάβετε τη φόρμα απόκρισης cloud υπηρέτης//////////////////
Serial.print ("Αναμονή για απάντηση");
ενώ (! client.available ()) {
καθυστέρηση (50)? //
Serial.print (".");
}
/ * εάν τα δεδομένα είναι διαθέσιμα, λάβετε και εκτυπώστε στο τερματικό */
while (client.available ()) {
char c = client.read ();
Serial.write (c);
}
/ * εάν ο διακομιστής είναι αποσυνδεδεμένος, διακόψτε τον πελάτη */
εάν (! client.connected ()) {
Serial.println ();
Serial.println ("Ο διακομιστής αποσυνδέθηκε"); javascript:;
client.stop ();
}
}
Serial.println ("///////////////////// ΤΕΛΟΣ //////////////////// ");
καθυστέρηση (3000)?
}
}
Βήμα 4: ΕΞΟΔΟΣ
Αυτή είναι η αναπαράσταση του γραφήματος ράβδων των τιμών που διαβάζονται από τον αισθητήρα στην πλατφόρμα clouds things, io,
Βήμα 5: Γράφημα
Αυτή είναι η γραφική αναπαράσταση των τιμών από τον αισθητήρα. Από το παραπάνω γράφημα μπορούμε να αναλύσουμε την εφαρμογή του αισθητήρα. Σας ευχαριστώ
Συνιστάται:
IoT Base Platform With RaspberryPi, WIZ850io: Πρόγραμμα οδήγησης συσκευής πλατφόρμας: 5 βήματα (με εικόνες)
IoT Base Platform With RaspberryPi, WIZ850io: Πρόγραμμα οδήγησης συσκευής πλατφόρμας: Γνωρίζω την πλατφόρμα RaspberryPi για IoT. Πρόσφατα ανακοινώθηκε το WIZ850io από το WIZnet. Έτσι, εφάρμοσα μια εφαρμογή RaspberryPi μέσω τροποποίησης Ethernet SW επειδή μπορώ να χειριστώ εύκολα έναν πηγαίο κώδικα. Μπορείτε να δοκιμάσετε το πρόγραμμα οδήγησης συσκευής πλατφόρμας μέσω RaspberryPi
Ανιχνευτής κίνησης με χρήση NodeMCU: 5 βήματα
Ανιχνευτής κίνησης με χρήση NodeMCU: Σε αυτό το έργο, χρησιμοποιώντας απλώς έναν αισθητήρα κίνησης μπορείτε να ανιχνεύσετε την παρουσία οποιουδήποτε ανθρώπου ή ζώου. Και από την πλατφόρμα που ονομάζεται thingsio μπορείτε να παρακολουθείτε την ημερομηνία και την ώρα κατά την οποία εντοπίστηκε η παρουσία
Ανιχνευτής κίνησης ενεργοποιημένο φως ματαιοδοξίας: 6 βήματα
Motion Detector Activated Vanity Light: Αγόρασα μια μονάδα ανίχνευσης υπερύθρων στο eBay για 1,50 δολάρια και αποφάσισα να τη χρησιμοποιήσω καλά. Θα μπορούσα να είχα φτιάξει τη δική μου πλακέτα ανιχνευτή κίνησης, αλλά με 1,50 $ (που περιλαμβάνει 2 γλάστρες για τη ρύθμιση της ευαισθησίας και του χρονοδιακόπτη απενεργοποίησης) δεν θα το
Μέτρηση περιεχομένου υγρασίας εδάφους με χρήση του Esp32 και της πλατφόρμας Thingsio.ai: 6 βήματα
Μέτρηση περιεχομένου υγρασίας εδάφους χρησιμοποιώντας πλατφόρμα Esp32 και Thingsio.ai: Σε αυτό το σεμινάριο θα εξηγήσω σχετικά με την ανάγνωση της περιεκτικότητας σε υγρασία στο έδαφος χρησιμοποιώντας το esp32 και στη συνέχεια την αποστολή των τιμών στην πλατφόρμα clouds thingsio.ai IoT
Έξοδος ελεγχόμενης κίνησης - Από φωτεινή ένδειξη κίνησης: 6 βήματα
Έξοδος ελεγχόμενης κίνησης - Από ένα φως ανίχνευσης κίνησης: Φανταστείτε ότι είστε ένας κόλπος ή θεραπευτής που πηγαίνει στο πιο τρομακτικό σπίτι του μπλοκ. Αφού περάσετε από όλα τα γκούλια, τα φαντάσματα και τα νεκροταφεία, φτάνετε τελικά στο τελευταίο μονοπάτι. Μπορείτε να δείτε την καραμέλα σε ένα μπολ μπροστά σας! Αλλά ξαφνικά ένας γκο