สารบัญ:

LDR การใช้ Thingsai Cloud: 13 ขั้นตอน
LDR การใช้ Thingsai Cloud: 13 ขั้นตอน

วีดีโอ: LDR การใช้ Thingsai Cloud: 13 ขั้นตอน

วีดีโอ: LDR การใช้ Thingsai Cloud: 13 ขั้นตอน
วีดีโอ: Home Automation using NodeMCU & Blynk with Touch sensor LDR Temperature control Relay | IoT Projects 2024, กรกฎาคม
Anonim
LDR ใช้ Thingsai Cloud
LDR ใช้ Thingsai Cloud

เฮ้…..วันนี้เราจะมาเรียนรู้เกี่ยวกับการวัดความเข้มของแสงและการโพสต์ค่าลงในแพลตฟอร์มคลาวด์ THINGSAI IOT โดยใช้ ESP32

ข้อกำหนดในการทำโครงการนี้คือ

1. บอร์ดพัฒนา ESP32 (ฉันเคยใช้ ESP32 DEVKIT V1)

2. เซ็นเซอร์ LDR

3. สายจัมเปอร์

4. บัญชีใน THINGSAI IOT PLATFORM

ขั้นตอนที่ 1: การสร้างและลงชื่อเข้าใช้แพลตฟอร์ม THINGSIO

การสร้างและล็อกอินเข้าสู่แพลตฟอร์ม THINGSIO
การสร้างและล็อกอินเข้าสู่แพลตฟอร์ม THINGSIO

เข้าสู่ระบบบัญชี THINGS AI หากคุณยังใหม่อยู่ ให้ลงทะเบียนกับบัญชีโดยกดปุ่มลงทะเบียนและกรอกข้อมูลรับรองทั้งหมด บัญชีของคุณจะถูกสร้างขึ้น จากนั้นคุณจะสามารถทำงานบนแพลตฟอร์มระบบคลาวด์และสร้างโครงการที่กำหนดเองได้

ขั้นตอนที่ 2: การสร้างโครงการใหม่

การสร้างโครงการใหม่
การสร้างโครงการใหม่

หลังจากเข้าสู่ระบบบัญชี ในการสร้างโครงการ เพียงแค่คลิกที่โครงการใหม่แล้วระบุชื่อโครงการ

ขั้นตอนที่ 3: การสร้างอุปกรณ์ใหม่

การสร้างอุปกรณ์ใหม่
การสร้างอุปกรณ์ใหม่

หลังจากสร้างโครงการแล้ว สิ่งต่อไปที่คุณต้องทำคือสร้างอุปกรณ์ใหม่ ระบุชื่ออุปกรณ์และป้อนรหัสอุปกรณ์ด้วยตนเองหรือสร้างโดยระบบ

ขั้นตอนที่ 4: การกำหนดพารามิเตอร์อุปกรณ์

การกำหนดพารามิเตอร์อุปกรณ์
การกำหนดพารามิเตอร์อุปกรณ์

ระบุพารามิเตอร์อุปกรณ์แล้วเลือกประเภทของพารามิเตอร์

ขั้นตอนที่ 5: การอัปเดตอุปกรณ์

กำลังอัปเดตอุปกรณ์
กำลังอัปเดตอุปกรณ์

เลือกพารามิเตอร์แล้วอัปเดตอุปกรณ์

ขั้นตอนที่ 6: การเข้ารหัส

การเข้ารหัส
การเข้ารหัส

จากโค้ดตัวอย่าง ให้เลือกโค้ดของ esp32 คัดลอกแล้ววางลงใน arduino IDE และทำการเปลี่ยนแปลงที่จำเป็นตามความต้องการ ฉันได้ให้รหัสด้านล่าง

#รวม #รวม

#รวม

จำนวน int=0, i, m, j, k;

int เสื้อ; int outputpin= A0;//ds18b20

ค่าเซ็นเซอร์ int;

/////////////////////////////////////// ประกาศทั้งหมดสำหรับ CLOUD ////// ///////////////////////

const char* host = "api.thingsai.io"; // หรือ

โฮสต์ = devapi2.thethingscloud.com

const char* post_url = "/devices/deviceData"; // หรือ /api/v2/thingscloud2/_table/data_ac

const char* time_server = "baas.thethingscloud.com"; //นี่คือการแปลงการประทับเวลา

const int httpPort = 80;

const int https Port = 443;

const char* เซิร์ฟเวอร์ = "api.thingsai.io"; // URL เซิร์ฟเวอร์

ถ่านประทับเวลา[10];

WiFiMulti WiFi Multi;

// ใช้คลาส WiFiClient เพื่อสร้างการเชื่อมต่อ TCP

ไคลเอนต์ WiFiClient;

////////////////////////////////////// ฟังก์ชันการคำนวณเวลา//////// /////////////////////////////// int GiveMeTimestamp () { หมดเวลานานที่ไม่ได้ลงนาม = มิลลิวินาที (); // ไคลเอนต์ WiFiClient;

ในขณะที่ (client.available() == 0)

{

ถ้า (มิลลิวินาที () - หมดเวลา > 50000)

{

client.stop(); กลับ 0;

}

}

ในขณะที่ (client.available())

{

สตริงบรรทัด = client.readStringUntil('\r'); //indexOf() เป็นฟังก์ชันสำหรับค้นหา smthng มันจะคืนค่า -1 หากไม่พบ

int pos = line.indexOf("\"ประทับเวลา\""); //ค้นหา "\"ประทับเวลา\"" จากจุดเริ่มต้นของการตอบสนองที่ได้รับและคัดลอกข้อมูลทั้งหมดหลังจากนั้น จะเป็นการประทับเวลาของคุณ

ถ้า (ตำแหน่ง >= 0)

{

int j = 0;

สำหรับ(j=0;j<10;j++)

{

เวลาประทับ[j] = บรรทัด[pos + 12 + j];

}

}

}

} ////////////////////////////////////////////////////////////////////////////////////////////////////////

การตั้งค่าเป็นโมฆะ ()

{

Serial.begin(115200);

ล่าช้า(10);

// เราเริ่มต้นด้วยการเชื่อมต่อกับเครือข่าย WiFi

WiFiMulti.addAP("wifi", "pswrd");

Serial.println();

Serial.println();

Serial.print("รอ WiFi… ");

ในขณะที่ (WiFiMulti.run() != WL_CONNECTED)

{

Serial.print(".");

ล่าช้า (500);

}

Serial.println("");

Serial.println ("เชื่อมต่อ WiFi");

Serial.println("ที่อยู่ IP:"); Serial.println(WiFi.localIP());

ล่าช้า (500);

}

วงเป็นโมฆะ ()

{

int analogValue = analogRead (เอาต์พุต);

{ ////////////////////////////////////// ส่งคำถามและรับคำตอบ /// ///////////////////

ค่าเซ็นเซอร์ = analogRead (A0); // อ่านพินอินพุตแบบอะนาล็อก 0

ค่าเซ็นเซอร์=ค่าเซ็นเซอร์/100;

Serial.print (ค่าเซ็นเซอร์ ธ.ค.); // พิมพ์ค่า read

Serial.print(" \n"); // พิมพ์ช่องว่างระหว่างตัวเลข

ล่าช้า (1000); // รอ 100ms สำหรับการอ่านครั้งต่อไป

Serial.print("กำลังเชื่อมต่อกับ"); Serial.println (โฮสต์); // กำหนด upside:- host = devapi2.thethingscloud.com หรือ 139.59.26.117

///////////////////////////////////// ข้อมูลโค้ดการประทับเวลา ////////// ///////////////

Serial.println("inside get timestamp\n");

ถ้า (!client.connect(time_server, { กลับ; //*-*-*-*-*-*-*-*-*-* }

client.println("GET /api/timestamp HTTP/1.1"); //ส่วนนี้ทำอะไรอยู่ ฉันไม่ได้รับ client.println("Host: baas.thethingscloud.com");

client.println("การควบคุมแคช: ไม่มีแคช");

client.println("บุรุษไปรษณีย์โทเค็น: ea3c18c6-09ba-d049-ccf3-369a22a284b8");

client.println();

GiveMeTimestamp(); //มันจะเรียกใช้ฟังก์ชันซึ่งจะได้รับการตอบสนองการประทับเวลาจากเซิร์ฟเวอร์ Serial.println("timestamp receieved");

Serial.println (ประทับเวลา);

Serial.println("ภายใน ThingsCloudPost");

สตริง PostValue = "{"device_id\": 61121695844, \"slave_id\": 2";

PostValue = PostValue + ", \"dts\":" +ประทับเวลา;

PostValue = PostValue +", \"data\":{"INTENSITY\":" + \sensorvalue +"}"+"}";

Serial.println (PostValue);

/* สร้างอินสแตนซ์ของ WiFiClientSecure */ ไคลเอนต์ WiFiClientSecure;

Serial.println("เชื่อมต่อกับเซิร์ฟเวอร์ผ่านพอร์ต 443");

ถ้า (!client.connect(เซิร์ฟเวอร์, 443))

{

Serial.println("การเชื่อมต่อล้มเหลว!");

}

อื่น

{ Serial.println("เชื่อมต่อกับเซิร์ฟเวอร์แล้ว!"); /* สร้างคำขอ HTTP */

client.println( POST /devices/deviceData

client.println("โฮสต์: api.thingsai.io"); //client.println("การเชื่อมต่อ: ปิด"); cl

ient.println("ประเภทเนื้อหา: แอปพลิเคชัน/json");

client.println("การควบคุมแคช: ไม่มีแคช");

client.println("การอนุญาต: BearereyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PNTkXs9PtKa" client.print("เนื้อหา-ความยาว: ");

client.println(PostValue.length());

client.println();

client.println(PostValue); ////////////////////////////////// โพสต์ข้อมูลบนระบบคลาวด์จะทำและขณะนี้ได้รับคลาวด์รูปแบบการตอบสนอง เซิฟเวอร์//////////////////

Serial.print("รอการตอบกลับ");

ในขณะที่ (!client.available()){

ล่าช้า (50); //

Serial.print(".");

} /* หากมีข้อมูล ให้รับและพิมพ์ไปยัง Terminal */

ในขณะที่ (client.available())

{

ถ่าน c = client.read();

Serial.write(c);

}

/* หากเซิร์ฟเวอร์ถูกตัดการเชื่อมต่อ ให้หยุดไคลเอนต์ */

ถ้า (!client.connected())

{

Serial.println();

Serial.println("เซิร์ฟเวอร์ถูกตัดการเชื่อมต่อ");

client.stop();

}

} Serial.println("////////////////////// สิ้นสุด //////////////////// /");

ล่าช้า (3000); } }

ขั้นตอนที่ 7: การเลือกบอร์ดและพอร์ตคอม

การเลือกบอร์ดและคอมพอร์ต
การเลือกบอร์ดและคอมพอร์ต

จากเครื่องมือ เลือกบอร์ด แล้วเลือกคอมพอร์ต

ขั้นตอนที่ 8: การเชื่อมต่อวงจร

การเชื่อมต่อวงจร
การเชื่อมต่อวงจร
การเชื่อมต่อวงจร
การเชื่อมต่อวงจร
การเชื่อมต่อวงจร
การเชื่อมต่อวงจร

การเข้ารหัสเสร็จสิ้นแล้วทำการเชื่อมต่อดังต่อไปนี้ตามที่กล่าวไว้ด้านล่าง

การเชื่อมต่อ:

GND ของ esp32 ถึง GND ของเซ็นเซอร์ LDR

3V3 0f esp32 ถึง Vcc ของ LDR

รองประธาน esp32 ถึง A0 ของ LDR

ขั้นตอนที่ 9: รวบรวมและอัปโหลด

รวบรวมและอัปโหลด
รวบรวมและอัปโหลด

รวบรวมและอัปโหลดโค้ดลงใน esp32 แล้วอ่านค่าที่อ่านได้จากมอนิเตอร์แบบอนุกรม มันก็จะแสดงผลออกมาประมาณนี้

ขั้นตอนที่ 10: การตรวจสอบแบบอนุกรม

จอภาพแบบอนุกรม
จอภาพแบบอนุกรม

ค่าจะได้รับจากมอนิเตอร์แบบอนุกรม จากนั้นจะถูกส่งไปยังแพลตฟอร์ม THINGSAI IOT Cloud

ขั้นตอนที่ 11: การอ่าน

การอ่าน
การอ่าน

แสดงค่าที่ได้รับจากบอร์ด esp32

ขั้นตอนที่ 12: การแสดงกราฟิก

การแสดงกราฟิก
การแสดงกราฟิก

นี่คือการแสดงแบบกราฟิกของค่าที่ได้รับ นั่นคือจุดสิ้นสุดของบทช่วยสอน หวังว่าคุณจะเข้าใจ ขอบคุณ

แนะนำ: