
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:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03

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
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
Wykrywacz ruchu za pomocą platformy Thingsai.io Iot Cloud: 6 kroków

Detektor ruchu za pomocą platformy chmury Thingsai.io Iot: W tym samouczku wyjaśnię wykrywanie ruchu za pomocą czujnika PIR i Esp32 wraz z platformą chmury IOT Thingai.io
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