İçindekiler:
- 1. Adım: THINGSIO Platformu Oluşturma ve Oturum Açma
- Adım 2: Yeni Proje Oluşturma
- 3. Adım: Yeni Bir Cihaz Oluşturma
- Adım 4: Cihaz Parametresinin Tanımlanması
- Adım 5: Cihazı Güncelleme
- Adım 6: Kodlama
- Adım 7: Kart ve Com Port Seçimi
- Adım 8: Devre Bağlantıları
- 9. Adım: Derleyin ve Yükleyin
- Adım 10: Seri Monitör
- Adım 11: Okumalar
- Adım 12: Grafik Gösterim
- Adım 13:
Video: Thingsai Cloud'u Kullanan LDR: 13 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
HEY…..bugün ESP32 kullanarak ışığın yoğunluğunu ölçmeyi ve değerleri THINGSAI IOT bulut platformuna göndermeyi öğreneceğiz.
Bu projeyi yapmak için gerekenler
1. ESP32 Geliştirme Kartı (ESP32 DEVKIT V1 kullandım)
2. LDR sensörü
3. Atlama Telleri
4. THINGSAI IOT PLATFORMUNDA Hesap
1. Adım: THINGSIO Platformu Oluşturma ve Oturum Açma
THINGS AI hesabına giriş yapın. Yeniyseniz, kayıt düğmesine basarak hesaba kaydolun ve tüm kimlik bilgilerini doldurun. Hesabınız oluşturulacak ve o andan itibaren bulut platformunda çalışabilecek ve özel projenizi oluşturabileceksiniz.
Adım 2: Yeni Proje Oluşturma
Hesaba giriş yaptıktan sonra proje oluşturmak için yeni projeye tıklayın ve ardından proje adını verin.
3. Adım: Yeni Bir Cihaz Oluşturma
projeyi oluşturduktan sonra yapmanız gereken yeni bir cihaz oluşturmaktır. Cihaz adını verin ve cihaz kimliğini manuel olarak veya sistem tarafından oluşturulmuş olarak girin.
Adım 4: Cihaz Parametresinin Tanımlanması
Cihaz parametresini verin ve ardından parametre türünü seçin
Adım 5: Cihazı Güncelleme
Parametreyi seçin ve ardından cihazı güncelleyin
Adım 6: Kodlama
Örnek kodlardan esp32 kodunu seçip kopyalayın ve ardından arduino IDE'ye yapıştırın ve ihtiyaca göre gerekli değişiklikleri yapın. Aşağıdaki kodu verdim
#include #include
#Dahil etmek
int sayı=0, i, m, j, k;
int t; int çıktıpin= A0;//ds18b20
int sensör değeri;
//////////////////////////////////// BULUT İÇİN TÜM BİLDİRİMLER ////// /////////////////////
const char* ana bilgisayar = "api.thingsai.io"; // VEYA
ana bilgisayar = devapi2.thethingscloud.com
const char* post_url = "/devices/deviceData"; // VEYA /api/v2/thingscloud2/_table/data_ac
const char* time_server = "baas.thethingscloud.com"; // bu, zaman damgasını dönüştürmek içindir
const int httpPort = 80;
const int httpsPort = 443;
const char* sunucu = "api.thingsai.io"; // Sunucu URL'si
karakter zaman damgası[10];
WiFiÇoklu WiFiÇoklu;
// TCP bağlantıları oluşturmak için WiFiClient sınıfını kullanın
WiFiClient istemcisi;
/////////////////////////////////// ZAMAN DAMGASI HESAPLAMA fonksiyonu//////// //////////////////////////// int GiveMeTimestamp() { unsigned long timeout = millis(); // WiFiClient istemcisi;
while (client.available() == 0)
{
if (milis() - zaman aşımı > 50000)
{
istemci.durdur(); 0 döndür;
}
}
while (client.available())
{
String satırı = client.readStringUntil('\r'); //indexOf() smthng aramak için bir işlevdir, bulunamazsa -1 döndürür
int konum = line.indexOf("\"zaman damgası\""); // yanıtın başlangıcından itibaren "\"timestamp\"" ifadesini arayın ve bundan sonra tüm verileri kopyalayın, bu sizin zaman damganız olacak
eğer (konum >= 0)
{
int j = 0;
for(j=0;j<10;j++)
{
zaman damgası[j] = satır[konum + 12 + j];
}
}
}
} ////////////////////////////////////////////////////////////////////////////////////////////////////////
geçersiz kurulum()
{
Seri.başla(115200);
gecikme(10);
// Bir WiFi ağına bağlanarak başlıyoruz
WiFiMulti.addAP("wifi", "pswrd");
Seri.println();
Seri.println();
Serial.print("WiFi için bekleyin… ");
while(WiFiMulti.run() != WL_CONNECTED)
{
Seri.print(".");
gecikme(500);
}
Seri.println("");
Serial.println("WiFi bağlandı");
Serial.println("IP adresi: "); Serial.println(WiFi.localIP());
gecikme(500);
}
boşluk döngüsü()
{
int analogValue = analogRead(outputpin);
{ /////////////////////////////////// SORUYU GÖNDERİN VE YANIT ALIN/// //////////////////
sensör değeri = analogRead(A0); // analog giriş pini 0'ı oku
sensördeğeri=sensördeğeri/100;
Serial.print(sensör değeri, DEC); // okunan değeri yazdırır
Seri.print(" \n"); // sayılar arasında bir boşluk yazdırır
gecikme(1000); // sonraki okuma için 100ms bekle
Serial.print("bağlanıyor"); Serial.println(ana bilgisayar); //yukarı tanımlı:- ana bilgisayar = devapi2.thethingscloud.com veya 139.59.26.117
///////////////////////////////// ZAMAN DAYANIMI KODU SINIPPET ////////// //////////////
Serial.println("içeriden zaman damgası alın\n");
if (!client.connect(time_server, { dönüş; //*-*-*-*-*-*-*-*-*-* }
client.println("GET /api/timestamp HTTP/1.1"); //Bu kısım ne yapıyor, client.println("Host: baas.thethingscloud.com");
client.println("Önbellek Kontrolü: önbellek yok");
client.println("Postacı Simgesi: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println();
GiveMeTimestamp(); //sunucudan zaman damgası yanıtını alacak işlevi çağıracak Serial.println("zaman damgası alındı");
Serial.println(zaman damgası);
Serial.println("ThinsCloudPost'un içinde");
String PostValue = "{"device_id\": 61121695844, \"slave_id\": 2";
PostValue = PostValue + ", \"dts\":" +zaman damgası;
PostValue = PostValue +", \"veri\":{"YOĞUNLUK\":" + \sensorvalue +"}"+"}";
Serial.println(PostValue);
/* bir WiFiClientSecure örneği yarat */ WiFiClientSecure istemcisi;
Serial.println("Sunucuya 443 numaralı bağlantı noktasından bağlanın");
if (!client.connect(sunucu, 443))
{
Serial.println("Bağlantı başarısız!");
}
Başka
{ Serial.println("Sunucuya bağlandı!"); /* HTTP isteği oluştur */
client.println( POST /devices/deviceData
client.println("Ana Bilgisayar: api.thingsai.io"); //client.println("Bağlantı: kapat"); cl
ient.println("İçerik Türü: uygulama/json");
client.println("önbellek kontrolü: önbellek yok");
client.println("Yetkilendirme: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTy6_l9"; client.print("İçerik-Uzunluk: ");
client.println(PostValue.length());
client.println();
client.println(PostValue); ///////////////////////////////Verileri buluta GÖNDERME tamamlandı ve şimdi yanıt formunu bulut alın sunucu////////////////
Serial.print("Yanıt bekleniyor");
while (!client.available()){
gecikme(50); //
Seri.print(".");
} /* veri varsa alın ve Terminal'e yazdırın */
while (client.available())
{
karakter c = client.read();
Seri.write(c);
}
/* sunucunun bağlantısı kesilirse, istemciyi durdurun */
if (!client.connected())
{
Seri.println();
Serial.println("Sunucu bağlantısı kesildi");
istemci.durdur();
}
} Serial.println("//////////////////// SON ////////////////// /");
gecikme(3000); } }
Adım 7: Kart ve Com Port Seçimi
Araçlardan kartı seçin ve ardından com portunu seçin
Adım 8: Devre Bağlantıları
Kodlama yapıldıktan sonra aşağıda belirtildiği gibi aşağıdaki bağlantıları yapın.
BAĞLANTILAR:
esp32'nin GND'si ile LDR sensörünün GND'si
LDR'nin Vcc'sine 3V3 0f esp32
LDR'nin A0'ına esp32'nin VP'si
9. Adım: Derleyin ve Yükleyin
kodu derleyin ve esp32'ye yükleyin ve ardından seri monitörden okumaları okuyun. Bu, bunun gibi bir sonuç gösterirdi
Adım 10: Seri Monitör
Değerler seri monitörde elde edilir ve ardından THINGSAI IOT Cloud platformuna gönderilir.
Adım 11: Okumalar
Bu, esp32 kartından elde edilen değerleri gösterir.
Adım 12: Grafik Gösterim
Bu, elde edilen değerlerin grafiksel gösterimidir. Bu eğitimin sonu. Umarım anlamışsındır. Teşekkürler
Önerilen:
LCD ile 8051 ve IR Sensör Kullanan Ziyaretçi Sayacı: 3 Adım
LCD ile 8051 ve IR Sensör Kullanan Ziyaretçi Sayacı: Sevgili Arkadaşlar, 8051 ve IR sensör kullanarak ziyaretçi sayacının nasıl yapıldığını anlattım ve LCD'de görüntüledim. 8051, tüm dünyada hobi, ticari uygulamalar yapmak için kullanılan en popüler mikro denetleyicilerden biridir. vizit yaptım
Arduino Kullanan RC Paletli Robot - Adım Adım: 3 Adım
Arduino Kullanan RC Paletli Robot – Adım Adım: Merhaba arkadaşlar, BangGood'tan başka bir harika Robot kasasıyla geri döndüm. Spinel Crux V1 – Hareket Kontrollü Robot, Spinel Crux L2 – Robotik Kollu Arduino Al ve Yerleştir Robotu ve The Badland Braw
Arduino ve LDR Kullanan Otomatik Perde/Pencere: 3 Adım
Arduino ve LDR Kullanarak Otomatik Perde/Pencere Perdesi: Bu Eğitimde Arduino ve LDR Modülü kullanarak nasıl otomatik bir pencere panjuru yapılacağını göstereceğiz. Perde/Pencere perdesi gündüz, gece ise açılır
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda - Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı - Rc Helikopter - Arduino Kullanan Rc Uçak: 5 Adım (Resimlerle)
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda | Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı | Rc Helikopter | Arduino Kullanan Rc Uçak: Bir Rc araba çalıştırmak için | Quadcopter | dron | RC uçak | RC tekne, her zaman bir alıcı ve vericiye ihtiyacımız var, RC QUADCOPTER için 6 kanallı bir verici ve alıcıya ihtiyacımız olduğunu ve bu tür TX ve RX'in çok maliyetli olduğunu varsayalım, bu yüzden bir tane yapacağız
Thingsai.io Iot Bulut Platformunu Kullanan Hareket Dedektörü: 6 Adım
Thingsai.io Iot Bulut Platformunu Kullanan Hareket Dedektörü: Bu eğitimde, bir IOT bulut platformu Thingai.io ile birlikte bir PIR sensörü ve Esp32 kullanarak hareket algılamayı açıklayacağım