Sisällysluettelo:

LDR Thingsai Cloudin avulla: 13 vaihetta
LDR Thingsai Cloudin avulla: 13 vaihetta

Video: LDR Thingsai Cloudin avulla: 13 vaihetta

Video: LDR Thingsai Cloudin avulla: 13 vaihetta
Video: Hubble - 15 years of discovery 2024, Marraskuu
Anonim
LDR Thingsai Cloudin avulla
LDR Thingsai Cloudin avulla

HEI….. tänään opimme valon voimakkuuden mittaamisesta ja arvojen julkaisemisesta THINGSAI IOT -pilvialustalle ESP32: n avulla.

Tämän projektin toteuttamisen edellytykset ovat

1. ESP32 Development Board (olen käyttänyt ESP32 DEVKIT V1)

2. LDR -anturi

3. Hyppyjohdot

4. Tili THINGSAI IOT -ALUSTALLA

Vaihe 1: THINGSIO -alustan luominen ja sisäänkirjautuminen

THINGSIO -alustan luominen ja sisäänkirjautuminen
THINGSIO -alustan luominen ja sisäänkirjautuminen

Kirjaudu THINGS AI -tilille. Jos olet uusi, rekisteröidy tilille painamalla rekisteröintipainiketta ja täytä kaikki käyttäjätiedot. Tilisi luodaan ja siitä lähtien voit työskennellä pilvialustalla ja luoda mukautetun projektisi

Vaihe 2: Uuden projektin luominen

Uuden projektin luominen
Uuden projektin luominen

Kun olet kirjautunut tilille, luo projekti napsauttamalla uutta projektia ja antamalla sitten projektin nimi.

Vaihe 3: Uuden laitteen luominen

Uuden laitteen luominen
Uuden laitteen luominen

Kun olet luonut projektin, seuraavaksi sinun on luotava uusi laite. anna laitteen nimi ja kirjoita laitteen tunnus joko manuaalisesti tai järjestelmän luoma.

Vaihe 4: Laitteen parametrin määrittäminen

Laitteen parametrin määrittäminen
Laitteen parametrin määrittäminen

Anna laiteparametri ja valitse sitten parametrin tyyppi

Vaihe 5: Laitteen päivittäminen

Laitteen päivittäminen
Laitteen päivittäminen

Valitse parametri ja päivitä laite

Vaihe 6: Koodaus

Koodaus
Koodaus

Valitse näytekoodeista esp32 -koodi ja kopioi se ja liitä se arduino IDE: hen ja tee tarvittavat muutokset vaatimuksen mukaisesti. Annoin alla olevan koodin

#Sisällytä #Sisällytä

#sisältää

int -luku = 0, i, m, j, k;

int t; int outputpin = A0; // ds18b20

int anturin arvo;

///////////////////////////////////////////////////////////////////// KAIKKI ILMOITUKSET PILVILLE ////// /////////////////////////

const char* isäntä = "api.thingsai.io"; // TAI

isäntä = devapi2.thethingscloud.com

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

const char* time_server = "baas.thethingscloud.com"; // tämä on aikaleiman muuntaminen

const int httpPort = 80;

const int httpsPort = 443;

const char* palvelin = "api.thingsai.io"; // Palvelimen URL -osoite

char -aikaleima [10];

WiFiMulti WiFiMulti;

// Käytä WiFiClient -luokkaa TCP -yhteyksien luomiseen

WiFiClient -asiakas;

///////////////////////////////////////////////////////////////////// AIKAISLEIMAN LASKELU -funktio //////// /////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis (); // WiFiClient -asiakas;

kun taas (client.available () == 0)

{

jos (millis () - aikakatkaisu> 50000)

{

client.stop (); palauta 0;

}

}

kun taas (client.available ())

{

Merkkijono = client.readStringUntil ('\ r'); // indexOf () on smthng -hakutoiminto, se palauttaa -1, jos sitä ei löydy

int pos = line.indexOf ("\" aikaleima / ""); // etsi "\" aikaleima / "" vastauksen alusta ja kopioi kaikki tiedot sen jälkeen, se on aikaleimasi

jos (pos> = 0)

{

int j = 0;

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

{

aikaleima [j] = rivi [pos + 12 + j];

}

}

}

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

mitätön asennus ()

{

Sarja.alku (115200);

viive (10);

// Aloitamme muodostamalla yhteyden WiFi -verkkoon

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

Sarja.println ();

Sarja.println ();

Serial.print ("Odota WiFi -yhteyttä …");

kun taas (WiFiMulti.run ()! = WL_CONNECTED)

{

Serial.print (".");

viive (500);

}

Serial.println ("");

Serial.println ("WiFi -yhteys");

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

viive (500);

}

tyhjä silmukka ()

{

int analogValue = analogRead (outputpin);

{////////////////////////////////////////////////////// LÄHETÄ KYSYMYS JA VASTAA VASTAUS /// /////////////////////

anturin arvo = analoginen luku (A0); // lue analogisen tulon nasta 0

anturin arvo = anturin arvo/100;

Sarjajälki (anturin arvo, DEC); // tulostaa luetun arvon

Serial.print ("\ n"); // tulostaa välilyönnin numeroiden väliin

viive (1000); // odota 100 ms seuraavaa lukemista

Serial.print ("yhdistäminen"); Serial.println (isäntä); // määritelty ylösalaisin:- isäntä = devapi2.thethingscloud.com tai 139.59.26.117

/////////////////////////////////////////////////////////////////////////////////////////////// ////////////////

Serial.println ("inside get timestamp / n");

if (! client.connect (aikapalvelin, {paluu; //*-*-*-*-*-*-*-*-*-*}

client.println ("GET/api/aikaleima HTTP/1.1"); // Mitä tämä osa tekee, en saanut client.println ("Isäntä: baas.thethingscloud.com");

client.println ("Välimuistin hallinta: ei välimuistia");

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

client.println ();

GiveMeTimestamp (); // se kutsuu funktion, joka saa aikaleiman vastauksen palvelimelta Serial.println ("aikaleima vastaanotettu");

Serial.println (aikaleima);

Serial.println ("sisällä ThingsCloudPost");

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

Postiarvo = Postiarvo + ", \" dts / ":" + aikaleima;

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

Serial.println (PostValue);

/ * luo WiFiClientSecure -ilmentymä */ WiFiClientSecure -asiakas;

Serial.println ("Yhdistä palvelimeen portin 443 kautta");

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

{

Serial.println ("Yhteys epäonnistui!");

}

muu

{Serial.println ("Yhdistetty palvelimeen!"); / * luo HTTP -pyyntö */

client.println ( POST/devices/deviceData

client.println ("Isäntä: api.thingsai.io"); //asiakas.println ("Yhteys: sulje"); cl

ient.println ("Sisältötyyppi: application/json");

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

client.println ("Valtuutus: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2p2kvkfk" client.print ("Content-Length:");

client.println (PostValue.length ());

client.println ();

client.println (PostValue); ////////////////////////////////////////////////// Tietojen julkaiseminen pilveen on valmis ja nyt saat vastauslomakkeen pilvi palvelin ////////////////////

Serial.print ("Odotetaan vastausta");

while (! client.available ()) {

viive (50); //

Serial.print (".");

} / * jos tietoja on saatavilla, vastaanota ja tulosta päätelaitteeseen * /

kun taas (client.available ())

{

char c = asiakas.luku ();

Serial.write (c);

}

/ * jos palvelimen yhteys katkeaa, pysäytä asiakas */

jos (! client.connected ())

{

Sarja.println ();

Serial.println ("Palvelin irrotettu");

client.stop ();

}

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

viive (3000); }}

Vaihe 7: Hallituksen ja Com -portin valinta

Hallituksen ja Com -portin valinta
Hallituksen ja Com -portin valinta

Valitse työkaluista taulu ja sitten com -portti

Vaihe 8: Piiriliitännät

Piiriliitännät
Piiriliitännät
Piiriliitännät
Piiriliitännät
Piiriliitännät
Piiriliitännät

Koodaus suoritetaan ja muodostetaan seuraavat liitännät alla kuvatulla tavalla

LIITÄNNÄT:

GND esp32 - GND LDR -anturista

3V3 0f esp32 LDR: n Vcc: hen

Esp32: n VP LDR: n A0: een

Vaihe 9: Käännä ja lataa

Käännä ja lataa
Käännä ja lataa

koota ja lataa koodi esp32: een ja lue sitten sarjamonitorin lukemat. Se näyttäisi jotain tällaista tulosta

Vaihe 10: Sarjamonitori

Sarjamonitori
Sarjamonitori

Arvot saadaan sarjamonitorista ja lähetetään sitten THINGSAI IOT Cloud -alustaan.

Vaihe 11: Lukemat

Lukemat
Lukemat

Tämä näyttää esp32 -kortilta saadut arvot.

Vaihe 12: Graafinen esitys

Graafinen esitys
Graafinen esitys

Tämä on saatujen arvojen graafinen esitys. Se on opetusohjelman loppu. Toivottavasti ymmärsit. Kiitos

Suositeltava: