กลับไปหน้ารวมไฟล์
mkr-zero-weather-data-logger-2517ba.md

หมายเหตุ: เฮ้ยน้อง บทความนี้มันเริ่มเก่าแล้วนะ ถ้าอยากได้เวอร์ชันล่าสุดแบบสดๆ ร้อนๆ ให้ไปดูที่หน้าเว็บหลักได้เลย

เกริ่นนำ

มาเลยวัยรุ่น! โปรเจกต์นี้พี่จะพาน้องทำเครื่องบันทึกข้อมูลอุณหภูมิและความชื้น (Data Logger) ภายในเวลาไม่กี่นาที เราจะใช้ช่อง SD card reader ที่ติดมาบนบอร์ด MKR Zero ไว้เก็บข้อมูลยาวๆ แค่เสียบ Battery แล้วหาเคสหล่อๆ มาใส่ น้องก็ได้ Weather Data Logger เท่ๆ เอาไปวางทิ้งไว้ในป่าในเขาก็ยังได้ จินตนาการไปให้สุดเลยน้อง!

Hardware

ในการปั้นโปรเจกต์นี้ เราจะใช้บอร์ด [Arduino](https://s.shopee.co.th/7fUgFAWSki) MKR Zero เป็นหัวใจหลัก เพราะมันตัวเล็กกะทัดรัด แถมมี SD card reader ในตัวมาให้เลย เหมาะเหม็งที่สุดสำหรับงานนี้

อย่างที่สองที่เราต้องใช้คือ [Sensor](https://s.shopee.co.th/7VBG2rX65j) DHT22 เอาไว้ตรวจวัดอุณหภูมิและความชื้น ตัวนี้หาซื้อง่ายและใช้งานโคตรคุ้ม กินไฟได้ตั้งแต่ 3.3V ถึง 6V เลยล่ะ เราจะต่อขา Power ของ DHT22 เข้ากับขา VCC (3.3V) ในบอร์ด MKR Zero และที่สำคัญ ห้ามลืมใส่ Pull up resistor ขนาด 4k7ohm ที่สาย Data และ Capacitor 100nF เพื่อกรองสัญญาณรบกวนในสายไฟด้วยนะน้อง เดี๋ยวค่ามันจะแกว่ง!

เราจะใช้ Breadboard เล็กๆ กับสาย Jumper สัก 3 เส้นมาต่อทุกอย่างเข้าด้วยกัน เตรียม SD card ไว้เก็บข้อมูล และแบตเตอรี่ LiPo 3.7V เพื่อให้ Data Logger ของเรามันพกพาไปลุยได้ทุกที่

อุปกรณ์ตามนี้เลยวัยรุ่น

ของเสริม (มีก็ดี ไม่มีก็ได้)

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

Schematics (ผังวงจร)

  • เสียบ MKR Zero ลงบน Breadboard เลย
  • ตามด้วยเสียบ DHT22 ลงไป
  • ต่อขา Power ของ DHT22 เข้ากับขา VCC ของ MKR Zero
  • ต่อขา Data ของ DHT22 เข้ากับ Digital Pin 7 ของ MKR Zero
  • ต่อขา Ground ของ DHT22 เข้ากับขา GND ของ MKR Zero
  • ใส่ Capacitor 100nF คร่อมระหว่างขา Power กับ GND
  • ใส่ Pull up resistor 4k7 คร่อมระหว่างขา Power กับ Data
  • สุดท้าย เสียบ SD card เข้าไปในบอร์ด MKR Zero ให้เรียบร้อย
ผังการต่อวงจร

Arduino IDE

โอเค ต่อวงจรเสร็จแล้วคราวนี้มาลง Software กัน ถึงเวลาอัปโหลด Sketch ลงบอร์ด MKR Zero แล้ว โปรเจกต์นี้ต้องใช้ Library สำหรับ Sensor DHT22 ด้วยนะ ไปโหลดมาแล้วเอาไปวางใน Folder "libraries" ในเครื่องน้องให้เรียบร้อย

จากนั้นน้องต้องโหลด Sketch ของ Weather Data Logger ตัวนี้มาไว้ในเครื่องด้วยล่ะ

เปิด Arduino IDE ขึ้นมา แล้วไปที่ Boards Manager เพื่อติดตั้งบอร์ด MKR Zero พอลงเสร็จแล้ว น้องจะสามารถเลือกบอร์ดได้ที่เมนู Tools -> Board ทีนี้ก็ต่อสาย microUSB จากบอร์ดเข้าคอมพิวเตอร์ แล้วเปิดไฟล์ File->Sketchbook->MKRZERO_WeatherDataLogger กด Compile แล้วอัปโหลดลงบอร์ดได้เลย!

เรียบร้อย! ระบบของน้องพร้อมออกรบแล้ว สามารถเช็คค่าที่วัดได้ผ่านทาง Serial monitor ได้เลยนะ

ข้อมูลใน Serial Port

จัดไปวัยรุ่น!

รายละเอียดทางเทคนิคเพิ่มเติม (ฉบับเน้นเนื้อๆ)

การวิเคราะห์ข้อมูลภาคสนามแบบมือโปร

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

  • การรวมระบบ SD Card: MKR Zero มี MicroSD slot มาให้ในตัวเลย Arduino จะบันทึกข้อมูลจาก I2C sensors (BME280/BMP180) ลงในไฟล์ .CSV ได้โดยตรง
  • ความแม่นยำของ Analog: บอร์ด MKR Zero มี ADC ขนาด 12-bit ซึ่งให้ความละเอียดถึง 4096 ระดับ บอกเลยว่าวัดค่าได้ละเอียดกว่าบอร์ด Arduino Uno (10-bit ADC) ทั่วไปหลายเท่าตัวนัก

ความทนทานในการใช้งานจริง

  • ระบบจัดการพลังงาน: มีวงจรชาร์จแบตเตอรี่ LiPo มาให้ในตัว ส่วนในด้าน Firmware เราจะใช้โหมด Low Power Sleep เพื่อให้บอร์ดตื่นขึ้นมาเก็บข้อมูลทุกๆ 10 นาทีแล้วหลับต่อ ช่วยให้ใช้งานได้นานโคตรๆ ต่อการชาร์จครั้งเดียว

ข้อมูล Frontmatter ดั้งเดิม

title: "MKR Zero Weather Data Logger"
description: "Read temperature and humidity values in a remote location and store the data in an SD card."
author: "Arduino_Genuino"
category: "Sensors & Environment"
tags:
  - "weather"
  - "data collection"
views: 47438
likes: 49
price: 2450
difficulty: "Easy"
components:
  - "1x Medium breadboard"
  - "1x Arduino MKR Zero"
  - "1x Resistor 4.75k ohm"
  - "1x microSD card"
  - "1x DHT22 Temperature and Humidity sensor"
  - "1x Capacitor 100 nF"
  - "3x Jumper wires (generic)"
tools: []
apps:
  - "1x Arduino IDE"
  - "1x Arduino Web Editor"
downloadableFiles:
  - "https://create.arduino.cc/editor/Arduino_Genuino/9a077c75-51b7-42b0-9a73-5e5b5562a429/preview"
  - "https://create.arduino.cc/editor/Arduino_Genuino/9a077c75-51b7-42b0-9a73-5e5b5562a429/preview"
documentationLinks: []
passwordHash: "86d6819e881950c2d295a32e3b8e3360012694821f79de3776d84253aebe54ba"
encryptedPayload: "U2FsdGVkX19h6js0XkYz+eD1vwM4twzE67HwaQyEO6Vq0hJziPRCtcqo7CNCHSldKD1wmM/WkIE2g/qaqXeTYz7XY3EuO6PIs548yLnu5LXxnbEdOsTkLE4tgHnBvumW"
seoDescription: "Build an MKR Zero Weather Data Logger to monitor and log temperature and humidity data to an SD card from remote locations."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/mkr-zero-weather-data-logger-2517ba_cover.jpg"
lang: "th"