Spisu treści:
Wideo: Pomiar zbliżeniowy: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
W tym samouczku wyjaśnię, jak mierzyć bliskość urządzenia i publikować wartości na platformie chmurowej Thingsai, io za pomocą czujnika Halla i płytki rozwojowej esp32.
Czujnik Halla to urządzenie, które służy do pomiaru wielkości pola magnetycznego. Jego napięcie wyjściowe jest wprost proporcjonalne do natężenia pola magnetycznego przez niego. Czujniki z efektem Halla są używane do wykrywania zbliżeniowego, pozycjonowania, wykrywania prędkości i wykrywania prądu.
Krok 1: KOMPONENTY
Komponenty sprzętowe:
1. Czujnik Halla
2. Płytka rozwojowa esp32
3. Przewody połączeniowe
Składniki oprogramowania:
1. Środowisko Arduino
2. RzeczyIO. AI
Krok 2: POŁĄCZENIA:
Czujnik Halla ----------------------- esp32
Aout------------------------------- vp
Gnd ------------------------------ Gnd
Vcc -------------------------------3V3
Krok 3: KODOWANIE:
#włączać
#włączać
#włączać
liczba int=0, i, m, j, k;
pomiar wewnętrzny;
int outputpin= A0;//ds18b20
/////////////////////////////////////// WSZYSTKIE OŚWIADCZENIA
dla CHMURY /////////////////////////////
const char* host = "api.thingsai.io"; // LUB host =
devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // LUB
/api/v2/thingscloud2/_table/data_ac
const char* serwer_czasu =
"baas.thethingscloud.com"; //to jest konwersja znacznika czasu
const int httpPort = 80;
const int httpsPort = 443;
const char* serwer =
"api.thingsai.io"; // Serwer URL
znacznik czasu znaków[10];
Wi-FiWiele Wi-FiWiele;
// Użyj klasy WiFiClient do tworzenia połączeń TCP
Klient WiFiClient;
/////////////////////////////////////// ZNAK CZASU
funkcja OBLICZENIA//////////////////////////////////////
int PodajMeTimestamp()
{
długi bez znaku
limit czasu = mili();
// Klient WiFiClient;
podczas
(klient.dostępny() == 0)
{
jeśli (millis() -
limit czasu > 50000)
{
klient.stop();
zwróć 0;
}
}
while (klient.dostępny())
{
Linia ciągu =
klient.odczytajStringUntil('\r'); //indexOf() to funkcja do wyszukiwania smthng, zwraca -1 jeśli nie znaleziono
wew poz =
line.indexOf("\"znacznik czasu\""); //wyszukaj "\"timestamp\"" od początku otrzymanej odpowiedzi i skopiuj wszystkie dane po tym, będzie to Twoja sygnatura czasowa
jeśli (poz >=
0)
{
intj = 0;dla(j=0;j<10;j++)
{znacznik czasu[j] = linia[poz + 12 + j];
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
pusta konfiguracja()
{Serial.początek(115200);
opóźnienie(10);
// Zaczynamy od
łączenie z siecią Wi-Fi
WiFiMulti.addAP("nazwa_wifi", "hasło do wifi");
Serial.println();
Serial.println();Serial.print("Czekaj na Wi-Fi… ");while(WiFiMulti.run() != WL_CONNECTED) {Serial.print(".");
opóźnienie (500);
}Serial.println("");Serial.println("Połączenie WiFi");Serial.println("adres IP: ");
Serial.println(WiFi.localIP());
opóźnienie (500);
}
pusta pętla()
{
intWartośćanalogowa =
odczyt analogowy (wyjście);
{
////////////////////////////////////// WYŚLIJ ZAPYTANIE I
ODBIERZ ODPOWIEDŹ///////////////////////
pomiar wewnętrzny
= 0;
pomiar =
hallRead();Serial.print("Pomiar czujnika Halla: ");Serial.println(pomiar);
opóźnienie (1000);Serial.print("łączenie z");Serial.println(host); //zdefiniowany plus:- host = devapi2.thethingscloud.com lub 139.59.26.117
//////////////////////////////////// ZNACZNIK KODU
/////////////////////////
Serial.println("wewnątrz pobierz znacznik czasu\n");
Jeśli
(!client.connect(serwer_czasu, port
{
powrót;
//*-*-*-*-*-*-*-*-*-*
}client.println("POBIERZ /api/znacznik czasu HTTP/1.1"); //Co robi ta część, nie dostałemclient.println("Host: baas.thethingscloud.com");client.println("Kontrola pamięci podręcznej: brak pamięci podręcznej");client.println("Token listonosza: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
klient.println();
GiveMeTimestamp(); //wywoła funkcję
który otrzyma odpowiedź ze znacznika czasu z serwera
Serial.println("otrzymany znacznik czasu");
Serial.println(sygnatura czasowa);Serial.println("wewnątrz ThingsCloudPost");
Wartość początkowa ciągu znaków =
"{"device_id\": 61121696007, \"slave_id\": 2";
PostValue =
PostValue +”, \"dts\":" +znacznik czasu;
PostValue =
PostValue +", \"data\":{"proximity\":" + pomiar +"}"+"}";Serial.println(PostValue);
/* utwórz instancję WiFiClientSecure */
Klient WiFiClientSecure;Serial.println("Połącz z serwerem przez port 443");
Jeśli
(!client.connect(serwer, 443)){Serial.println("Połączenie nie powiodło się!");
} w przeciwnym razie {Serial.println("Połączono z serwerem!");
/* tworzenie
wniosek */
client.println( POST
/devices/deviceData HTTP/1.1");client.println("Host: api.thingsai.io");//client.println("Połączenie: zamknij");client.println("Typ treści: aplikacja/json");client.println("kontrola pamięci podręcznej: brak pamięci podręcznej");
client.println( Autoryzacja:
Nośnik eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PKyVl5_m7");client.print("Długość-treści: ");klient.println(WartośćPoczta.długość());
klient.println();klient.println(PostValue);
//////////////////////////////////PRZESYŁANIE danych na
chmura jest gotowa i teraz otrzymaj odpowiedź z serwera w chmurze//////////////////
Serial.print( Oczekiwanie na odpowiedź
);
podczas
(!klient.dostępny()){
opóźnienie(50);
//Serial.print(".");
}
/* jeśli dane to
dostępne, a następnie odbierz i wydrukuj do Terminala */
podczas
(klient.dostępny()) {
znak c =
klient.odczyt();Serial.zapis(c);
}
/* jeśli serwer się rozłączył, zatrzymaj klienta */
Jeśli
(!klient.podłączony()) {Serial.println();Serial.println("Serwer odłączony");klient.stop();
}
}
Serial.println( ////////////////////// KONIEC
///////////////////// );
opóźnienie(3000);
}}
Krok 4: WYNIK:
Odczytane z czujnika wartości są pomyślnie przesyłane do chmury IOT i tworzony jest wykres jako bliskość w funkcji czasu. Dzięki temu działanie czujnika jest analizowane i wykorzystywane zgodnie z wymaganymi obszarami zastosowania.
Krok 5: Ukończ samouczek:
Jest to kompletny projekt pomiaru bliskości urządzenia za pomocą czujnika Halla esp32 i platformy chmurowej thingsai.io. Dziękuję Ci
Zalecana:
Zrób czujnik zbliżeniowy za pomocą Magicbit [Magicblocks]: 6 kroków
Stwórz czujnik zbliżeniowy za pomocą Magicbit [Magicblocks]: Ten samouczek nauczy Cię używać czujnika zbliżeniowego z Magicbit za pomocą Magicblocks. Używamy magicbit jako płytki rozwojowej w tym projekcie, który jest oparty na ESP32. Dlatego w tym projekcie można użyć dowolnej płytki rozwojowej ESP32
Air Piano wykorzystujący czujnik zbliżeniowy IR, głośnik i Arduino Uno (ulepszony/część-2): 6 kroków
Air Piano wykorzystujący czujnik zbliżeniowy IR, głośnik i Arduino Uno (ulepszony/część-2): Jest to ulepszona wersja poprzedniego projektu pianina pneumatycznego?. Tutaj używam głośnika JBL jako wyjścia. Dołączyłem również przycisk dotykowy do zmiany trybów zgodnie z wymaganiami. Na przykład tryb Hard Bass, tryb normalny, wysoka fr
Moduł dotykowy zbliżeniowy - tani i łatwy: 5 kroków (ze zdjęciami)
Moduł dotykowy zbliżeniowy – tani i łatwy: obdarzony przez Boga zmysł widzenia istoty ludzkiej jest ważnym aspektem naszego życia. Są jednak nieszczęśliwi ludzie, którym brakuje zdolności wizualizacji rzeczy. Na całym świecie jest około 37 milionów niewidomych ludzi, ponad 15 milionów
Czujnik zbliżeniowy na podczerwień za pomocą LM358: 5 kroków
Czujnik zbliżeniowy na podczerwień za pomocą LM358: Jest to instrukcja dotycząca tworzenia czujnika zbliżeniowego IR
Jak zrobić czujnik zbliżeniowy: 5 kroków
Jak zrobić czujnik zbliżeniowy: samouczek dotyczący tworzenia obwodu czujnika zbliżeniowego na podczerwień (IR) wraz ze szczegółowym wyjaśnieniem działania obwodu. Czułość lub zakres wykrywania można również kontrolować, regulując potencjometr