Sommario:
- Passaggio 1: creazione e accesso alla piattaforma THINGSIO
- Passaggio 2: creazione di un nuovo progetto
- Passaggio 3: creazione di un nuovo dispositivo
- Passaggio 4: definizione dei parametri del dispositivo
- Passaggio 5: aggiornamento del dispositivo
- Passaggio 6: codifica
- Passaggio 7: selezione della scheda e della porta COM
- Passaggio 8: collegamenti del circuito
- Passaggio 9: compilazione e caricamento
- Passaggio 10: monitor seriale
- Passaggio 11: letture
- Passaggio 12: rappresentazione grafica
- Passaggio 13:
Video: LDR con Thingsai Cloud: 13 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
EHI…..oggi impareremo come misurare l'intensità della luce e pubblicare i valori nella piattaforma cloud THINGSAI IOT utilizzando ESP32.
I requisiti per realizzare questo progetto sono
1. Scheda di sviluppo ESP32 (ho usato ESP32 DEVKIT V1)
2. Sensore LDR
3. Cavi dei ponticelli
4. Account in THINGSAI IOT PLATFORM
Passaggio 1: creazione e accesso alla piattaforma THINGSIO
Accedi all'account THINGS AI. Se sei nuovo allora registrati all'account premendo il pulsante registrati e compila tutte le credenziali. Verrà creato il tuo account e da quel momento potrai lavorare sulla piattaforma cloud e creare il tuo progetto personalizzato
Passaggio 2: creazione di un nuovo progetto
Dopo aver effettuato l'accesso all'account, per creare un progetto basta cliccare sul nuovo progetto e poi dare il nome del progetto.
Passaggio 3: creazione di un nuovo dispositivo
dopo aver creato il progetto, la prossima cosa che devi fare è creare un nuovo dispositivo. Dare il nome del dispositivo e inserire l'ID del dispositivo manualmente o generato dal sistema.
Passaggio 4: definizione dei parametri del dispositivo
Dare il parametro del dispositivo e quindi selezionare il tipo di parametro
Passaggio 5: aggiornamento del dispositivo
Seleziona il parametro e poi aggiorna il dispositivo
Passaggio 6: codifica
Dai codici di esempio seleziona il codice di esp32 copialo e poi incollalo nell'IDE di arduino e apporta le modifiche necessarie in base al requisito. Ho dato il codice qui sotto
#include #include
#includere
int conteggio=0, i, m, j, k;
int t; int outputpin= A0;//ds18b20
int valore sensore;
//////////////////////////////////////// TUTTE LE DICHIARAZIONI per CLOUD ////// ////////////////////////
const char* host = "api.thingsai.io"; // O
host = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // OPPURE /api/v2/thingscloud2/_table/data_ac
const char* time_server = "baas.thethingscloud.com"; //questo serve per convertire il timestamp
const int httpPort = 80;
const int httpsPort = 443;
const char* server = "api.thingsai.io"; // URL del server
char timestamp[10];
WiFi Multi WiFi Multi;
// Usa la classe WiFiClient per creare connessioni TCP
client WiFi Client;
/////////////////////////////////////// Funzione CALCOLO ORA//////// /////////////////////////////// int GiveMeTimestamp() { timeout lungo senza segno = millis(); //client WiFiClient;
while (client.disponibile() == 0)
{
if (millis() - timeout > 50000)
{
cliente.stop(); restituisce 0;
}
}
mentre (client.disponibile())
{
Stringa riga = client.readStringUntil('\r'); //indexOf() è una funzione per cercare smthng, restituisce -1 se non trovata
int pos = line.indexOf("\"timestamp\""); //cerca "\"timestamp\"" dall'inizio della risposta ottenuta e copia tutti i dati dopo, sarà il tuo timestamp
se (pos >= 0)
{
intj = 0;
for(j=0;j<10;j++)
{
timestamp[j] = riga[pos + 12 + j];
}
}
}
} ////////////////////////////////////////////////////////////////////////////////////////////////////////
configurazione nulla()
{
Serial.begin(115200);
ritardo(10);
// Iniziamo connettendoci a una rete WiFi
WiFiMulti.addAP("wifi", "pswrd");
Serial.println();
Serial.println();
Serial.print("Attendi WiFi… ");
while(WiFiMulti.run() != WL_CONNECTED)
{
Serial.print(".");
ritardo (500);
}
Serial.println("");
Serial.println("WiFi connesso");
Serial.println("Indirizzo IP: "); Serial.println(WiFi.localIP());
ritardo (500);
}
ciclo vuoto()
{
int AnalogValue = analogRead(outputpin);
{ /////////////////////////////////////// INVIARE LA DOMANDA E RICEVERE LA RISPOSTA/// ////////////////////
valoresensore = analogRead(A0); // legge il pin di ingresso analogico 0
valoresensore=valoresensore/100;
Serial.print(valoresensore, DEC); // stampa il valore letto
Serial.print("\n"); // stampa uno spazio tra i numeri
ritardo(1000); // attendi 100 ms per la lettura successiva
Serial.print("connessione a "); Serial.println(host); // rialzo definito: - host = devapi2.thethingscloud.com o 139.59.26.117
//////////////////////////////////// SNIPPET DEL CODICE TIMESTAMP ////////// ///////////////
Serial.println("inside ottieni timestamp\n");
if (!client.connect(time_server, { Restituzione; //*-*-*-*-*-*-*-*-*-* }
client.println("OTTIENI /api/timestamp HTTP/1.1"); //Cosa sta facendo questa parte, non ho ricevuto client.println("Host: baas.thethingscloud.com");
client.println("Cache-Control: no-cache");
client.println("Token postino: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println();
GiveMeTimestamp(); //chiamerà la funzione che riceverà la risposta del timestamp dal server Serial.println("timestamp receieved");
Serial.println(timestamp);
Serial.println("dentro ThingsCloudPost");
String PostValue = "{"device_id\": 61121695844, \"slave_id\": 2";
PostValue = PostValue + ", \"dts\":" + timestamp;
PostValue = PostValue +", \"data\":{"INTENSITY\":" + \sensorvalue +"}"+"}";
Serial.println(PostValue);
/* crea un'istanza di WiFiClientSecure */ WiFiClientSecure client;
Serial.println("Connetti al server tramite la porta 443");
if (!client.connect(server, 443))
{
Serial.println("Connessione fallita!");
}
altro
{ Serial.println("Connesso al server!"); /* crea una richiesta HTTP */
client.println( POST /devices/deviceData
client.println("Host: api.thingsai.io"); //client.println("Connessione: chiudi"); cl
ient.println("Content-Type: application/json");
client.println("cache-control: no-cache");
client.println("Autorizzazione: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNq9"AG9PNTj);d client.print("Lunghezza contenuto: ");
client.println(PostValue.length());
client.println();
client.println(PostValue); /////////////////////////////////POSTARE i dati sul cloud è fatto e ora ottieni il modulo di risposta cloud server//////////////////
Serial.print("In attesa di risposta");
mentre (!client.available()){
ritardo(50); //
Serial.print(".");
} /* se i dati sono disponibili, riceve e stampa su Terminale */
mentre (client.disponibile())
{
char c = client.read();
Serial.write(c);
}
/* se il server si è disconnesso, ferma il client */
if (!client.connected())
{
Serial.println();
Serial.println("Server disconnesso");
cliente.stop();
}
} Serial.println("///////////////////// LA FINE /////////////////// /");
ritardo (3000); } }
Passaggio 7: selezione della scheda e della porta COM
Dagli strumenti seleziona la scheda e quindi seleziona la porta com
Passaggio 8: collegamenti del circuito
La codifica viene eseguita, quindi effettuare i seguenti collegamenti come indicato di seguito
CONNESSIONI:
GND di esp32 a GND del sensore LDR
3V3 0f esp32 al Vcc della LDR
VP di esp32 alla A0 della LDR
Passaggio 9: compilazione e caricamento
compilare e caricare il codice nell'esp32 e quindi leggere le letture dal monitor seriale. Ciò mostrerebbe un risultato simile a questo
Passaggio 10: monitor seriale
I valori vengono rilevati sul monitor seriale e successivamente inviati alla piattaforma THINGSAI IOT Cloud.
Passaggio 11: letture
Mostra i valori ottenuti dalla scheda esp32.
Passaggio 12: rappresentazione grafica
Questa è la rappresentazione grafica dei valori ottenuti. Questa è la fine del tutorial. Spero tu abbia capito. Grazie
Consigliato:
Domotica con NodeMCU Touch Sensor LDR Relè di controllo della temperatura: 16 passaggi
Automazione domestica con relè di controllo della temperatura LDR del sensore tattile NodeMCU: nei miei progetti NodeMCU precedenti, ho controllato due elettrodomestici dall'app Blynk. Ho ricevuto molti commenti e messaggi per aggiornare il progetto con il controllo manuale e aggiungere più funzionalità. Così ho progettato questa Smart Home Extention Box. In questo IoT
Circuito sensore di oscurità su breadboard + rilevatore di luce con LDR: 6 passaggi
Circuito sensore di oscurità su breadboard + rilevatore di luce con LDR: in questo tutorial ti insegnerò come realizzare un semplice Light & Circuito rivelatore di oscurità con un transistor & un LDR.Questo circuito può essere utilizzato per accendere-spegnere automaticamente luci o elettrodomestici aggiungendo un relè all'uscita Puoi anche rep
Circuito LED lampeggiante con LDR: 6 passaggi
Circuito LED Flasher con LDR: Introduzione:Ciao ragazzi, oggi durante questo articolo discuteremo come realizzare un circuito LED Flasher con LDR. Quindi, certamente, cambierai la velocità di lampeggio con la candela LDR. Quindi questo è spesso un circuito eccellente per un hobbista
Rilevatore di movimento utilizzando la piattaforma Iot Cloud Thingsai.io: 6 passaggi
Rilevatore di movimento utilizzando la piattaforma Iot Cloud Thingsai.io: in questo tutorial spiegherò il rilevamento del movimento utilizzando un sensore PIR e Esp32 insieme a una piattaforma cloud IOT Thingai.io
Monitoraggio della qualità dell'acqua con MKR1000 e ARTIK Cloud: 13 passaggi (con immagini)
Monitoraggio della qualità dell'acqua utilizzando MKR1000 e ARTIK Cloud: Introduzione L'obiettivo principale di questo progetto è utilizzare MKR1000 e Samsung ARTIK Cloud per monitorare i livelli di pH e temperatura delle piscine. Useremo il sensore di temperatura e il sensore di pH o potenza dell'idrogeno per misurare il alcalinità un