Indholdsfortegnelse:
- Trin 1: Oprettelse og logning på THINGSIO -platformen
- Trin 2: Oprettelse af nyt projekt
- Trin 3: Oprettelse af en ny enhed
- Trin 4: Definering af enhedsparameter
- Trin 5: Opdatering af enheden
- Trin 6: Kodning
- Trin 7: Valg af board og Com Port
- Trin 8: Kredsløbstilslutninger
- Trin 9: Kompiler og upload
- Trin 10: Seriel skærm
- Trin 11: Aflæsninger
- Trin 12: Grafisk repræsentation
- Trin 13:
Video: LDR Brug af Thingsai Cloud: 13 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
HEY….. i dag lærer vi om måling af lysets intensitet og postering af værdierne i THINGSAI IOT -cloudplatformen ved hjælp af ESP32.
Kravene til dette projekt er
1. ESP32 Development Board (jeg har brugt ESP32 DEVKIT V1)
2. LDR -sensor
3. Jumper Wires
4. Konto i THINGSAI IOT PLATFORM
Trin 1: Oprettelse og logning på THINGSIO -platformen
Log ind på THINGS AI -kontoen. Hvis du er ny, skal du registrere dig på kontoen ved at trykke på knappen Registrer og udfylde alle legitimationsoplysninger. Din konto vil blive oprettet, og derefter vil du kunne arbejde på cloudplatformen og oprette dit tilpassede projekt
Trin 2: Oprettelse af nyt projekt
Efter at have logget ind på kontoen, for at oprette et projekt, skal du bare klikke på det nye projekt og derefter give projektet navn.
Trin 3: Oprettelse af en ny enhed
efter oprettelse af projektet er det næste, du skal gøre, at oprette en ny enhed. Giv enhedsnavnet, og indtast enheds -id'et enten manuelt eller systemgenereret.
Trin 4: Definering af enhedsparameter
Giv enhedsparameteren, og vælg derefter typen af parameter
Trin 5: Opdatering af enheden
Vælg parameteren, og opdater derefter enheden
Trin 6: Kodning
Fra prøvekoderne skal du vælge koden til esp32 kopiere den og derefter indsætte den i arduino IDE og foretage de nødvendige ændringer i henhold til kravet. Jeg har givet koden herunder
#include #include
#omfatte
int count = 0, i, m, j, k;
int t; int outputpin = A0; // ds18b20
int sensorværdi;
//////////////////////////////////////////////////' ////////////////////////////
const char* host = "api.thingsai.io"; // ELLER
vært = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // ELLER/api/v2/thingscloud2/_table/data_ac
const char* time_server = "baas.thethingscloud.com"; // dette er at konvertere tidsstempel
const int httpPort = 80;
const int httpsPort = 443;
const char* server = "api.thingsai.io"; // Server -URL
kulstempel [10];
WiFiMulti WiFiMulti;
// Brug WiFiClient -klasse til at oprette TCP -forbindelser
WiFiClient -klient;
/////////////////////////////////////////////// TIMESTAMP CALCULATION function //////// ////////////////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis (); // WiFiClient -klient;
mens (client.available () == 0)
{
hvis (millis () - timeout> 50000)
{
client.stop (); returnere 0;
}
}
mens (client.available ())
{
String line = client.readStringUntil ('\ r'); // indexOf () er en funktion til at søge efter smthng, den returnerer -1, hvis den ikke findes
int pos = line.indexOf ("\" tidsstempel / ""); // søg efter "\" tidsstempel / "" fra svarets begyndelse fik og kopier alle data efter det, det er dit tidsstempel
hvis (pos> = 0)
{
int j = 0;
for (j = 0; j <10; j ++)
{
tidsstempel [j] = linje [pos + 12 + j];
}
}
}
} ////////////////////////////////////////////////////////////////////////////////////////////////////////
ugyldig opsætning ()
{
Serial.begin (115200);
forsinkelse (10);
// Vi starter med at oprette forbindelse til et WiFi -netværk
WiFiMulti.addAP ("wifi", "pswrd");
Serial.println ();
Serial.println ();
Serial.print ("Vent på WiFi …");
mens (WiFiMulti.run ()! = WL_CONNECTED)
{
Serial.print (".");
forsinkelse (500);
}
Serial.println ("");
Serial.println ("WiFi tilsluttet");
Serial.println ("IP -adresse:"); Serial.println (WiFi.localIP ());
forsinkelse (500);
}
hulrum ()
{
int analogValue = analogRead (outputpin);
{///////////////// ////////////////////////
sensorværdi = analogRead (A0); // læs analog input pin 0
sensorværdi = sensorværdi/100;
Serial.print (sensorværdi, DEC); // udskriver værdien læst
Serial.print ("\ n"); // udskriver et mellemrum mellem tallene
forsinkelse (1000); // vent 100 ms til næste læsning
Serial.print ("forbindelse til"); Serial.println (vært); // defineret upside:- host = devapi2.thethingscloud.com eller 139.59.26.117
///////////////////////////////////////////// TIMESTAMP CODE SNIPPET //////////// /////////////////
Serial.println ("inde få tidsstempel / n");
hvis (! client.connect (time_server, { Vend tilbage; //*-*-*-*-*-*-*-*-*-*}
client.println ("GET/api/tidsstempel HTTP/1.1"); // Hvad gør denne del, jeg fik ikke client.println ("Host: baas.thethingscloud.com");
client.println ("Cache-kontrol: ingen cache");
client.println ("Postbud-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // den kalder funktionen, der får tidsstempelresponsen fra serveren Serial.println ("tidsstempel modtaget");
Serial.println (tidsstempel);
Serial.println ("inde i ThingsCloudPost");
String PostValue = "{" device_id / ": 61121695844, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + tidsstempel;
PostValue = PostValue +", \" data / ": {" INTENSITY / ":" +\ sensorvalue +"}" +"}";
Serial.println (PostValue);
/ * opret en forekomst af WiFiClientSecure */ WiFiClientSecure -klient;
Serial.println ("Opret forbindelse til server via port 443");
hvis (! client.connect (server, 443))
{
Serial.println ("Forbindelsen mislykkedes!");
}
andet
{Serial.println ("Tilsluttet server!"); / * opret HTTP -anmodning */
client.println ( POST/devices/deviceData
client.println ("Host: api.thingsai.io"); //client.println("Forbindelse: luk "); cl
ient.println ("Indholdstype: applikation/json");
client.println ("cache-control: no-cache");
client.println ("Godkendelse: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNy" 9Y5Y9J7J5JyJ9J5JyJ9J5JyJ9y9y9y9j9y9j9j9j9j9j5j9j5j9j5j9j9j9j7j9xJ2JyJ9Kj9j9yyyyyyyyyyyyJNJJJJJJJg client.print ("Indholdslængde:");
client.println (PostValue.length ());
client.println ();
client.println (PostValue); //////////////////////////////////////// PLACERING af data på skyen er udført, og få nu svarformularen cloud server //////////////////////
Serial.print ("Venter på svar");
mens (! client.available ()) {
forsinkelse (50); //
Serial.print (".");
} / * hvis data er tilgængelige, derefter modtage og udskrive til Terminal * /
mens (client.available ())
{
char c = client.read ();
Serial.write (c);
}
/ * hvis serveren blev afbrudt, stop klienten */
hvis (! client.connected ())
{
Serial.println ();
Serial.println ("Server afbrudt");
client.stop ();
}
} Serial.println ("//////////////////////// END ////////////////////// /");
forsinkelse (3000); }}
Trin 7: Valg af board og Com Port
Vælg værktøjstavlen fra værktøjer, og vælg derefter com -porten
Trin 8: Kredsløbstilslutninger
Kodning udføres, og lav derefter følgende forbindelser som nævnt nedenfor
TILSLUTNINGER:
GND på esp32 til GND for LDR -sensoren
3V3 0f esp32 til Vcc i LDR
VP for esp32 til A0 i LDR
Trin 9: Kompiler og upload
kompilere og uploade koden til esp32 og derefter læse aflæsningerne fra den serielle skærm. Det ville vise et resultat sådan noget
Trin 10: Seriel skærm
Værdierne opnås på den serielle skærm, og derefter sendes de til THINGSAI IOT Cloud -platformen.
Trin 11: Aflæsninger
Dette viser de værdier, der er opnået fra esp32 -kortet.
Trin 12: Grafisk repræsentation
Dette er den grafiske fremstilling af de opnåede værdier. Det er slutningen på selvstudiet. Håber du har forstået. Tak skal du have
Anbefalede:
I2C / IIC LCD -skærm - Brug et SPI LCD til I2C LCD Display Brug SPI til IIC modul med Arduino: 5 trin
I2C / IIC LCD -skærm | Brug en SPI LCD til I2C LCD -skærmen Brug af SPI til IIC -modulet med Arduino: Hej fyre, da en normal SPI LCD 1602 har for mange ledninger at tilslutte, så det er meget svært at grænseflade det med arduino, men der er et modul på markedet, som kan konverter SPI -skærm til IIC -skærm, så du skal kun tilslutte 4 ledninger
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C - Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: 5 trin
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C | Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: Hej fyre i denne instruktion vil vi lære at bruge neopixel ws2812 LED'er eller led strip eller led matrix eller led ring med m5stack m5stick-C udviklingstavle med Arduino IDE, og vi vil lave et regnbuemønster med det
Bevægelsesdetektor ved hjælp af Thingsai.io Iot Cloud Platform: 6 trin
Bevægelsessensor ved hjælp af Thingsai.io Iot Cloud Platform: I denne vejledning skal jeg forklare om bevægelsesdetektering ved hjælp af en PIR -sensor og Esp32 sammen med en IOT -cloudplatform Thingai.io
IOT Weather Cloud - Brug af OpenWeatherMaps: 11 trin (med billeder)
IOT Weather Cloud - Brug af OpenWeatherMaps: Dette er en sky, der hænger fra loftet i et værelse og afspiller bestemte mønstre baseret på resultatet, der er returneret fra internettet. Det henter vejrdataene fra OpenWeatherMaps. Det kan styres manuelt via en webgrænseflade eller automatisk
Raspberry Pi GPIO kredsløb: Brug af en LDR analog sensor uden en ADC (analog til digital konverter): 4 trin
Raspberry Pi GPIO -kredsløb: Brug af en LDR -analog sensor uden en ADC (analog til digital konverter): I vores tidligere instruktioner har vi vist dig, hvordan du kan forbinde din Raspberry Pi's GPIO -ben til lysdioder og kontakter, og hvordan GPIO -benene kan være høje eller lav. Men hvad nu hvis du vil bruge din Raspberry Pi med en analog sensor? Hvis vi vil bruge en