Inhoudsopgave:
- Stap 1: Componenten
- Stap 2: VERBINDINGEN
- Stap 3: CODEREN
- Stap 4: UITGANG
- Stap 5: Grafiek
- Stap 6: Hier is een video van Breif-uitleg
Video: Bewegingsdetector met behulp van Thingsai.io Iot Cloud Platform - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
In deze tutorial ga ik uitleggen over bewegingsdetectie met behulp van een PIR-sensor en Esp32 samen met een IOT-cloudplatform Thingai.io
Stap 1: Componenten
HARDWARE ONDERDELEN;
1.esp32 Ontwikkelingsbord
2. PIR-sensor
3. Doorverbindingsdraden
SOFTWARE:
1. Arduino IDE
2. Thingsai.io-account
Stap 2: VERBINDINGEN
De aansluitingen zijn stil eenvoudig.
PIR PINS ------------ ESP32 PINS
VCC-------------------3V3 op esp32
GND ------------------ GND op esp32
UIT ------------------- D22 op esp32
Stap 3: CODEREN
Plak deze code in je Arduino IDE met wat update, je bewegingssensor geeft de uitvoer foutloos.
#erbij betrekken
#erbij betrekken
#erbij betrekken
int telling=0, i, m, j, k;
int t, t1, t2, t3;
int-pin = 22;
//////////////////////////////////////// ALLE VERKLARINGEN voor CLOUD ////// ////////////////////////
const char* host = "api.thingsai.io"; // OF host = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // OF /api/v2/thingscloud2/_table/data_ac
const char* time_server = "baas.thethingscloud.com"; //dit is om de tijdstempel te converteren
const int httpPort = 80;
const int httpsPort = 443;
const char* server = "api.thingsai.io"; // Server-URL
char tijdstempel [10];
WiFiMulti WiFiMulti;
// Gebruik de WiFiClient-klasse om TCP-verbindingen te maken
WiFiClient-client;
/////////////////////////////////////// TIMESTAMP BEREKENING functie//////// ///////////////////////////////
int GiveMeTimestamp()
{
niet-ondertekende lange time-out = millis();
// WiFiClient-client;
while (client.available() == 0)
{
if (millis() - time-out > 50000)
{
klant.stop();
retourneer 0;
}
}
terwijl (client.available())
{
String line = client.readStringUntil('\r'); //indexOf() is een functie om te zoeken naar smthng, het retourneert -1 indien niet gevonden
int pos = line.indexOf("\"tijdstempel\""); // zoek naar "\"timestamp\"" vanaf het begin van het antwoord kreeg en kopieer daarna alle gegevens, dit is uw tijdstempel
als (pos >= 0)
{
intj = 0;
voor(j=0;j<10;j++)
{
tijdstempel [j] = regel [pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
ongeldige setup()
{
Serieel.begin(115200);
vertraging(10);
pinMode (pin, INGANG);
// We beginnen door verbinding te maken met een wifi-netwerk
WiFiMulti.addAP("wifi_name", "Wifi_password");
Serieel.println();
Serieel.println();
Serial.print("Wacht op wifi… ");
while(WiFiMulti.run() != WL_CONNECTED) {
Serieel.print(".");
vertraging (500);
}
Serieel.println("");
Serial.println("WiFi verbonden");
Serial.println("IP-adres: ");
Serial.println(WiFi.localIP());
vertraging (500);
}
lege lus()
{
int analogValue = analogRead (outputpin);
{
/////////////////////////////////////// STUUR DE QUERY EN ONTVANG DE ANTWOORD//// ///////////////////
{
bool is gedetecteerd = digitalRead (pin);
als (is gedetecteerd){
Serial.println("Aanwezigheid gedetecteerd");
}
vertraging (500);
}
Serial.print("verbinden met ");
Serieel.println(host); // gedefinieerde bovenkant: - host = devapi2.thethingscloud.com of 139.59.26.117
///////////////////////////////////// TIJDSTEMPEL CODESNIPPET ////////// ///////////////
Serial.println("inside get timestamp\n");
if (!client.connect(time_server, {
opbrengst; //*-*-*-*-*-*-*-*-*-*
}
client.println ("GET /api/timestamp HTTP/1.1"); // Wat doet dit deel, ik heb het niet begrepen
client.println("Host: baas.thethingscloud.com");
client.println("Cache-Control: no-cache");
client.println ("Postbode-token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klant.println();
GeefMeTijdstempel(); // het zal de functie aanroepen die de tijdstempelreactie van de server zal krijgen
Serial.println("tijdstempel ontvangen");
Serial.println (tijdstempel);
Serial.println ("inside ThingsCloudPost");
String PostValue = "{"device_id\": 61121695839, \"slave_id\": 2";
PostValue = PostValue + ", \"dts\":" +tijdstempel;
PostValue = PostValue +", \"data\":{"PIR\":" + pin +"}"+"}";
Serial.println(PostValue);
/* maak een instantie van WiFiClientSecure */
WiFiClientSecure-client;
Serial.println("Verbind met server via poort 443");
if (!client.connect(server, 443)){
Serial.println("Verbinding mislukt!");
} anders {
Serial.println("Verbonden met server!");
/* HTTP-verzoek maken */
client.println( POST /devices/deviceData
client.println("Host: api.thingsai.io");
//client.println ("Verbinding: sluiten");
client.println ("Inhoudstype: applicatie/json");
client.println("cache-control: no-cache");
client.println("Autorisatie: Drager eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTk6");
client.print ("Inhoudslengte: ");
client.println(PostValue.length());
klant.println();
cliënt.println(PostValue);
//////////////////////////////////Het plaatsen van de gegevens in de cloud is voltooid en ontvang nu het reactieformulier cloud server//////////////////
Serial.print("Wachten op antwoord ");
while (!client.available()){
vertraging (50); //
Serieel.print(".");
}
/* als gegevens beschikbaar zijn, ontvangen en afdrukken naar Terminal */
while (client.available()) {
char c = cliënt.lezen();
Serieel.schrijven(c);
}
/* als de server de verbinding heeft verbroken, stop de client */
if (!client.connected()) {
Serieel.println();
Serial.println("Server verbroken");javascript:;
klant.stop();
}
}
Serial.println("////////////////////// HET EINDE ///////////////////// ");
vertraging (3000);
}
}
Stap 4: UITGANG
Dit is de staafgrafiekweergave van de waarden die worden afgelezen van de sensor in het thingsai, io cloudplatform,
Stap 5: Grafiek
Dit is de grafische weergave van de waarden van de sensor. Uit de bovenstaande grafiek kunnen we de toepassing van de sensor analyseren. Bedankt
Aanbevolen:
DHT-temperatuur- en vochtigheidsbewaking met behulp van de ESP8266 en het AskSensors IoT-platform: 8 stappen
DHT-temperatuur- en vochtigheidsbewaking met behulp van de ESP8266 en het AskSensors IoT-platform: in een vorige instructable presenteerde ik een stapsgewijze handleiding om aan de slag te gaan met de ESP8266-nodeMCU en het AskSensors IoT-platform. In deze tutorial sluit ik een DHT11-sensor aan naar het knooppunt MCU. De DHT11 is een veelgebruikte Temperatuur- en luchtbevochtiger
Temperatuur- en vochtigheidsbewaking met behulp van de ESP-01 & DHT en de AskSensors Cloud: 8 stappen
Temperatuur- en vochtigheidsbewaking met behulp van de ESP-01 & DHT en de AskSensors Cloud: in deze instructie gaan we leren hoe we de temperatuur- en vochtigheidsmetingen kunnen bewaken met behulp van het IOT-MCU/ESP-01-DHT11-bord en het AskSensors IoT-platform .Ik kies de IOT-MCU ESP-01-DHT11-module voor deze toepassing omdat het
IoT Basics: uw IoT verbinden met de cloud met behulp van Mongoose OS: 5 stappen
IoT Basics: uw IoT verbinden met de cloud met behulp van Mongoose OS: als u een persoon bent die van knutselen en elektronica houdt, komt u vaker wel dan niet de term Internet of Things tegen, meestal afgekort als IoT, en dat het verwijst naar een reeks apparaten die verbinding kunnen maken met internet! Zo iemand zijn
Hoe u gebruikersniveaus van NUMA toevoegt aan uw exemplaar van N met behulp van NumADD Firefox AddOn: 4 stappen
Gebruikersniveaus van NUMA toevoegen aan uw exemplaar van N NumADD Firefox-add-on gebruiken: Elke gebruiker van Metanet's N-database op gebruikersniveau NUMA weet hoe onhandig de interface is voor het kopiëren van door gebruikers gemaakte niveaus naar uw exemplaar van het spel. NumADD, elimineert de noodzaak van kopiëren en plakken en maakt het overzetten van niveaus het werk van één muisklik
Bewegingsdetector met Blynk-meldingen (WeMos D1 Mini + HC-SR04): 4 stappen (met afbeeldingen)
Bewegingsdetector met Blynk-meldingen (WeMos D1 Mini + HC-SR04): STEM op dit project in de draadloze wedstrijd. Bedankt! Update nr. 2 - Enkele aanpassingen (versie 2.2), u kunt uw sensor (bereik en naam) rechtstreeks in de definitie instellen. Ook gebeurde het soms dat de sensor verkeerde waarden las en een melding stuurde