Innehållsförteckning:
- Steg 1: Skapa och logga in på THINGSIO -plattformen
- Steg 2: Skapa nytt projekt
- Steg 3: Skapa en ny enhet
- Steg 4: Definiera enhetsparameter
- Steg 5: Uppdatera enheten
- Steg 6: Kodning
- Steg 7: Val av styrelse och komport
- Steg 8: Kretsanslutningar
- Steg 9: Kompilera och ladda upp
- Steg 10: Seriell bildskärm
- Steg 11: Avläsningar
- Steg 12: Grafisk representation
- Steg 13:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
HEJ … idag lär vi oss att mäta ljusintensiteten och lägga upp värdena i molnplattformen THINGSAI IOT med hjälp av ESP32.
Kraven för att göra detta projekt är
1. ESP32 Development Board (jag har använt ESP32 DEVKIT V1)
2. LDR -sensor
3. Bygeltrådar
4. Konto i THINGSAI IOT PLATFORM
Steg 1: Skapa och logga in på THINGSIO -plattformen
Logga in på THINGS AI -kontot. Om du är ny registrerar du dig på kontot genom att trycka på knappen Registrera och fyll i alla uppgifter. Ditt konto kommer att skapas och därefter kommer du att kunna arbeta på molnplattformen och skapa ditt anpassade projekt
Steg 2: Skapa nytt projekt
Efter att ha loggat in på kontot, för att skapa ett projekt, klicka bara på det nya projektet och ge sedan projektnamnet.
Steg 3: Skapa en ny enhet
När du har skapat projektet är nästa sak du behöver göra att skapa en ny enhet. Ge enhetsnamnet och ange enhets -ID antingen manuellt eller systemgenererat.
Steg 4: Definiera enhetsparameter
Ge enhetsparametern och välj sedan typ av parameter
Steg 5: Uppdatera enheten
Välj parametern och uppdatera sedan enheten
Steg 6: Kodning
Från provkoderna väljer du koden för esp32 kopiera den och klistrar in den i arduino IDE och gör nödvändiga ändringar enligt kravet. Jag har gett koden nedan
#inkludera #inkludera
#omfatta
int count = 0, i, m, j, k;
int t; int outputpin = A0; // ds18b20
int sensorvärde;
/////////////////////////////////////////////////////// ////////////////////////////
const char* host = "api.thingsai.io"; // ELLER
värd = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // ELLER/api/v2/thingscloud2/_table/data_ac
const char* time_server = "baas.thethingscloud.com"; // detta är att konvertera tidsstämpel
const int httpPort = 80;
const int httpsPort = 443;
const char* server = "api.thingsai.io"; // Server -URL
rödstämpel [10];
WiFiMulti WiFiMulti;
// Använd WiFiClient -klass för att skapa TCP -anslutningar
WiFiClient -klient;
////////////////////////// //////////////////////////////////////// int GiveMeTimestamp () {unsigned long timeout = millis (); // WiFiClient -klient;
medan (client.available () == 0)
{
if (millis () - timeout> 50000)
{
client.stop (); returnera 0;
}
}
medan (client.available ())
{
String line = client.readStringUntil ('\ r'); // indexOf () är en funktion för att söka efter smthng, den returnerar -1 om den inte hittas
int pos = line.indexOf ("\" tidsstämpel / ""); // sök efter "\" tidsstämpel / "" från början av svaret och kopiera all data efter det, det blir din tidsstämpel
om (pos> = 0)
{
int j = 0;
för (j = 0; j <10; j ++)
{
tidsstämpel [j] = rad [pos + 12 + j];
}
}
}
} ////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup ()
{
Serial.begin (115200);
fördröjning (10);
// Vi börjar med att ansluta till ett WiFi -nätverk
WiFiMulti.addAP ("wifi", "pswrd");
Serial.println ();
Serial.println ();
Serial.print ("Vänta på WiFi …");
medan (WiFiMulti.run ()! = WL_CONNECTED)
{
Serial.print (".");
fördröjning (500);
}
Serial.println ("");
Serial.println ("WiFi ansluten");
Serial.println ("IP -adress:"); Serial.println (WiFi.localIP ());
fördröjning (500);
}
void loop ()
{
int analogValue = analogRead (outputpin);
{///////////////// ////////////////////////
sensorvärde = analogRead (A0); // läs analog ingångsstift 0
sensorvärde = sensorvärde/100;
Serial.print (sensorvärde, DEC); // skriver ut värdet läst
Serial.print ("\ n"); // skriver ut ett mellanslag mellan siffrorna
fördröjning (1000); // vänta 100 ms på nästa läsning
Serial.print ("ansluta till"); Serial.println (värd); // definierad uppåt:- host = devapi2.thethingscloud.com eller 139.59.26.117
///////////////////////////////////// /////////////////
Serial.println ("inside get timestamp / n");
if (! client.connect (time_server, { lämna tillbaka; //*-*-*-*-*-*-*-*-*-*}
client.println ("GET/api/tidsstämpel HTTP/1.1"); // Vad gör den här delen, jag fick inte client.println ("Host: baas.thethingscloud.com");
client.println ("Cache-Control: no-cache");
client.println ("Postman-Token: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println ();
GiveMeTimestamp (); // det kallar funktionen som kommer att få tidsstämpelns svar från servern Serial.println ("tidsstämpel mottagen");
Serial.println (tidsstämpel);
Serial.println ("inside ThingsCloudPost");
String PostValue = "{" device_id / ": 61121695844, \" slave_id / ": 2";
PostValue = PostValue + ", \" dts / ":" + tidsstämpel;
PostValue = PostValue +", \" data / ": {" INTENSITY / ":" +\ sensorvalue +"}" +"}";
Serial.println (PostValue);
/ * skapa en instans av WiFiClientSecure */ WiFiClientSecure -klient;
Serial.println ("Anslut till servern via port 443");
if (! client.connect (server, 443))
{
Serial.println ("Anslutningen misslyckades!");
}
annan
{Serial.println ("Ansluten till servern!"); / * skapa HTTP -begäran */
client.println ( POST/devices/deviceData
client.println ("Värd: api.thingsai.io"); //client.println("Connection: close "); cl
ient.println ("Innehållstyp: applikation/json");
client.println ("cache-control: no-cache");
client.println ("Auktorisation: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC9PN5" client.print ("Content-Length:");
client.println (PostValue.length ());
client.println ();
client.println (PostValue); ///////////////////////////////////// server ////////////////////
Serial.print ("Väntar på svar");
medan (! client.available ()) {
fördröjning (50); //
Serial.print (".");
} / * om data finns tillgänglig, ta sedan emot och skriv ut till terminal * /
medan (client.available ())
{
char c = client.read ();
Serial.write (c);
}
/ * om servern kopplades bort, stoppa klienten */
om (! client.connected ())
{
Serial.println ();
Serial.println ("Server bortkopplad");
client.stop ();
}
} Serial.println ("//////////////////////// END //////////////////// /");
fördröjning (3000); }}
Steg 7: Val av styrelse och komport
Välj kort från verktyget och välj sedan komporten
Steg 8: Kretsanslutningar
Kodningen görs och gör sedan följande anslutningar enligt nedan
ANSLUTNINGAR:
GND för esp32 till GND för LDR -sensorn
3V3 0f esp32 till Lcc: s Vcc
VP för esp32 till A0 i LDR
Steg 9: Kompilera och ladda upp
kompilera och ladda upp koden till esp32 och läs sedan avläsningarna från den seriella bildskärmen. Det skulle visa ett resultat något liknande detta
Steg 10: Seriell bildskärm
Värdena erhålls på den seriella bildskärmen och sedan skickas de till THINGSAI IOT Cloud -plattformen.
Steg 11: Avläsningar
Detta visar värdena som erhållits från esp32 -kortet.
Steg 12: Grafisk representation
Detta är den grafiska representationen av de erhållna värdena. Det är slutet på handledningen. Hoppas du har förstått. Tack