Spisu treści:
- Krok 1: Tworzenie i logowanie do platformy THINGSIO
- Krok 2: Tworzenie nowego projektu
- Krok 3: Tworzenie nowego urządzenia
- Krok 4: Definiowanie parametrów urządzenia
- Krok 5: Aktualizacja urządzenia
- Krok 6: Kodowanie
- Krok 7: Wybór płyty i portu Com
- Krok 8: Połączenia obwodu
- Krok 9: Skompiluj i prześlij
- Krok 10: Monitor szeregowy
- Krok 11: Odczyty
- Krok 12: Reprezentacja graficzna
- Krok 13:
Wideo: LDR przy użyciu Thingsai Cloud: 13 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
HEJ…..dzisiaj dowiemy się, jak mierzyć natężenie światła i przesyłać wartości do platformy chmurowej THINGSAI IOT za pomocą ESP32.
Wymagania do wykonania tego projektu to
1. Płytka rozwojowa ESP32 (użyłem ESP32 DEVKIT V1)
2. Czujnik LDR
3. Przewody połączeniowe
4. Konto w THINGSAI IOT PLATFORM
Krok 1: Tworzenie i logowanie do platformy THINGSIO
Zaloguj się na konto THINGS AI. Jeśli jesteś nowy, zarejestruj się na konto, naciskając przycisk rejestracji i wypełnij wszystkie dane uwierzytelniające. Twoje konto zostanie utworzone i od tego momentu będziesz mógł pracować na platformie w chmurze i tworzyć własny projekt
Krok 2: Tworzenie nowego projektu
Po zalogowaniu się na konto, aby stworzyć projekt wystarczy kliknąć na nowy projekt a następnie podać nazwę projektu.
Krok 3: Tworzenie nowego urządzenia
po utworzeniu projektu następną rzeczą, którą musisz zrobić, to utworzyć nowe urządzenie. Podaj nazwę urządzenia i wprowadź identyfikator urządzenia ręcznie lub wygenerowany przez system.
Krok 4: Definiowanie parametrów urządzenia
Podaj parametr urządzenia, a następnie wybierz typ parametru
Krok 5: Aktualizacja urządzenia
Wybierz parametr, a następnie zaktualizuj urządzenie
Krok 6: Kodowanie
Z przykładowych kodów wybierz kod esp32 skopiuj go, a następnie wklej do arduino IDE i wprowadź niezbędne zmiany zgodnie z wymaganiami. Kod podałem poniżej
#włącz #włącz
#włączać
liczba int=0, i, m, j, k;
int t; int outputpin= A0;//ds18b20
int sensorvalue;
/////////////////////////////////////// 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* server = "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;
/////////////////////////////////////// funkcja OBLICZANIA ZNACZNIKA CZASU//////// /////////////////////////////// int GiveMeTimestamp() { unsigned long timeout = millis(); // Klient WiFiClient;
while (client.available() == 0)
{
if (millis() - limit czasu > 50000)
{
klient.stop(); zwróć 0;
}
}
while (klient.dostępny())
{
Linia ciągu = client.readStringUntil('\r'); //indexOf() to funkcja do wyszukiwania smthng, zwraca -1 jeśli nie znaleziono
int pos = 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 połączenia z siecią Wi-Fi
WiFiMulti.addAP("wifi", "pswrd");
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()
{
int analogValue = analogRead(outputpin);
{ ////////////////////////////////////// WYŚLIJ ZAPYTANIE I ODBIERZ ODPOWIEDŹ/// ////////////////////
wartość czujnika = odczyt analogowy (A0); // odczytaj pin wejścia analogowego 0
wartośćczujnika=wartośćczujnika/100;
Serial.print(wartość czujnika, DEC); // wyświetla odczytaną wartość
Serial.print(" \n"); // wyświetla spację między liczbami
opóźnienie (1000); // czekaj 100ms na następny odczyt
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");
if (!client.connect(serwer_czasu, port
{ powrót; //*-*-*-*-*-*-*-*-*-* }
client.println("POBIERZ /api/znacznik czasu HTTP/1.1"); //Co robi ta część, nie dostałem client.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óra otrzyma odpowiedź ze znacznikiem czasu z serwera Serial.println("otrzymano znacznik czasu");
Serial.println(sygnatura czasowa);
Serial.println("wewnątrz ThingsCloudPost");
String PostValue = "{"device_id\": 61121695844, \"slave_id\": 2";
PostValue = PostValue +”, \"dts\":" + znacznik czasu;
PostValue = PostValue +", \"data\":{"INTENSITY\":" + \sensorvalue +"}"+"}";
Serial.println(PostValue);
/* utwórz instancję WiFiClientSecure */ WiFiClientSecure klient;
Serial.println("Połącz z serwerem przez port 443");
if (!client.connect(serwer, 443))
{
Serial.println("Połączenie nie powiodło się!");
}
w przeciwnym razie
{ Serial.println("Połączono z serwerem!"); /* utwórz żądanie HTTP */
client.println( POST /devices/deviceData
client.println("Host: api.thingsai.io"); //client.println("Połączenie: zamknij"); cl
ient.println("Typ treści: aplikacja/json");
client.println("kontrola pamięci podręcznej: brak pamięci podręcznej");
client.println("Upoważnienie: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWk6_Ag9tvfVpKylWkNQs9tV"); client.print("Długość-treści: ");
klient.println(WartośćPoczta.długość());
klient.println();
klient.println(PostValue); //////////////////////////////////PRZESYŁANIE danych w chmurze jest zakończone i teraz otrzymaj chmurę formularza odpowiedzi serwer//////////////////
Serial.print("Oczekiwanie na odpowiedź");
while (!client.available()){
opóźnienie(50); //
Serial.print(".");
} /* jeśli dane są dostępne, odbierz i wydrukuj do terminala */
while (klient.dostępny())
{
char 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 7: Wybór płyty i portu Com
Z narzędzi wybierz płytę, a następnie wybierz port com
Krok 8: Połączenia obwodu
Kodowanie odbywa się, a następnie wykonaj następujące połączenia, jak wspomniano poniżej
ZNAJOMOŚCI:
GND esp32 do GND czujnika LDR
3V3 0f esp32 do Vcc LDR
wiceprezes esp32 do A0 LDR
Krok 9: Skompiluj i prześlij
skompilować i wgrać kod do esp32 a następnie odczytać odczyty z monitora szeregowego. To pokazałoby wynik podobny do tego
Krok 10: Monitor szeregowy
Wartości są pozyskiwane na monitorze szeregowym, a następnie wysyłane do platformy THINGSAI IOT Cloud.
Krok 11: Odczyty
To pokazuje wartości uzyskane z płyty esp32.
Krok 12: Reprezentacja graficzna
Jest to graficzna reprezentacja uzyskanych wartości. To koniec samouczka. Mam nadzieję, że zrozumiałeś. Dziękuję
Zalecana:
Tablica LED DIY (przy użyciu Arduino): 7 kroków
DIY LED Array (przy użyciu Arduino): WSTĘP: Czy kiedykolwiek chciałeś stworzyć prosty projekt, w którym diody LED wydają się być w ruchu? Nie? Tak myślałem. Cóż, jeśli kiedykolwiek chciałeś zrobić coś podobnego, jesteś we właściwym miejscu
Chrome T-rex Game Hack przy użyciu Arduino: 5 kroków
Hack gry Chrome T-rex za pomocą Arduino: W tym samouczku zhakujemy grę chrome t-rex za pomocą arduino
Gra 3d Maze przy użyciu Arduino: 8 kroków (ze zdjęciami)
Gra w labirynt 3D przy użyciu Arduino: Cześć przyjaciele, więc dzisiaj zamierzamy stworzyć grę w labirynt przy użyciu ARDUINO UNO. Ponieważ Arduino Uno jest najczęściej używaną planszą, bardzo fajnie jest tworzyć z nią gry. W tej instrukcji stwórzmy grę w labirynt, którą steruje się za pomocą joysticków.Nie zapomnij
Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków
Neopixel Ws2812 Rainbow LED Glow z M5stick-C | Uruchamianie Rainbow na Neopixel Ws2812 Używając M5stack M5stick C Używając Arduino IDE: Cześć chłopaki, w tej instrukcji dowiemy się, jak używać neopikselowych ws2812 LED lub taśmy LED lub matrycy LED lub pierścienia LED z płytką rozwojową m5stack m5stick-C z Arduino IDE i zrobimy wzór tęczy z nim
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: 18 kroków (ze zdjęciami)
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: to moja pierwsza publikacja eva artykułu o majsterkowaniu w Internecie. Więc przepraszam za literówki, protokoły itp. Poniższe instrukcje pokazują, jak zrobić PRACOWĄ lutownicę na gorące powietrze odpowiednią do WSZYSTKICH zastosowań wymagających lutowania. To lutowanie gorącym powietrzem