สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบ
- ขั้นตอนที่ 2: การเชื่อมต่อ
- ขั้นตอนที่ 3: การเข้ารหัส
- ขั้นตอนที่ 4: ผลลัพธ์
- ขั้นตอนที่ 5: กราฟ
- ขั้นตอนที่ 6: นี่คือวิดีโอคำอธิบายของ Breif
วีดีโอ: เครื่องตรวจจับความเคลื่อนไหวโดยใช้แพลตฟอร์ม Thingsai.io Iot Cloud: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ในบทช่วยสอนนี้ ฉันจะอธิบายเกี่ยวกับการตรวจจับการเคลื่อนไหวโดยใช้เซ็นเซอร์ PIR และ Esp32 ร่วมกับแพลตฟอร์มคลาวด์ IOT Thingai.io
ขั้นตอนที่ 1: ส่วนประกอบ
ส่วนประกอบฮาร์ดแวร์
1.esp32 คณะกรรมการพัฒนา
2.เซ็นเซอร์ PIR
3. สายจัมเปอร์
ซอฟต์แวร์:
1. Arduino IDE
2. บัญชี Thingsai.io
ขั้นตอนที่ 2: การเชื่อมต่อ
การเชื่อมต่อนั้นเรียบง่าย
PIR PINS -------------- ESP32 PINS
VCC ----- 3V3 บน esp32
GND -------------------- GND บน esp32
ออก ----- D22 บน esp32
ขั้นตอนที่ 3: การเข้ารหัส
วางโค้ดนี้ลงใน Arduino IDE ของคุณด้วยการอัพเดต เซ็นเซอร์ตรวจจับความเคลื่อนไหวจะให้ผลลัพธ์ที่ไร้ที่ติ
#รวม
#รวม
#รวม
จำนวน int=0, i, m, j, k;
int เสื้อ, t1, t2, t3;
int พิน = 22;
/////////////////////////////////////// ประกาศทั้งหมดสำหรับ 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;
////////////////////////////////////// ฟังก์ชันการคำนวณเวลา//////// /////////////////////////////
ภายใน GiveMeTimestamp()
{
หมดเวลานานที่ไม่ได้ลงนาม = millis();
// ไคลเอนต์ 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);
pinMode(พิน, INPUT);
// เราเริ่มต้นด้วยการเชื่อมต่อกับเครือข่าย WiFi
WiFiMulti.addAP("wifi_name", "Wifi_password");
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 (เอาต์พุต);
{
////////////////////////////////////// ส่งคำถามและรับคำตอบ//// //////////////////
{
bool isDetected = digitalRead (พิน);
ถ้า (ถูกตรวจพบ){
Serial.println("ตรวจพบการมีอยู่");
}
ล่าช้า (500);
}
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("โฮสต์: baas.thethingscloud.com");
client.println("การควบคุมแคช: ไม่มีแคช");
client.println("บุรุษไปรษณีย์โทเค็น: ea3c18c6-09ba-d049-ccf3-369a22a284b8");
client.println();
GiveMeTimestamp(); //มันจะเรียกใช้ฟังก์ชันซึ่งจะได้รับการตอบสนองการประทับเวลาจากเซิร์ฟเวอร์
Serial.println("ได้รับประทับเวลา");
Serial.println (ประทับเวลา);
Serial.println("ภายใน ThingsCloudPost");
สตริง PostValue = "{"device_id\": 61121695839, \"slave_id\": 2";
PostValue = PostValue + ", \"dts\":" +ประทับเวลา;
PostValue = PostValue +", \"data\":{"PIR\":" + pin +"}"+"}";
Serial.println (PostValue);
/* สร้างอินสแตนซ์ของ WiFiClientSecure */
ไคลเอนต์ WiFiClientSecure;
Serial.println("เชื่อมต่อกับเซิร์ฟเวอร์ผ่านพอร์ต 443");
if (!client.connect(เซิร์ฟเวอร์, 443)){
Serial.println("การเชื่อมต่อล้มเหลว!");
} อื่น {
Serial.println("เชื่อมต่อกับเซิร์ฟเวอร์แล้ว!");
/* สร้างคำขอ HTTP */
client.println( POST /devices/deviceData
client.println("โฮสต์: api.thingsai.io");
//client.println("การเชื่อมต่อ: ปิด");
client.println("ประเภทเนื้อหา: แอปพลิเคชัน/json");
client.println("การควบคุมแคช: ไม่มีแคช");
client.println("การอนุญาต: ผู้ถือ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. IjVhMzBkZDFkN2QwYjNhNGQzODkwYzQ4OSI.kaY6OMj5cYlWNqC2PykXs9Pt5"
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("เซิร์ฟเวอร์ถูกตัดการเชื่อมต่อ");javascript:;
client.stop();
}
}
Serial.println("////////////////////// สิ้นสุด //////////////////// ");
ล่าช้า (3000);
}
}
ขั้นตอนที่ 4: ผลลัพธ์
นี่คือการแสดงกราฟแท่งของค่าที่อ่านจากเซ็นเซอร์ใน Thingsai แพลตฟอร์มคลาวด์ io
ขั้นตอนที่ 5: กราฟ
นี่คือการแสดงค่าแบบกราฟิกจากเซ็นเซอร์ จากกราฟข้างต้น เราสามารถวิเคราะห์การใช้งานเซ็นเซอร์ได้ ขอบคุณ
แนะนำ:
วิธีเชื่อมต่อ ESP8266 NodeMCU กับ IoT Cloud: 5 ขั้นตอน
วิธีเชื่อมต่อ ESP8266 NodeMCU กับ IoT Cloud: คำแนะนำนี้แสดงการสาธิต Internet of Things อย่างง่ายโดยใช้ ESP8266 NodeMCU และบริการ IoT ออนไลน์ที่เรียกว่า AskSensors เราสาธิตวิธีรับข้อมูลจากไคลเอนต์ HTTPS ของ ESP8266 อย่างรวดเร็วและลงจุดในกราฟลงใน AskSensors Io
วิธีเชื่อมต่อ ESP32 กับ IoT Cloud: 8 ขั้นตอน
วิธีเชื่อมต่อ ESP32 กับ IoT Cloud: คำแนะนำนี้มีอยู่ในชุดบทความเกี่ยวกับการเชื่อมต่อฮาร์ดแวร์ เช่น Arduino และ ESP8266 กับคลาวด์ ฉันจะอธิบายวิธีทำให้ชิป ESP32 ของคุณเชื่อมต่อกับคลาวด์ด้วยบริการ AskSensors IoT ทำไมต้องเป็น ESP32 หลังจากประสบความสำเร็จอย่างยิ่งใหญ่
วิธีการตรวจสอบระยะทางอัลตราโซนิกด้วย ESP8266 และ AskSensors IoT Cloud: 5 ขั้นตอน
วิธีตรวจสอบระยะทางอัลตราโซนิกด้วย ESP8266 และ AskSensors IoT Cloud: คำแนะนำนี้นำเสนอวิธีการตรวจสอบระยะทางจากวัตถุโดยใช้เซ็นเซอร์อัลตราโซนิก HC-SR04 และโหนด ESP8266 MCU ที่เชื่อมต่อกับ AskSensors IoT cloud
วิธีเผยแพร่ข้อมูล ESP32 ด้วย NTP Timestamp ไปยัง IoT Cloud: 5 ขั้นตอน
วิธีเผยแพร่ข้อมูล ESP32 ด้วย NTP Timestamp ไปยัง IoT Cloud: ในหลาย ๆ แอปพลิเคชัน ผู้ใช้จำเป็นต้องส่งข้อมูลพร้อมกับการประทับเวลาท้องถิ่นของค่าที่จะส่งในเพย์โหลดไปยัง AskSensors IoT cloud รูปแบบการประทับเวลาคือ UNIX Epoch time: จำนวนมิลลิวินาทีที่ผ่านไปตั้งแต่ Janu
LDR การใช้ Thingsai Cloud: 13 ขั้นตอน
LDR การใช้ Thingsai Cloud: เฮ้…..วันนี้เราจะมาเรียนรู้เกี่ยวกับการวัดความเข้มของแสงและการโพสต์ค่าลงในแพลตฟอร์มคลาวด์ THINGSAI IOT โดยใช้ ESP32 ข้อกำหนดในการทำโครงการนี้คือ1. บอร์ดพัฒนา ESP32 (ฉันเคยใช้ ESP32 DEVKIT V1) 2. LD