Spisu treści:
- Krok 1: Komponenty
- Krok 2: POŁĄCZENIA
- Krok 3: KODOWANIE
- Krok 4: WYJŚCIE
- Krok 5: Wykres
- Krok 6: Oto wideo z wyjaśnieniem Breif
Wideo: Wykrywacz ruchu za pomocą platformy Thingsai.io Iot Cloud: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
W tym samouczku wyjaśnię wykrywanie ruchu za pomocą czujnika PIR i Esp32 wraz z platformą chmury IOT Thingai.io
Krok 1: Komponenty
KOMPONENTY SPRZĘTOWE;
1. Płytka rozwojowa esp32
2. Czujnik PIR
3. Przewody połączeniowe
OPROGRAMOWANIE:
1. Arduino IDE
2. Konto Thingsai.io
Krok 2: POŁĄCZENIA
Połączenia są bardzo proste.
szpilki PIR ------------ szpilki ESP32
VCC-------------------3V3 na esp32
GND------------------GND na esp32
OUT------------------- D22 na esp32
Krok 3: KODOWANIE
Wklej ten kod do swojego Arduino IDE z pewną aktualizacją, czujnik ruchu zapewni wyjście bezbłędnie.
#włączać
#włączać
#włączać
liczba int=0, i, m, j, k;
int t, t1, t2, t3;
wewn. pin = 22;
/////////////////////////////////////// WSZYSTKIE OŚWIADCZENIA dla CHMURY ////// ////////////////////////
const char* host = "api.thingsai.io"; // LUB host = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // LUB /api/v2/thingscloud2/_table/data_ac
const char* serwer_czasu = "baas.thethingscloud.com"; //to jest konwersja znacznika czasu
const int httpPort = 80;
const int httpsPort = 443;
const char* server = "api.thingsai.io"; // Serwer URL
znacznik czasu znaków[10];
Wi-FiWiele Wi-FiWiele;
// Użyj klasy WiFiClient do tworzenia połączeń TCP
Klient WiFiClient;
/////////////////////////////////////// funkcja OBLICZANIA ZNACZNIKA CZASU//////// ///////////////////////////////
int PodajMeTimestamp()
{
unsigned long timeout = millis();
// Klient WiFiClient;
while (client.available() == 0)
{
if (millis() - limit czasu > 50000)
{
klient.stop();
zwróć 0;
}
}
while (klient.dostępny())
{
Linia ciągu = client.readStringUntil('\r'); //indexOf() to funkcja do wyszukiwania smthng, zwraca -1 jeśli nie znaleziono
int pos = line.indexOf("\"znacznik czasu\""); //wyszukaj "\"timestamp\"" od początku otrzymanej odpowiedzi i skopiuj wszystkie dane po tym, będzie to Twoja sygnatura czasowa
jeśli (poz >= 0)
{
intj = 0;
dla(j=0;j<10;j++)
{
znacznik czasu[j] = linia[poz + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
pusta konfiguracja()
{
Serial.początek(115200);
opóźnienie(10);
pinMode(pin, INPUT);
// Zaczynamy od połączenia z siecią Wi-Fi
WiFiMulti.addAP("nazwa_wifi", "hasło_Wi-Fi");
Serial.println();
Serial.println();
Serial.print("Czekaj na Wi-Fi… ");
while(WiFiMulti.run() != WL_CONNECTED) {
Serial.print(".");
opóźnienie (500);
}
Serial.println("");
Serial.println("Połączenie WiFi");
Serial.println("adres IP: ");
Serial.println(WiFi.localIP());
opóźnienie (500);
}
pusta pętla()
{
int analogValue = analogRead(outputpin);
{
////////////////////////////////////// WYŚLIJ ZAPYTANIE I OTRZYMAJ ODPOWIEDŹ//// ///////////////////
{
bool isDetected = digitalRead(pin);
jeśli (wykryto){
Serial.println("Wykryto obecność");
}
opóźnienie (500);
}
Serial.print("łączenie z");
Serial.println(host); //zdefiniowany plus:- host = devapi2.thethingscloud.com lub 139.59.26.117
//////////////////////////////////// ZNACZNIK KODU ////////// ///////////////
Serial.println("wewnątrz pobierz znacznik czasu\n");
if (!client.connect(serwer_czasu, port
{
powrót; //*-*-*-*-*-*-*-*-*-*
}
client.println("POBIERZ /api/znacznik czasu HTTP/1.1"); //Co robi ta część, nie dostałem
client.println("Host: baas.thethingscloud.com");
client.println("Kontrola pamięci podręcznej: brak pamięci podręcznej");
client.println("Token listonosza: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klient.println();
GiveMeTimestamp(); //wywoła funkcję, która otrzyma odpowiedź ze znacznikiem czasu z serwera
Serial.println("otrzymany znacznik czasu");
Serial.println(sygnatura czasowa);
Serial.println("wewnątrz ThingsCloudPost");
String PostValue = "{"device_id\": 61121695839, \"slave_id\": 2";
PostValue = PostValue +”, \"dts\":" + znacznik czasu;
PostValue = PostValue +", \"dane\":{"PIR\":" + pin +"}"+"}";
Serial.println(PostValue);
/* utwórz instancję WiFiClientSecure */
Klient WiFiClientSecure;
Serial.println("Połącz z serwerem przez port 443");
if (!client.connect(serwer, 443)){
Serial.println("Połączenie nie powiodło się!");
} w przeciwnym razie {
Serial.println("Połączono z serwerem!");
/* utwórz żądanie HTTP */
client.println( POST /devices/deviceData
client.println("Host: api.thingsai.io");
//client.println("Połączenie: zamknij");
client.println("Typ treści: aplikacja/json");
client.println("kontrola pamięci podręcznej: brak pamięci podręcznej");
client.println("Upoważnienie: okaziciel eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlW6YlWNQ9tP");
client.print("Długość-treści: ");
klient.println(WartośćPoczta.długość());
klient.println();
klient.println(PostValue);
//////////////////////////////////PRZESYŁANIE danych w chmurze jest zakończone i teraz otrzymaj chmurę formularza odpowiedzi serwer//////////////////
Serial.print("Oczekiwanie na odpowiedź");
while (!client.available()){
opóźnienie(50); //
Serial.print(".");
}
/* jeśli dane są dostępne, odbierz i wydrukuj do terminala */
while (klient.dostępny()) {
char c = klient.odczyt();
Serial.zapis(c);
}
/* jeśli serwer się rozłączył, zatrzymaj klienta */
if (!client.connected()) {
Serial.println();
Serial.println("Serwer odłączony");javascript:;
klient.stop();
}
}
Serial.println( ////////////////////// KONIEC ////////////////////”);
opóźnienie(3000);
}
}
Krok 4: WYJŚCIE
To jest wykres słupkowy przedstawiający wartości odczytane z czujnika w platformie chmurowej thingsai, io,
Krok 5: Wykres
Jest to graficzna reprezentacja wartości z czujnika. Z powyższego wykresu możemy przeanalizować zastosowanie czujnika. Dziękuję
Zalecana:
Pingo: wykrywacz ruchu i wysokiej dokładności wyrzutnia piłek pingpongowych: 8 kroków
Pingo: wykrywająca ruch i bardzo precyzyjna wyrzutnia piłek pingpongowych: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay
Monitorowanie temperatury i wilgotności DHT za pomocą ESP8266 i platformy AskSensors IoT: 8 kroków
Monitorowanie temperatury i wilgotności DHT za pomocą ESP8266 i platformy AskSensors IoT: W poprzedniej instrukcji przedstawiłem przewodnik krok po kroku, jak rozpocząć pracę z nodeMCU ESP8266 i platformą AskSensors IoT. W tym samouczku podłączam czujnik DHT11 do węzła MCU. DHT11 to powszechnie stosowany czujnik temperatury i wilgotności
Przechowuj i wykresuj dane EC/pH/ORP za pomocą TICK Stack i platformy NoCAN: 8 kroków
Przechowuj i kreśl wykresy EC/pH/ORP za pomocą TICK Stack i NoCAN Platform: W tym artykule omówimy, jak używać NoCAN Platform firmy Omzlo i czujników uFire do pomiaru EC, pH i ORP. Jak mówi ich strona internetowa, czasami łatwiej jest po prostu poprowadzić kabel do węzłów czujników. CAN ma tę zaletę, że komunikacja i moc w jednym c
Automatyczny system przejazdów kolejowych za pomocą wbudowanej platformy opartej na Arduino: 9 kroków
Automatyczny system przejazdów kolejowych za pomocą wbudowanej platformy opartej na Arduino: Boże Narodzenie już za tydzień! Wszyscy są zajęci świętowaniem i zdobywaniem prezentów, które, nawiasem mówiąc, stają się jeszcze trudniejsze do zdobycia z niekończącymi się możliwościami wokół nas. Co powiesz na klasyczny prezent i dodaj odrobinę majsterkowania do
Wykrywacz dymu IOT: Zaktualizuj istniejący wykrywacz dymu za pomocą IOT: 6 kroków (ze zdjęciami)
IOT Smoke Detector: Update Existing Smoke Detector With IOT: List of contributor,Inventor:Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Kierownik: Dr Chia Kim Seng Wydział Inżynierii Mechatroniki i Robotyki, Wydział Inżynierii Elektrycznej i Elektronicznej, Universiti Tun Hussein Onn Malezja.Dystrybuuj