Inhoudsopgave:

LDR Thingsai Cloud gebruiken: 13 stappen
LDR Thingsai Cloud gebruiken: 13 stappen

Video: LDR Thingsai Cloud gebruiken: 13 stappen

Video: LDR Thingsai Cloud gebruiken: 13 stappen
Video: Cloudprofessor with water sensor protect floods 2024, Juli-
Anonim
LDR met behulp van Thingsai Cloud
LDR met behulp van Thingsai Cloud

HEY … vandaag gaan we leren over het meten van de intensiteit van licht en het plaatsen van de waarden in het THINGSAI IOT-cloudplatform met behulp van ESP32.

De vereisten om dit project te doen zijn:

1. ESP32 Development Board (ik heb ESP32 DEVKIT V1) gebruikt

2. LDR-sensor

3. Doorverbindingsdraden

4. Account in THINGSAI IOT-PLATFORM

Stap 1: Aanmaken en inloggen op het THINGSIO-platform

Aanmaken en inloggen op het THINGSIO-platform
Aanmaken en inloggen op het THINGSIO-platform

Log in op het THINGS AI-account. Als u nieuw bent, registreer u dan op het account door op de registerknop te drukken en vul alle inloggegevens in. Uw account wordt aangemaakt en vanaf dat moment kunt u op het cloudplatform werken en uw aangepaste project maken

Stap 2: Nieuw project maken

Nieuw project maken
Nieuw project maken

Nadat u bent ingelogd op het account, klikt u op het nieuwe project en geeft u de projectnaam op om een project aan te maken.

Stap 3: Een nieuw apparaat maken

Een nieuw apparaat maken
Een nieuw apparaat maken

na het maken van het project is het volgende dat u hoeft te doen een nieuw apparaat maken. Geef de apparaatnaam op en voer de apparaat-ID handmatig of door het systeem gegenereerd in.

Stap 4: Apparaatparameter definiëren

Apparaatparameter definiëren
Apparaatparameter definiëren

Geef de apparaatparameter op en selecteer vervolgens het type parameter

Stap 5: Het apparaat bijwerken

Het apparaat bijwerken
Het apparaat bijwerken

Selecteer de parameter en update vervolgens het apparaat

Stap 6: Coderen

codering
codering

Selecteer uit de voorbeeldcodes de code van esp32, kopieer deze en plak deze in de arduino IDE en breng de nodige wijzigingen aan volgens de vereisten. Ik heb onderstaande code gegeven

#include #include

#erbij betrekken

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

int t; int outputpin = A0;//ds18b20

int sensorwaarde;

//////////////////////////////////////// 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() { unsigned long timeout = 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);

// We beginnen door verbinding te maken met een wifi-netwerk

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

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/// ////////////////////

sensorwaarde = analoog lezen (A0); // lees analoge ingangspin 0

sensorwaarde=sensorwaarde/100;

Serial.print (sensorwaarde, DEC); // drukt de gelezen waarde af

Serieel.print(" \n"); // drukt een spatie af tussen de cijfers

vertraging (1000); // wacht 100 ms op de volgende meting

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 client.println niet gekregen ("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 het tijdstempelantwoord van de server krijgt Serial.println("timestamp receieved");

Serial.println (tijdstempel);

Serial.println ("inside ThingsCloudPost");

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

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

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

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"); cl

ient.println ("Inhoudstype: applicatie/json");

client.println("cache-control: no-cache");

client.println("Autorisatie: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTk5"); 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 er gegevens beschikbaar zijn, ontvangen en afdrukken naar Terminal */

terwijl (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");

klant.stop();

}

} Serial.println("////////////////////// HET EINDE //////////////////// /");

vertraging (3000); } }

Stap 7: Selectie van bord en Com-poort

Selectie van Board en Com-poort
Selectie van Board en Com-poort

Selecteer in tools het bord en selecteer vervolgens de com-poort

Stap 8: Circuitverbindingen

Circuit-aansluitingen
Circuit-aansluitingen
Circuit-aansluitingen
Circuit-aansluitingen
Circuit-aansluitingen
Circuit-aansluitingen

De codering is voltooid en maak vervolgens de volgende verbindingen zoals hieronder vermeld:

AANSLUITINGEN:

GND van esp32 naar GND van de LDR-sensor

3V3 0f esp32 naar de Vcc van de LDR

VP van esp32 naar de A0 van de LDR

Stap 9: compileren en uploaden

Compileren en uploaden
Compileren en uploaden

compileer en upload de code naar de esp32 en lees vervolgens de metingen van de seriële monitor. Dat zou een resultaat als dit laten zien

Stap 10: Seriële monitor

Seriële monitor
Seriële monitor

De waarden worden verkregen op de seriële monitor en vervolgens verzonden naar het THINGSAI IOT Cloud-platform.

Stap 11: Lezingen

Lezingen
Lezingen

Dit toont de waarden die zijn verkregen van het esp32-bord.

Stap 12: Grafische weergave

Grafische weergave
Grafische weergave

Dit is de grafische weergave van de verkregen waarden. Dat is het einde van de tutorial. Ik hoop dat je het hebt begrepen. Bedankt

Aanbevolen: