Sommario:
- Fase 1: COMPONENTI
- Fase 2: CONNESSIONI:
- Fase 3: CODIFICA:
- Fase 4: RISULTATO:
- Passaggio 5: tutorial completo:
Video: Misurazione di prossimità: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
In questo tutorial spiegherò come misurare la vicinanza di un dispositivo e pubblicare i valori nella piattaforma cloud Thingsai, io utilizzando il sensore di hall e la scheda di sviluppo esp32.
Un sensore ad effetto Hall è un dispositivo utilizzato per misurare l'ampiezza di un campo magnetico. La sua tensione di uscita è direttamente proporzionale all'intensità del campo magnetico che lo attraversa. I sensori ad effetto Hall vengono utilizzati per applicazioni di rilevamento di prossimità, posizionamento, rilevamento della velocità e rilevamento della corrente.
Fase 1: COMPONENTI
Componenti hardware:
1. Sensore Hall
2. scheda di sviluppo esp32
3. Ponticelli
Componenti software:
1. Arduino IDE
2. CoseIO. AI
Fase 2: CONNESSIONI:
Sensore di Hall --------esp32
Aout ----------------vp
Gnd ---------------Gnd
Vcc ----------------3V3
Fase 3: CODIFICA:
#includere
#includere
#includere
int conteggio=0, i, m, j, k;
misura int;
int outputpin= A0;//ds18b20
//////////////////////////////////////// TUTTE LE DICHIARAZIONI
per CLOUD //////////////////////////////
const char* host = "api.thingsai.io"; // OPPURE host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // O
/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;
////////////////////////////////////// ORARIO
Funzione CALCOLO//////////////////////////////////////
int GiveMeTimestamp()
{
unsigned lungo
timeout = millis();
//client WiFiClient;
mentre
(cliente.disponibile() == 0)
{
if (milli() -
timeout > 50000)
{
cliente.stop();
restituisce 0;
}
}
mentre (client.disponibile())
{
Linea di stringa =
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
if (pos >=
0)
{
intj = 0;for(j=0;j<10;j++)
{timestamp[j] = riga[pos + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
configurazione nulla()
{Serial.begin(115200);
ritardo(10);
// Iniziamo da
connessione a una rete WiFi
WiFiMulti.addAP("nome_wifi", "wifi_password");
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(pin di uscita);
{
/////////////////////////////////////// INVIA LA DOMANDA E
RICEVERE LA RISPOSTA///////////////////////
misura int
= 0;
misura =
hallRead();Serial.print("Misura sensore Hall: ");Serial.println(misura);
ritardo(1000);Serial.print("connessione a ");Serial.println(host); // rialzo definito: - host = devapi2.thethingscloud.com o 139.59.26.117
//////////////////////////////////// SNIPPET DI CODICE TIMESTAMP
/////////////////////////
Serial.println("inside ottieni timestamp\n");
Se
(!client.connect(time_server, {
Restituzione;
//*-*-*-*-*-*-*-*-*-*
}client.println("OTTIENI /api/timestamp HTTP/1.1"); //Cosa sta facendo questa parte, non l'ho capitoclient.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 otterrà la risposta del timestamp dal server
Serial.println("timestamp ricevuto");
Serial.println(timestamp);Serial.println("dentro ThingsCloudPost");
Stringa PostValue =
"{"id_dispositivo\": 61121696007, \"id_slave\": 2";
PostValue =
PostValue + ", \"dts\":" + timestamp;
PostValue =
PostValue +", \"data\":{"prossimità\":" + misura +"}"+"}";Serial.println(PostValue);
/* crea un'istanza di WiFiClientSecure */
client WiFiClientSecure;Serial.println("Connetti al server tramite la porta 443");
Se
(!client.connect(server, 443)){Serial.println("Connessione fallita!");
} altro {Serial.println("Connesso al server!");
/* crea
richiesta */
client.println( POST
/devices/deviceData HTTP/1.1");client.println("Host: api.thingsai.io");//client.println("Connessione: chiudi");client.println("Tipo di contenuto: application/json");client.println("cache-control: no-cache");
client.println( Autorizzazione:
Portatore eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PdW6AG7;jt9;client.print("Lunghezza contenuto: ");client.println(PostValue.length());
client.println();client.println(PostValue);
/////////////////////////////////INSERIRE i dati sul
cloud è fatto e ora ottieni il modulo di risposta server cloud//////////////////
Serial.print( In attesa di risposta
);
mentre
(!client.disponibile()){
ritardo(50);
//Serial.print(".");
}
/* se i dati sono
disponibile quindi ricevi e stampa su Terminale */
mentre
(cliente.disponibile()) {
carattere c =
client.read();Serial.write(c);
}
/* se il server si è disconnesso, ferma il client */
Se
(!client.connected()) {Serial.println();Serial.println("Server disconnesso");cliente.stop();
}
}
Serial.println( ////////////////////// FINE
///////////////////// );
ritardo (3000);
}}
Fase 4: RISULTATO:
I valori letti dal sensore vengono inviati correttamente al cloud IOT e il grafico viene creato come prossimità rispetto al tempo. Con questo il funzionamento del sensore viene analizzato e utilizzato secondo le aree di applicazione richieste.
Passaggio 5: tutorial completo:
Questo è il progetto completo per misurare la prossimità di un dispositivo utilizzando il sensore di hall esp32 e la piattaforma cloud thingsai.io. Grazie
Consigliato:
Raspberry Pi - Rilevatore di prossimità digitale a infrarossi TMD26721 Tutorial Java: 4 passaggi
Raspberry Pi - TMD26721 Rilevatore di prossimità digitale a infrarossi Java Tutorial: TMD26721 è un rilevatore di prossimità digitale a infrarossi che fornisce un sistema di rilevamento di prossimità completo e logica di interfaccia digitale in un singolo modulo a montaggio superficiale a 8 pin. Il rilevamento di prossimità include un migliore rapporto segnale-rumore e precisione. Un professionista
Visuino Come utilizzare il sensore di prossimità induttivo: 7 passaggi
Visuino Come utilizzare il sensore di prossimità induttivo: in questo tutorial utilizzeremo il sensore di prossimità induttivo e un LED collegato ad Arduino UNO e Visuino per rilevare la prossimità del metallo. Guarda un video dimostrativo
Realizza un sensore di prossimità con Magicbit [Magicblocks]: 6 passaggi
Crea un sensore di prossimità con Magicbit [Magicblocks]: questo tutorial ti insegnerà a utilizzare un sensore di prossimità con un Magicbit utilizzando Magicblocks. Stiamo usando magicbit come scheda di sviluppo in questo progetto basato su ESP32. Pertanto qualsiasi scheda di sviluppo ESP32 può essere utilizzata in questo progetto
Misurazione della distanza di prossimità con il sensore di gesti APDS9960: 6 passaggi
Misurazione della distanza di prossimità con sensore gestuale APDS9960: In questo tutorial impareremo come misurare la distanza utilizzando un sensore gestuale APDS9960, arduino e Visuino.Guarda il video
Air Piano con sensore di prossimità IR, altoparlante e Arduino Uno (aggiornato/parte 2): 6 passaggi
Air Piano con sensore di prossimità IR, altoparlante e Arduino Uno (aggiornato/parte-2): questa è una versione aggiornata del precedente progetto di air piano?. Qui sto usando un altoparlante JBL come uscita. Ho anche incluso un pulsante sensibile al tocco per cambiare modalità in base alle esigenze. Ad esempio: modalità Hard Bass, modalità Normal, High fr