Inhaltsverzeichnis:

LDR mit Thingsai Cloud - Gunook
LDR mit Thingsai Cloud - Gunook

Video: LDR mit Thingsai Cloud - Gunook

Video: LDR mit Thingsai Cloud - Gunook
Video: Control LED & Devices from anywhere using ThingSpeak & NodeMcu|Getting Started with ThingSpeak Cloud 2024, November
Anonim
LDR mit Thingsai Cloud
LDR mit Thingsai Cloud

HEY…..heute werden wir lernen, die Lichtintensität zu messen und die Werte mit ESP32 in die THINGSAI IOT Cloud-Plattform zu posten.

Die Voraussetzungen für dieses Projekt sind

1. ESP32-Entwicklungsboard (ich habe ESP32 DEVKIT V1 verwendet)

2. LDR-Sensor

3. Überbrückungsdrähte

4. Konto auf der THINGSAI IOT-PLATTFORM

Schritt 1: Erstellen und Anmelden bei der THINGSIO-Plattform

Erstellen und Anmelden bei der THINGSIO-Plattform
Erstellen und Anmelden bei der THINGSIO-Plattform

Melden Sie sich beim THINGS AI-Konto an. Wenn Sie neu sind, registrieren Sie sich für das Konto, indem Sie auf die Schaltfläche Registrieren klicken und alle Anmeldeinformationen ausfüllen. Ihr Konto wird erstellt und von da an können Sie auf der Cloud-Plattform arbeiten und Ihr benutzerdefiniertes Projekt erstellen

Schritt 2: Neues Projekt erstellen

Neues Projekt erstellen
Neues Projekt erstellen

Nachdem Sie sich beim Konto angemeldet haben, klicken Sie zum Erstellen eines Projekts einfach auf das neue Projekt und geben Sie dann den Projektnamen ein.

Schritt 3: Erstellen eines neuen Geräts

Erstellen eines neuen Geräts
Erstellen eines neuen Geräts

Nach dem Anlegen des Projekts müssen Sie als nächstes ein neues Gerät erstellen. Geben Sie den Gerätenamen und die Geräte-ID entweder manuell oder systemgeneriert ein.

Schritt 4: Geräteparameter definieren

Geräteparameter definieren
Geräteparameter definieren

Geben Sie den Geräteparameter ein und wählen Sie dann die Art des Parameters

Schritt 5: Aktualisieren des Geräts

Aktualisieren des Geräts
Aktualisieren des Geräts

Wählen Sie den Parameter aus und aktualisieren Sie dann das Gerät

Schritt 6: Codierung

Codierung
Codierung

Wählen Sie aus den Beispielcodes den Code von esp32 aus, kopieren Sie ihn und fügen Sie ihn dann in die Arduino-IDE ein und nehmen Sie die erforderlichen Änderungen gemäß den Anforderungen vor. Ich habe den Code unten angegeben

#einschließen #einschließen

#enthalten

int count = 0, i, m, j, k;

int t; int Ausgabepin = A0; // ds18b20

int Sensorwert;

/////////////////////////////////////// ALLE ERKLÄRUNGEN für CLOUD ////// /////////////////////////

const char* host = "api.thingsai.io"; // ODER

host = devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; // ODER /api/v2/thingscloud2/_table/data_ac

const char* time_server = "baas.thethingscloud.com"; // dies ist zum Konvertieren des Zeitstempels

const int httpPort = 80;

const int httpsPort = 443;

const char* server = "api.thingsai.io"; // Server-URL

char-Zeitstempel[10];

WiFiMulti WiFiMulti;

// Verwenden Sie die WiFiClient-Klasse, um TCP-Verbindungen zu erstellen

WiFiClient-Client;

////////////////////////////////////// Funktion ZEITSTEMPELBERECHNUNG ///////// /////////////////////////////// int GiveMeTimestamp () { unsigned long timeout = millis (); // WiFiClient-Client;

while (client.verfügbar() == 0)

{

if (millis() - Zeitüberschreitung > 50000)

{

client.stop(); 0 zurückgeben;

}

}

while (client.verfügbar())

{

String line = client.readStringUntil('\r'); //indexOf() ist eine Funktion, um nach smthng zu suchen, es gibt -1 zurück, wenn es nicht gefunden wird

int pos = line.indexOf("\"Zeitstempel\""); // suche nach "\"timestamp\"" vom Anfang der erhaltenen Antwort und kopiere alle Daten danach, es wird dein Zeitstempel sein

wenn (pos >= 0)

{

intj = 0;

für(j=0;j<10;j++)

{

Zeitstempel[j] = Zeile[pos + 12 + j];

}

}

}

} ////////////////////////////////////////////////////////////////////////////////////////////////////////

Void-Setup ()

{

Serial.begin(115200);

Verzögerung(10);

// Wir beginnen mit der Verbindung mit einem WiFi-Netzwerk

WiFiMulti.addAP("wifi", "pswrd");

Serial.println();

Serial.println();

Serial.print("Warten Sie auf WLAN…");

while(WiFiMulti.run() != WL_CONNECTED)

{

Serial.print(".");

Verzögerung (500);

}

Serial.println("");

Serial.println ("WiFi verbunden");

Serial.println("IP-Adresse:"); Serial.println (WiFi.localIP());

Verzögerung (500);

}

Leere Schleife ()

{

int analogValue = analogRead (Ausgangspin);

{ ////////////////////////////////////// ANFRAGE SENDEN UND ANTWORT ERHALTEN/// ////////////////////

Sensorwert = analogRead(A0); // Analogeingang Pin 0 lesen

Sensorwert = Sensorwert/100;

Serial.print (Sensorwert, DEC); // gibt den gelesenen Wert aus

Serial.print("\n"); // gibt ein Leerzeichen zwischen den Zahlen aus

Verzögerung (1000); // warte 100ms auf den nächsten Messwert

Serial.print ("Verbindung zu"); Serial.println (Host); // oben definiert: - host = devapi2.thethingscloud.com oder 139.59.26.117

//////////////////////////////////// TIMESTAMP CODE SNIPPET ////////// ///////////////

Serial.println("innerhalb Zeitstempel abrufen\n");

if (!client.connect(time_server, { Rückkehr; //*-*-*-*-*-*-*-*-*-* }

client.println("GET /api/timestamp HTTP/1.1"); //Was macht dieser Teil, ich habe client.println("Host: baas.thethingscloud.com");

client.println("Cache-Steuerung: kein Cache");

client.println("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println();

GiveMeTimestamp(); // es ruft die Funktion auf, die die Zeitstempelantwort vom Server Serial.println erhält ("timestamp receieved");

Serial.println (Zeitstempel);

Serial.println ("innerhalb von ThingsCloudPost");

String PostValue = "{"device_id\": 61121695844, \"slave_id\": 2";

PostValue = PostValue + ", \"dts\":" +Zeitstempel;

PostValue = PostValue +", \"data\":{"INTENSITY\":" + \sensorvalue +"}"+"}";

Serial.println (PostValue);

/* eine Instanz von WiFiClientSecure erstellen */ WiFiClientSecure-Client;

Serial.println("Verbindung zum Server über Port 443 herstellen");

if (!client.connect(server, 443))

{

Serial.println ("Verbindung fehlgeschlagen!");

}

anders

{ Serial.println ("Mit Server verbunden!"); /* HTTP-Anfrage erstellen */

client.println( POST /devices/deviceData

client.println("Host: api.thingsai.io"); //client.println("Verbindung: schließen"); cl

ient.println("Inhaltstyp: Anwendung/json");

client.println("Cache-Steuerung: kein Cache");

client.println("Autorisierung: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9jPKy); client.print("Inhaltslänge: ");

client.println(PostValue.length());

client.println();

client.println (PostWert); /////////////////////////////////POSTING der Daten in die Cloud ist abgeschlossen und jetzt erhalten Sie das Antwortformular cloud Server//////////////////

Serial.print ("Warten auf Antwort");

while (!client.verfügbar()){

Verzögerung (50); //

Serial.print(".");

} /* wenn Daten verfügbar sind, dann empfangen und an Terminal drucken */

while (client.verfügbar())

{

char c = client.read();

Serial.write (c);

}

/* Wenn der Server getrennt wurde, stoppen Sie den Client */

if (!client.connected())

{

Serial.println();

Serial.println("Server getrennt");

client.stop();

}

} Serial.println("///////////////////// DAS ENDE /////////////////// /");

Verzögerung (3000); } }

Schritt 7: Auswahl von Board und Com-Port

Auswahl von Board und Com-Port
Auswahl von Board und Com-Port

Wählen Sie aus den Tools das Board und dann den Com-Port aus

Schritt 8: Stromkreisverbindungen

Stromkreisanschlüsse
Stromkreisanschlüsse
Stromkreisanschlüsse
Stromkreisanschlüsse
Stromkreisanschlüsse
Stromkreisanschlüsse

Die Codierung ist abgeschlossen, dann stellen Sie die folgenden Verbindungen wie unten erwähnt her

ANSCHLÜSSE:

GND von esp32 zu GND des LDR-Sensors

3V3 0f esp32 zum Vcc des LDR

VP von esp32 zum A0 des LDR

Schritt 9: Kompilieren und hochladen

Kompilieren und hochladen
Kompilieren und hochladen

Kompilieren und laden Sie den Code in den esp32 und lesen Sie dann die Messwerte vom seriellen Monitor. Das würde ein Ergebnis wie dieses zeigen

Schritt 10: Serieller Monitor

Serieller Monitor
Serieller Monitor

Die Werte werden auf dem seriellen Monitor abgerufen und dann an die THINGSAI IOT Cloud-Plattform gesendet.

Schritt 11: Messwerte

Lesungen
Lesungen

Dies zeigt die von der esp32-Platine erhaltenen Werte.

Schritt 12: Grafische Darstellung

Grafische Darstellung
Grafische Darstellung

Dies ist die grafische Darstellung der erhaltenen Werte. Das ist das Ende des Tutorials. Hoffe du hast es verstanden. Danke schön

Empfohlen: