Spisu treści:

Wykrywacz ruchu za pomocą platformy Thingsai.io Iot Cloud: 6 kroków
Wykrywacz ruchu za pomocą platformy Thingsai.io Iot Cloud: 6 kroków

Wideo: Wykrywacz ruchu za pomocą platformy Thingsai.io Iot Cloud: 6 kroków

Wideo: Wykrywacz ruchu za pomocą platformy Thingsai.io Iot Cloud: 6 kroków
Wideo: Zrób to sam -proste IoT (Internet of Things) publikujące pomiary po HTTP/MQTT do chmury Thingspeak 2024, Listopad
Anonim
Detektor ruchu za pomocą platformy Thingsai.io Iot Cloud
Detektor ruchu za pomocą platformy Thingsai.io Iot Cloud

W tym samouczku wyjaśnię wykrywanie ruchu za pomocą czujnika PIR i Esp32 wraz z platformą chmury IOT Thingai.io

Krok 1: Komponenty

składniki
składniki
składniki
składniki

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

ZNAJOMOŚCI
ZNAJOMOŚCI

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

WYJŚCIE
WYJŚCIE

To jest wykres słupkowy przedstawiający wartości odczytane z czujnika w platformie chmurowej thingsai, io,

Krok 5: Wykres

Wykres
Wykres

Jest to graficzna reprezentacja wartości z czujnika. Z powyższego wykresu możemy przeanalizować zastosowanie czujnika. Dziękuję

Zalecana: