สารบัญ:

เครื่องบันทึกข้อมูลอุณหภูมิและความชื้นจาก Arduino ไปยังโทรศัพท์ Android ด้วยโมดูลการ์ด SD ผ่าน Bluetooth: 5 ขั้นตอน
เครื่องบันทึกข้อมูลอุณหภูมิและความชื้นจาก Arduino ไปยังโทรศัพท์ Android ด้วยโมดูลการ์ด SD ผ่าน Bluetooth: 5 ขั้นตอน

วีดีโอ: เครื่องบันทึกข้อมูลอุณหภูมิและความชื้นจาก Arduino ไปยังโทรศัพท์ Android ด้วยโมดูลการ์ด SD ผ่าน Bluetooth: 5 ขั้นตอน

วีดีโอ: เครื่องบันทึกข้อมูลอุณหภูมิและความชื้นจาก Arduino ไปยังโทรศัพท์ Android ด้วยโมดูลการ์ด SD ผ่าน Bluetooth: 5 ขั้นตอน
วีดีโอ: สอน เขียนโปรแกรม ภาษาซี Arduino | ESP32 โปรเจค เขียน MIT App inveter ส่งข้อมูลผ่าน bluetooth #EP10 2024, กรกฎาคม
Anonim
เครื่องบันทึกข้อมูลอุณหภูมิและความชื้นจาก Arduino ไปยังโทรศัพท์ Android พร้อมโมดูลการ์ด SD ผ่าน Bluetooth
เครื่องบันทึกข้อมูลอุณหภูมิและความชื้นจาก Arduino ไปยังโทรศัพท์ Android พร้อมโมดูลการ์ด SD ผ่าน Bluetooth

สวัสดีทุกคน นี่เป็นคำสั่งสอนครั้งแรกของฉัน หวังว่าฉันจะช่วยชุมชนผู้สร้างเพราะฉันได้รับประโยชน์จากมัน

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

  • การรับข้อมูลจาก Sensor (DHT 11) - เซ็นเซอร์อุณหภูมิและความชื้น
  • การจัดเก็บข้อมูลที่ได้รับในการ์ด SD ด้วยโมดูลการ์ด SD
  • การถ่ายโอนข้อมูลแบบไร้สายโดยใช้ Bluetooth ไปยังแอพ Android ที่สร้างขึ้นเอง
  • การจัดเก็บค่าเซ็นเซอร์ที่ได้รับเป็นไฟล์ข้อความ (ไฟล์.txt)

ขั้นตอนที่ 1: รายการส่วนประกอบ

รายการส่วนประกอบ
รายการส่วนประกอบ
รายการส่วนประกอบ
รายการส่วนประกอบ
รายการส่วนประกอบ
รายการส่วนประกอบ

ลงไปรวบรวมกำลังทหารเพื่อทำโครงการที่ยอดเยี่ยมนี้

  • Arduino Uno (arduino อื่น ๆ ก็เหมาะสมเช่นกัน)
  • โมดูลไมโคร SD การ์ด
  • โมดูลการ์ด SD (อันที่ฉันใช้คือ 8 GB แนะนำให้ใช้ >=32 GB)
  • HC05 - โมดูล Bluetooth
  • DHT11 (เซ็นเซอร์อุณหภูมิและความชื้น)
  • จัมเปอร์จำนวนมาก
  • โทรศัพท์ Android

ขั้นตอนที่ 2: การเชื่อมต่อ:

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

การประกอบและเชื่อมต่อส่วนประกอบต่างๆ เสร็จสิ้นลงครึ่งหนึ่งสำหรับโครงการ ผลิตภัณฑ์ที่กล่าวถึงสามารถหาซื้อได้ง่ายในร้านค้าอิเล็กทรอนิกส์และเว็บไซต์ออนไลน์ส่วนใหญ่ เช่น Amazon

การเชื่อมต่อ Arduino - HC05 (บลูทูธ):

  • +5V - Vcc
  • Gnd - Gnd
  • Pin 0 - Tx
  • พิน 1 - Rx

Arduino - การเชื่อมต่อโมดูล SDcard:

  • +5V - Vcc
  • Gnd - Gnd
  • พิน 11 - MOSI (Master Out Slave In)
  • พิน 12 - MISO (Master In Slave Out)
  • พิน 13 - SCk (นาฬิกาซิงโครนัส)
  • พิน 4 - CS (เลือกชิป)

การเชื่อมต่อ Arduino - HC05 (บลูทูธ):

  • +5V - Vcc
  • Gnd - Gnd
  • พิน A0 - สัญญาณ

ขั้นตอนที่ 3: ขั้นตอน

ขั้นตอน
ขั้นตอน

เชื่อมต่อทุกส่วนตามที่กล่าวไว้ในขั้นตอนที่แล้ว ด้วยวิธีนี้ เราสามารถเขียนโค้ดใน Arduino Ide เพื่อให้บรรลุเป้าหมาย

ส่วนที่สองของโครงการของเราคือการมีแอพ Android เพื่อรับค่าเซ็นเซอร์ แสดงค่าและเก็บไว้ในไฟล์ในมือถือ ฉันใช้ Thunkable เพื่อสร้างแอปพลิเคชัน Android และได้จัดเตรียม apk และ aia ไว้ด้วย

ขั้นตอนที่ 4: รหัส Arduino:

รหัส Arduino ได้รับและอธิบายไว้ด้านล่าง

รหัส Arduino ส่วนใหญ่อธิบายตนเองด้วยไลบรารีการ์ด SD และไลบรารี DHT11 บลูทู ธ ใช้ฮาร์ดแวร์อนุกรมซึ่งเป็น pin0 และ pin1 ของ Arduino ดังนั้นการถ่ายโอนบลูทู ธ เกิดขึ้นกับฟังก์ชัน Serial print () ซึ่งใช้โปรโตคอล I2C และโมดูลการ์ด SD ใช้โปรโตคอล SPI เพื่อสื่อสารกับมัน

/*

* การ์ด SD ที่แนบมากับบัส SPI ดังนี้:

** MOSI - พิน 11 ** MISO - พิน 12 ** CLK - พิน 13 ** CS - พิน 4 (สำหรับ MKRZero SD: SDCARD_SS_PIN) * * การเชื่อมต่อโมดูล HC 05: ** TX - พิน 0 (ค่าเริ่มต้น) [สามารถเป็นได้ เปลี่ยนหากมีการใช้ Softwareserial] ** RX - pin 1 (ค่าเริ่มต้น) [สามารถเปลี่ยนแปลงได้หาก Softwareserial กำลังใช้งาน]

*/

#รวม

#รวม #รวม

ไฟล์ myFile;

ดีเอชที ดีเอชที; #define DHT11_PIN A0

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

// เปิดการสื่อสารแบบอนุกรมและรอให้พอร์ตเปิด: Serial.begin(9600); Serial.println("ประเภท \tStatus, \tHumidity(%), \tTemperature(C)"); ในขณะที่ (!Serial) {; // รอให้พอร์ตอนุกรมเชื่อมต่อ จำเป็นสำหรับพอร์ต USB ดั้งเดิมเท่านั้น } DHTAcq(); sdCardWrite("test3.txt"); sdCardRead("test3.txt");

}

เป็นโมฆะ DHTAcq()

{ Serial.println("DHT11, \t"); int chk = DHT.read11(DHT11_PIN); Serial.print(DHT.ความชื้น 1); Serial.print(", \t"); Serial.print(DHT.อุณหภูมิ 1); ล่าช้า (2000); }

ถือเป็นโมฆะ sdCardWrite (สตริง fileNameStr)

{ Serial.println ("กำลังเตรียมใช้งานการ์ด SD"); ถ้า (!SD.begin (4)) { Serial.println ("การเริ่มต้นล้มเหลว"); กลับ; } Serial.println("เริ่มต้นเสร็จแล้ว!"); // เปิดไฟล์. โปรดทราบว่าสามารถเปิดไฟล์ได้ครั้งละหนึ่งไฟล์เท่านั้น // ดังนั้น คุณต้องปิดไฟล์นี้ก่อนที่จะเปิดไฟล์อื่น myFile = SD.open (fileNameStr, FILE_WRITE); // ถ้าไฟล์เปิดได้ ให้เขียนไปที่ if (myFile) { myFile.println("DHT11, \t"); int chk = DHT.read11(DHT11_PIN); myFile.print(DHT.ความชื้น 1); myFile.print(", \t"); myFile.print(DHT.อุณหภูมิ 1); myFile.close(); Serial.println("เสร็จสิ้น!"); ล่าช้า(200); /*Serial.print("กำลังเขียน test.txt…"); myFile.println("กำลังทดสอบ 1, 2, 3."); // ปิดไฟล์: myFile.close(); Serial.println("เสร็จสิ้น"); */ } else { // หากไฟล์ไม่เปิดขึ้น ให้พิมพ์ข้อผิดพลาด: Serial.println ("ข้อผิดพลาดในการเปิด test.txt"); } }

ถือเป็นโมฆะ sdCardRead (ชื่อไฟล์สตริง)

{ // เปิดไฟล์เพื่ออ่านอีกครั้ง: myFile = SD.open(fileName); ถ้า (myFile) { Serial.println ("test.txt:"); // อ่านจากไฟล์จนไม่มีอะไรอยู่ในนั้น: while (myFile.available()) { Serial.write(myFile.read()); } // ปิดไฟล์: myFile.close(); } อื่น { // หากไฟล์ไม่เปิดขึ้น ให้พิมพ์ข้อผิดพลาด: Serial.println ("ข้อผิดพลาดในการเปิด test.txt"); } }

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

// ไม่มีอะไรเกิดขึ้นหลังจากตั้งค่า //Serial.println("test 1.. 2.. 3"); // ล่าช้า (1000); }

ขั้นตอนที่ 5: แอพ Android:

แอพ Android
แอพ Android
แอพ Android
แอพ Android

แอพ Android สร้างด้วยแอปพลิเคชั่น Thunkable พร้อมการเขียนโปรแกรมลากและวาง มันจะบันทึกข้อมูลลงบนฉลากบนหน้าจอและเมื่อกดปุ่ม Store Data ที่ตำแหน่ง AppInventor/Data ด้วยชื่อไฟล์ที่ได้รับรหัส

โปรเจ็กต์สามารถขยายเพื่อให้มีที่เก็บข้อมูลแบบออฟไลน์ของข้อมูลเซ็นเซอร์ที่เราต้องการโดยแทนที่ด้วยโมดูลเซ็นเซอร์ที่ต้องการ และสามารถขยายแอปเพื่อดึงข้อมูลจากที่จัดเก็บและจัดการเพื่อให้เหมาะกับแอปพลิเคชัน

แนะนำ: