Obsah:

LDR pomocí Thingsai Cloud: 13 kroků
LDR pomocí Thingsai Cloud: 13 kroků

Video: LDR pomocí Thingsai Cloud: 13 kroků

Video: LDR pomocí Thingsai Cloud: 13 kroků
Video: dowody, że szkoła jest niepotrzebna 😳 (pokaz to rodzicom) 2024, Listopad
Anonim
LDR pomocí Thingsai Cloud
LDR pomocí Thingsai Cloud

AHOJ … … dnes se naučíme měřit intenzitu světla a zveřejňovat hodnoty na cloudové platformě THINGSAI IOT pomocí ESP32.

Požadavky na provedení tohoto projektu jsou

1. Vývojová deska ESP32 (použil jsem ESP32 DEVKIT V1)

2. Senzor LDR

3. Propojovací vodiče

4. Účtujte na IOT PLATFORMĚ THINGSAI

Krok 1: Vytvoření a přihlášení k platformě THINGSIO

Vytvoření a přihlášení k platformě THINGSIO
Vytvoření a přihlášení k platformě THINGSIO

Přihlaste se k účtu THINGS AI. Pokud jste nový, zaregistrujte se na účet stisknutím tlačítka Registrovat a vyplňte všechna přihlašovací údaje. Váš účet bude vytvořen a od té doby budete moci pracovat na cloudové platformě a vytvářet svůj vlastní projekt

Krok 2: Vytvoření nového projektu

Vytvoření nového projektu
Vytvoření nového projektu

Po přihlášení k účtu vytvořte projekt kliknutím na nový projekt a jeho pojmenováním.

Krok 3: Vytvoření nového zařízení

Vytvoření nového zařízení
Vytvoření nového zařízení

po vytvoření projektu je další věcí, kterou musíte udělat, je vytvořit nové zařízení. Zadejte název zařízení a zadejte ID zařízení buď ručně, nebo generované systémem.

Krok 4: Definování parametru zařízení

Definování parametru zařízení
Definování parametru zařízení

Zadejte parametr zařízení a poté vyberte typ parametru

Krok 5: Aktualizace zařízení

Aktualizace zařízení
Aktualizace zařízení

Vyberte parametr a poté aktualizujte zařízení

Krok 6: Kódování

Kódování
Kódování

Ze vzorových kódů vyberte kód esp32, zkopírujte jej a poté vložte do arduino IDE a proveďte potřebné změny podle požadavku. Uvedl jsem kód níže

#include #include

#zahrnout

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

int t; int outputpin = A0; // ds18b20

int hodnota senzoru;

//////////////////////////////////////////// VŠE PROHLÁŠENÍ PRO CLOUD ////// //////////////////////////

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

host = devapi2.thethingscloud.com

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

const char* time_server = "baas.thethingscloud.com"; // toto má převést časové razítko

const int httpPort = 80;

const int httpsPort = 443;

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

časové razítko char [10];

WiFiMulti WiFiMulti;

// Pomocí třídy WiFiClient vytvořte připojení TCP

Klient WiFiClient;

///////////////////////////////////////////// VÝPOČET TIMESTAMP ////////// /////////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis (); // klient WiFiClient;

while (client.available () == 0)

{

if (millis () - timeout> 50 000)

{

client.stop (); návrat 0;

}

}

while (client.available ())

{

Řetězec řetězce = client.readStringUntil ('\ r'); // indexOf () je funkce pro hledání něčeho, vrací -1, pokud není nalezena

int pos = line.indexOf ("\" časové razítko / ""); // vyhledejte "\" časové razítko / "" od začátku odpovědi a poté zkopírujte všechna data, bude to vaše časové razítko

if (poz> = 0)

{

int j = 0;

pro (j = 0; j <10; j ++)

{

časové razítko [j] = řádek [pos + 12 + j];

}

}

}

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

neplatné nastavení ()

{

Serial.begin (115200);

zpoždění (10);

// Začneme připojením k WiFi síti

WiFiMulti.addAP („wifi“, „pswrd“);

Serial.println ();

Serial.println ();

Serial.print ("Počkejte na WiFi …");

while (WiFiMulti.run ()! = WL_CONNECTED)

{

Serial.print (".");

zpoždění (500);

}

Serial.println ("");

Serial.println ("WiFi připojeno");

Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ());

zpoždění (500);

}

prázdná smyčka ()

{

int analogValue = analogRead (outputpin);

{//////////////////////////////////////////// ODESLAT DOTAZ A ZÍSKAT ODPOVĚĎ /// //////////////////////

sensorvalue = analogRead (A0); // čtení analogového vstupního pinu 0

sensorvalue = hodnota senzoru/100;

Serial.print (hodnota senzoru, DEC); // vytiskne přečtenou hodnotu

Serial.print ("\ n"); // vytiskne mezeru mezi čísly

zpoždění (1000); // počkejte 100 ms na další čtení

Serial.print („připojení k“); Serial.println (hostitel); // definováno vzhůru nohama:- host = devapi2.thethingscloud.com nebo 139.59.26.117

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

Serial.println ("uvnitř získat časové razítko / n");

if (! client.connect (time_server, { vrátit se; //*-*-*-*-*-*-*-*-*-*}

client.println ("GET/api/timestamp HTTP/1.1"); // Co dělá tato část, nedostal jsem client.println ("Host: baas.thethingscloud.com");

client.println ("Řízení mezipaměti: bez mezipaměti");

client.println ("Pošťák-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println ();

GiveMeTimestamp (); // zavolá funkci, která získá odpověď časového razítka ze serveru Serial.println ("timestamp receiveieved");

Serial.println (časové razítko);

Serial.println („uvnitř ThingsCloudPost“);

Řetězec PostValue = "{" device_id / ": 61121695844, \" slave_id / ": 2";

PostValue = PostValue + ", \" dts / ":" + časové razítko;

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

Serial.println (PostValue);

/ * vytvořit instanci WiFiClientSecure */ WiFiClientSecure klienta;

Serial.println ("Připojit k serveru přes port 443");

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

{

Serial.println ("Připojení se nezdařilo!");

}

jiný

{Serial.println ("Připojeno k serveru!"); / * vytvořit požadavek HTTP */

client.println ( POST/zařízení/data zařízení

client.println ("Host: api.thingsai.io"); //client.println("Connection: close "); tř

ient.println ("Typ obsahu: aplikace/json");

client.println ("ovládání mezipaměti: bez mezipaměti");

client.println ("Autorizace: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkxs" client.print ("Délka obsahu:");

client.println (PostValue.length ());

client.println ();

client.println (PostValue); ////////////////////////////////////// VYDÁVÁNÍ dat do cloudu je hotové a nyní získejte odpověď v cloudu server ////////////////////

Serial.print ("Čekání na odpověď");

while (! client.available ()) {

zpoždění (50); //

Serial.print (".");

} / * pokud jsou k dispozici data, přijměte je a vytiskněte na terminálu * /

while (client.available ())

{

char c = client.read ();

Serial.write (c);

}

/ * pokud se server odpojí, zastavte klienta */

if (! client.connected ())

{

Serial.println ();

Serial.println ("Server odpojen");

client.stop ();

}

} Serial.println ("////////////////////////// KONEC ////////////////////////// /");

zpoždění (3000); }}

Krok 7: Výběr deskového a komunikačního portu

Výběr palubního a komunikačního portu
Výběr palubního a komunikačního portu

Z nástrojů vyberte desku a poté vyberte port com

Krok 8: Připojení obvodu

Zapojení obvodů
Zapojení obvodů
Zapojení obvodů
Zapojení obvodů
Zapojení obvodů
Zapojení obvodů

Kódování se provede a poté proveďte následující připojení, jak je uvedeno níže

PŘIPOJENÍ:

GND esp32 až GND senzoru LDR

3V3 0f esp32 do Vcc LDR

VP esp32 do A0 LDR

Krok 9: Kompilace a nahrání

Zkompilovat a nahrát
Zkompilovat a nahrát

zkompilovat a nahrát kód do esp32 a poté načíst hodnoty ze sériového monitoru. To by ukázalo výsledek něco takového

Krok 10: Sériový monitor

Sériový monitor
Sériový monitor

Hodnoty jsou získány na sériovém monitoru a poté odeslány do cloudové platformy THINGSAI IOT.

Krok 11: Čtení

Čtení
Čtení

To ukazuje hodnoty získané z desky esp32.

Krok 12: Grafická reprezentace

Grafické znázornění
Grafické znázornění

Toto je grafické znázornění získaných hodnot. Tím tutoriál končí. Snad jsi to pochopil Děkuji

Doporučuje: