Sommario:

Misurazione di prossimità: 5 passaggi
Misurazione di prossimità: 5 passaggi

Video: Misurazione di prossimità: 5 passaggi

Video: Misurazione di prossimità: 5 passaggi
Video: VIDEO Misurare il periodo di un pendolo RUFFO ZANICHELLI 2024, Luglio
Anonim
Misurazione di prossimità
Misurazione di prossimità

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
COMPONENTI
COMPONENTI
COMPONENTI
COMPONENTI
COMPONENTI

Componenti hardware:

1. Sensore Hall

2. scheda di sviluppo esp32

3. Ponticelli

Componenti software:

1. Arduino IDE

2. CoseIO. AI

Fase 2: CONNESSIONI:

CONNESSIONI
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:

RISULTATO
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: