สารบัญ:

ThingSpeak, ESP32 และอุณหภูมิและความชื้นไร้สายระยะไกล: 5 ขั้นตอน
ThingSpeak, ESP32 และอุณหภูมิและความชื้นไร้สายระยะไกล: 5 ขั้นตอน

วีดีโอ: ThingSpeak, ESP32 และอุณหภูมิและความชื้นไร้สายระยะไกล: 5 ขั้นตอน

วีดีโอ: ThingSpeak, ESP32 และอุณหภูมิและความชื้นไร้สายระยะไกล: 5 ขั้นตอน
วีดีโอ: Arduino ESP8266 BLYNK IOT - ทดลอง Sensor DHT22/DHT11 วัดอุณหภูมิ และ ความชื้นในอากาศ 2024, พฤศจิกายน
Anonim
ThingSpeak, ESP32 และอุณหภูมิและความชื้นไร้สายระยะไกล
ThingSpeak, ESP32 และอุณหภูมิและความชื้นไร้สายระยะไกล

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

ขั้นตอนที่ 1: ต้องใช้ฮาร์ดแวร์และซอฟต์แวร์

ฮาร์ดแวร์และซอฟต์แวร์ที่จำเป็น
ฮาร์ดแวร์และซอฟต์แวร์ที่จำเป็น
ฮาร์ดแวร์และซอฟต์แวร์ที่จำเป็น
ฮาร์ดแวร์และซอฟต์แวร์ที่จำเป็น

ฮาร์ดแวร์:

  • ESP-32: ESP32 ทำให้ง่ายต่อการใช้ Arduino IDE และ Arduino Wire Language สำหรับแอปพลิเคชัน IoT โมดูล ESp32 IoT นี้รวม Wi-Fi, Bluetooth และ Bluetooth BLE เพื่อการใช้งานที่หลากหลาย โมดูลนี้มาพร้อมกับคอร์ CPU 2 คอร์ที่สามารถควบคุมและขับเคลื่อนแยกกันได้ และด้วยความถี่สัญญาณนาฬิกาที่ปรับได้ตั้งแต่ 80 MHz ถึง 240 MHz โมดูล ESP32 IoT WiFi BLE พร้อม USB ในตัวนี้ได้รับการออกแบบมาให้พอดีกับผลิตภัณฑ์ ncd.io IoT ทั้งหมด ตรวจสอบเซ็นเซอร์และรีเลย์ควบคุม, FET, ตัวควบคุม PWM, โซลินอยด์, วาล์ว, มอเตอร์ และอื่นๆ อีกมากมายจากทุกที่ในโลกโดยใช้หน้าเว็บหรือเซิร์ฟเวอร์เฉพาะ เราผลิต ESP32 เวอร์ชันของเราเองเพื่อให้พอดีกับอุปกรณ์ NCD IoT โดยมีตัวเลือกการขยายมากกว่าอุปกรณ์อื่นๆ ในโลก! พอร์ต USB ในตัวช่วยให้ตั้งโปรแกรม ESP32 ได้ง่าย โมดูล ESP32 IoT WiFi BLE เป็นแพลตฟอร์มที่น่าทึ่งสำหรับการพัฒนาแอปพลิเคชัน IoT โมดูล ESP32 IoT WiFi BLE นี้สามารถตั้งโปรแกรมได้โดยใช้ Arduino IDE
  • IoT Long Range Wireless Temperature And Humidity Sensor: เซ็นเซอร์ความชื้นอุณหภูมิไร้สายระยะไกลอุตสาหกรรม เกรดที่มีความละเอียดของเซนเซอร์ ±1.7%RH ±0.5°C มากถึง 500,000 การส่งสัญญาณจากแบตเตอรี่ AA 2 ก้อน วัด -40 ° C ถึง 125 ° C ด้วยแบตเตอรี่ที่รอดชีวิตจากการจัดอันดับเหล่านี้ ช่วง LOS ที่เหนือกว่า 2 ไมล์และ 28 ไมล์ด้วยเสาอากาศกำลังสูง เชื่อมต่อกับ Raspberry Pi, Microsoft Azure, Arduino และอื่นๆ
  • โมเด็มตาข่ายไร้สายระยะไกลพร้อมอินเทอร์เฟซ USB

ซอฟต์แวร์ที่ใช้

  • Arduino IDE
  • ThingSpeak

ห้องสมุดที่ใช้

  • PubSubClient Library
  • Wire.h

ไคลเอนต์ Arduino สำหรับ MQTT

ไลบรารีนี้จัดเตรียมไคลเอ็นต์สำหรับการส่งข้อความแบบเผยแพร่/สมัครรับข้อมูลอย่างง่ายด้วยเซิร์ฟเวอร์ที่รองรับ MQTT

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ MQTT โปรดไปที่ mqtt.org

ดาวน์โหลด

ดาวน์โหลดไลบรารีเวอร์ชันล่าสุดได้จาก GitHub

เอกสาร

ห้องสมุดมีภาพสเก็ตช์ตัวอย่างมากมาย ดูไฟล์ > ตัวอย่าง > PubSubClient ภายในแอปพลิเคชัน Arduino เอกสาร API แบบเต็ม

ฮาร์ดแวร์ที่เข้ากันได้

ไลบรารีใช้ Arduino Ethernet Client API สำหรับการโต้ตอบกับฮาร์ดแวร์เครือข่ายพื้นฐาน ซึ่งหมายความว่ามันใช้งานได้กับบอร์ดและโล่จำนวนมากขึ้นเรื่อยๆ ซึ่งรวมถึง:

  • Arduino Ethernet
  • Arduino Ethernet Shield
  • Arduino YUN – ใช้ YunClient ที่รวมไว้แทน EthernetClient และอย่าลืมทำ Bridge.begin() ก่อน
  • Arduino WiFi Shield - หากคุณต้องการส่งแพ็กเก็ตที่มีขนาดใหญ่กว่า 90 ไบต์ด้วยโล่นี้ ให้เปิดใช้งานตัวเลือก MQTT_MAX_TRANSFER_SIZE ใน PubSubClient.h
  • SparkFun WiFly Shield – เมื่อใช้กับห้องสมุดนี้
  • อินเทล กาลิเลโอ/เอดิสัน
  • ESP8266
  • ขณะนี้ ESP32 ห้องสมุดไม่สามารถใช้กับฮาร์ดแวร์ที่ใช้ชิป ENC28J60 เช่น Nanode หรือ Nuelectronics Ethernet Shield สำหรับสิ่งเหล่านี้ มีห้องสมุดสำรองให้เลือก

ห้องสมุดสาย

ไลบรารี Wire ช่วยให้คุณสามารถสื่อสารกับอุปกรณ์ I2C ซึ่งมักเรียกว่า "2 wire" หรือ "TWI" (Two Wire Interface) สามารถดาวน์โหลดได้จาก Wire.h

การใช้งานพื้นฐาน

  • Wire.begin()เริ่มใช้ Wire ในโหมดมาสเตอร์ ซึ่งคุณจะเริ่มต้นและควบคุมการถ่ายโอนข้อมูล นี่เป็นการใช้งานทั่วไปเมื่อเชื่อมต่อกับชิปอุปกรณ์ต่อพ่วง I2C ส่วนใหญ่
  • Wire.begin(ที่อยู่)เริ่มใช้ Wire ในโหมดทาส ซึ่งคุณจะตอบกลับที่ "ที่อยู่" เมื่อชิปต้นแบบ I2C อื่นเริ่มการสื่อสาร กำลังส่ง
  • Wire.beginTransmission(ที่อยู่)เริ่มการส่งใหม่ไปยังอุปกรณ์ที่ "ที่อยู่" ใช้โหมดมาสเตอร์
  • Wire.write(ข้อมูล)ส่งข้อมูล ในโหมดมาสเตอร์ ต้องเรียก startTransmission ก่อน
  • Wire.endTransmission() ในโหมดมาสเตอร์ จะสิ้นสุดการส่งและทำให้ข้อมูลที่บัฟเฟอร์ทั้งหมดถูกส่ง

รับ

  • Wire.requestFrom(address, count) อ่าน "นับ" ไบต์จากอุปกรณ์ที่ "ที่อยู่" ใช้โหมดมาสเตอร์
  • Wire.available() ส่งกลับจำนวนไบต์ที่พร้อมใช้งานโดยการโทรรับ
  • Wire.read() รับ 1 ไบต์

ขั้นตอนที่ 2: การอัปโหลดโค้ดไปยัง ESP32 โดยใช้ Arduino IDE

  • ก่อนอัปโหลดโค้ด คุณสามารถดูการทำงานของเซ็นเซอร์นี้ได้ที่ลิงก์ที่ให้ไว้
  • ดาวน์โหลดและรวม PubSubClient Library และ Wire.h Library
  • คุณต้องกำหนดคีย์ API, SSID (ชื่อ WiFi) และรหัสผ่านของเครือข่ายที่ใช้ได้
  • รวบรวมและอัปโหลดรหัส Temp-ThinSpeak.ino
  • หากต้องการตรวจสอบการเชื่อมต่อของอุปกรณ์และข้อมูลที่ส่ง ให้เปิดจอภาพอนุกรม หากไม่เห็นการตอบสนอง ให้ลองถอดปลั๊ก ESP32 แล้วเสียบใหม่อีกครั้ง ตรวจสอบให้แน่ใจว่าอัตราบอดของจอภาพแบบอนุกรมถูกตั้งค่าเป็นอัตราเดียวกับที่ระบุไว้ในรหัส 115200 ของคุณ

ขั้นตอนที่ 3: เอาต์พุตมอนิเตอร์แบบอนุกรม

เอาต์พุตมอนิเตอร์แบบอนุกรม
เอาต์พุตมอนิเตอร์แบบอนุกรม

ขั้นตอนที่ 4: ทำให้ ThingSpeak ทำงานได้

ทำให้ ThingSpeak ทำงาน
ทำให้ ThingSpeak ทำงาน
ทำให้ ThingSpeak ทำงาน
ทำให้ ThingSpeak ทำงาน
ทำให้ ThingSpeak ทำงาน
ทำให้ ThingSpeak ทำงาน
  • สร้างบัญชีบน ThnigSpeak
  • สร้างช่องใหม่โดยคลิกที่ช่อง
  • คลิกที่ช่องของฉัน
  • คลิกช่องใหม่
  • ภายในช่องใหม่ ตั้งชื่อช่อง
  • ตั้งชื่อฟิลด์ภายในแชนเนล ฟิลด์คือตัวแปรที่มีการเผยแพร่ข้อมูล
  • ตอนนี้บันทึกช่อง
  • ตอนนี้คุณสามารถค้นหาคีย์ API ของคุณได้บนแดชบอร์ด ไปที่การแตะที่หน้าแรกและค้นหา 'เขียนคีย์ Api' ซึ่งต้องได้รับการอัปเดตก่อนอัปโหลดรหัสไปยัง ESP32
  • เมื่อสร้างแชนเนลแล้ว คุณจะสามารถดูข้อมูลอุณหภูมิและความชื้นของคุณในมุมมองส่วนตัวด้วยฟิลด์ที่คุณสร้างขึ้นภายในแชนเนล
  • ในการลงจุดกราฟระหว่างข้อมูลอุณหภูมิและความชื้น คุณสามารถใช้ MATLAB Visualization
  • ไปที่ App คลิกที่ MATLAB Visualization
  • ข้างในจะเลือก Custom ในส่วนนี้ เราได้เลือกอุณหภูมิจุดพล็อตและความเร็วลมบนแกน y 8 ที่แตกต่างกัน 2 ตัวเป็นตัวอย่าง ตอนนี้คลิกสร้าง
  • รหัส MATLAB จะถูกสร้างโดยอัตโนมัติเมื่อคุณสร้างภาพข้อมูล แต่คุณต้องแก้ไข field id อ่าน channel id สามารถตรวจสอบรูปต่อไปนี้
  • จากนั้นบันทึกและเรียกใช้รหัส
  • คุณจะเห็นโครงเรื่อง

แนะนำ: