สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบ:
- ขั้นตอนที่ 2: เซ็นเซอร์พื้นฐาน: ความชื้นในดิน FC 28
- ขั้นตอนที่ 3: ทำความเข้าใจ MQTT: สำหรับการเผยแพร่ข้อมูลระยะไกล
- ขั้นตอนที่ 4: MQTT: การตั้งค่าบัญชีนายหน้า MQTT
- ขั้นตอนที่ 5: MQTT: การสร้างอินสแตนซ์
- ขั้นตอนที่ 6: MQTT: ข้อมูลอินสแตนซ์
- ขั้นตอนที่ 7: MQTT: การเพิ่ม User
- ขั้นตอนที่ 8: MQTT: กำหนดกฎ ACL
- ขั้นตอนที่ 9: Nodemcu: การกำหนดค่า
- ขั้นตอนที่ 10: Nodemcu: การอัปโหลดสคริปต์ Lua ไปยัง Nodemcu ด้วย ESPlorer_1
- ขั้นตอนที่ 11: Nodemcu: การอัปโหลดสคริปต์ Lua ไปยัง Nodemcu ด้วย ESPlorer_II
- ขั้นตอนที่ 12: Nodemcu: การอัปโหลดสคริปต์ Lua ไปยัง Nodemcu ด้วย ESPlorer_III
- ขั้นตอนที่ 13: Nodemcu: การกำหนดค่า Arduino เพื่อพูดคุยกับ Nodemcu
- ขั้นตอนที่ 14: Nodemcu: การตั้งค่าไคลเอนต์ MQTT ใน Android
- ขั้นตอนที่ 15: ขั้นตอนเพิ่มเติม: การทำงานกับ Nokia LCD 5110
- ขั้นตอนที่ 16: การประกอบขั้นสุดท้าย
วีดีโอ: ตรวจสอบสวนของคุณ: 16 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ตรวจสอบสวนของคุณได้จากทุกที่ ใช้จอแสดงผลในพื้นที่เพื่อตรวจสอบสภาพดินในพื้นที่หรือใช้มือถือเพื่อตรวจสอบจากระยะไกล วงจรใช้เซ็นเซอร์ความชื้นในดินควบคู่ไปกับอุณหภูมิและความชื้นเพื่อให้ทราบถึงสภาวะแวดล้อมของดิน
ขั้นตอนที่ 1: ส่วนประกอบ:
- Arduino uno
- โนเดมคู
- เซ็นเซอร์อุณหภูมิและความชื้น DHT 11
- เซ็นเซอร์ความชื้นในดิน - FC28
- แบตเตอรี 10000mah (สำหรับ Arduino & nodemcu)
- โนเกีย LCD 5110
- รีซิเตอร์ (5 x 10k, 1 x 330ohms)
- Potentiometer ชนิดโรตารี่ (เพื่อปรับความสว่าง LCD) 0-100K
- สายจัมเปอร์
- เขียงหั่นขนม
ขั้นตอนที่ 2: เซ็นเซอร์พื้นฐาน: ความชื้นในดิน FC 28
ในการวัดความชื้น เราใช้เซ็นเซอร์ความชื้นในดิน FC 28 ซึ่งมีหลักการดังนี้:-
ข้อกำหนดของเซ็นเซอร์ความชื้นในดิน FC-28 มีดังนี้: แรงดันไฟฟ้าขาเข้า: 3.3 – 5V
แรงดันขาออก: 0 – 4.2V
กระแสไฟเข้า: 35mA
สัญญาณเอาท์พุต: ทั้งอนาล็อกและดิจิตอล
เซ็นเซอร์ความชื้นในดิน FC-28 มีสี่พิน:VCC: กำลังไฟฟ้า
A0: เอาต์พุตอนาล็อก
D0: เอาต์พุตดิจิตอล
GND: กราวด์
โหมดแอนะล็อกในการเชื่อมต่อเซ็นเซอร์ในโหมดแอนะล็อก เราจะต้องใช้เอาต์พุตแอนะล็อกของเซ็นเซอร์ เมื่อรับเอาต์พุตอะนาล็อกจากเซ็นเซอร์ความชื้นในดิน FC-28 เซ็นเซอร์จะให้ค่าตั้งแต่ 0 ถึง 1023 ความชื้นวัดเป็นเปอร์เซ็นต์ ดังนั้นเราจะแมปค่าเหล่านี้จาก 0 ถึง 100 จากนั้นเราจะแสดงค่าเหล่านี้บน จอภาพแบบอนุกรม คุณสามารถตั้งค่าความชื้นช่วงต่างๆ และเปิดหรือปิดปั๊มน้ำได้ตามต้องการ
โมดูลยังมีโพเทนชิออมิเตอร์ซึ่งจะตั้งค่าเกณฑ์ ค่าเกณฑ์นี้จะถูกเปรียบเทียบโดยตัวเปรียบเทียบ LM393 LED เอาต์พุตจะสว่างขึ้นและลงตามค่าเกณฑ์นี้
รหัสสำหรับการเชื่อมต่อกับเซ็นเซอร์ความชื้นในดินมีขึ้นในขั้นตอนต่อไป
ขั้นตอนที่ 3: ทำความเข้าใจ MQTT: สำหรับการเผยแพร่ข้อมูลระยะไกล
ก่อนที่เราจะเริ่มต้นเพิ่มเติม ให้เราดำเนินการเผยแพร่ข้อมูลระยะไกลสำหรับ IOT. ก่อน
MQTT ย่อมาจาก MQ Telemetry Transport เป็นโปรโตคอลการส่งข้อความแบบเผยแพร่/สมัครใช้งานที่ง่ายมากและน้ำหนักเบา ออกแบบมาสำหรับอุปกรณ์ที่มีข้อจำกัดและเครือข่ายแบนด์วิดธ์ต่ำ เวลาแฝงสูง หรือไม่น่าเชื่อถือ หลักการออกแบบคือการลดแบนด์วิดท์เครือข่ายและความต้องการทรัพยากรอุปกรณ์ในขณะที่พยายามทำให้มั่นใจถึงความน่าเชื่อถือและการรับประกันระดับหนึ่ง หลักการเหล่านี้ยังทำให้โปรโตคอลในอุดมคติของโลก "เครื่องต่อเครื่อง" (M2M) หรือ "อินเทอร์เน็ตของสิ่งต่างๆ" ที่เกิดขึ้นใหม่ของอุปกรณ์ที่เชื่อมต่อ และสำหรับแอปพลิเคชันมือถือที่มีแบนด์วิดท์และพลังงานแบตเตอรี่อยู่ในระดับสูง
ที่มา:
MQTT[1] (MQ Telemetry Transport หรือ Message Queuing Telemetry Transport) เป็นมาตรฐาน ISO (ISO/IEC PRF 20922)[2] โปรโตคอลการส่งข้อความตามการเผยแพร่สมัครรับข้อมูล ทำงานบนโปรโตคอล TCP/IP ได้รับการออกแบบมาสำหรับการเชื่อมต่อกับสถานที่ห่างไกลที่ต้องการ "รอยเท้าโค้ดขนาดเล็ก" หรือแบนด์วิดท์ของเครือข่ายมีจำกัด
ที่มา:
ขั้นตอนที่ 4: MQTT: การตั้งค่าบัญชีนายหน้า MQTT
มีบัญชีโบรกเกอร์ MQTT หลายบัญชี สำหรับบทช่วยสอนนี้ ฉันใช้ cloudmqtt (https://www.cloudmqtt.com/)
CloudMQTT คือเซิร์ฟเวอร์ Mosquitto ที่มีการจัดการในระบบคลาวด์ Mosquitto ใช้โปรโตคอล MQ Telemetry Transport MQTT ซึ่งให้วิธีการที่มีน้ำหนักเบาในการดำเนินการส่งข้อความโดยใช้โมเดลการจัดคิวข้อความเผยแพร่/สมัครรับข้อมูล
ต้องดำเนินการตามขั้นตอนต่อไปนี้เพื่อตั้งค่าบัญชี cloudmqtt เป็นนายหน้า
- สร้างบัญชีและเข้าสู่ระบบแผงควบคุม
- กด Create+ เพื่อสร้างอินสแตนซ์ใหม่
- ในการเริ่มต้น เราต้องลงชื่อสมัครใช้แผนลูกค้า เราสามารถลองใช้ CloudMQTT ได้ฟรีด้วยแผน CuteCat
- หลังจากสร้าง "อินสแตนซ์" แล้ว ขั้นตอนต่อไปคือการสร้างผู้ใช้และกำหนดสิทธิ์เพิ่มเติมให้กับผู้ใช้ในการเข้าถึงข้อความ (ผ่านกฎ ACL)
คู่มือฉบับสมบูรณ์เพื่อตั้งค่าบัญชีโบรกเกอร์ MQTT ใน cloudmqtt สามารถเข้าถึงได้โดยไปที่ลิงก์: -
ขั้นตอนข้างต้นทั้งหมดจะถูกใส่ทีละตัวในสไลด์ต่อไปนี้
ขั้นตอนที่ 5: MQTT: การสร้างอินสแตนซ์
ฉันได้สร้างอินสแตนซ์ที่มีชื่อ " myIOT"
แผน: แผนน่ารัก
ขั้นตอนที่ 6: MQTT: ข้อมูลอินสแตนซ์
อินสแตนซ์จะได้รับการจัดสรรทันทีหลังจากลงชื่อสมัครใช้ และคุณสามารถดูรายละเอียดอินสแตนซ์ เช่น ข้อมูลการเชื่อมต่อ ได้ที่หน้ารายละเอียด คุณยังสามารถเข้าถึงอินเทอร์เฟซการจัดการได้จากที่นั่น บางครั้งคุณต้องระบุ URL การเชื่อมต่อ
ขั้นตอนที่ 7: MQTT: การเพิ่ม User
สร้างผู้ใช้ชื่อ “nodemcu_12” และให้รหัสผ่าน
ขั้นตอนที่ 8: MQTT: กำหนดกฎ ACL
หลังจากสร้างผู้ใช้ใหม่ (nodemcu_12) ให้บันทึกผู้ใช้รายใหม่ ตอนนี้ต้องจัดเตรียม ACL เพิ่มเติมให้กับผู้ใช้ใหม่ ในภาพที่แนบมาจะเห็นว่าฉันได้ให้ทั้งการเข้าถึงแบบอ่านและเขียนแก่ผู้ใช้
โปรดทราบ: หัวข้อจะถูกเพิ่มตามที่แสดงในรูปแบบ (จำเป็นเพิ่มเติมสำหรับการอ่านและเขียนจากโหนดไปยังไคลเอนต์ MQTT)
ขั้นตอนที่ 9: Nodemcu: การกำหนดค่า
ในโครงการนี้โดยเฉพาะ ฉันใช้ nodemcu จาก Knewron Technologies สามารถรับข้อมูลเพิ่มเติมได้โดยไปที่ลิงก์: -(https://www.dropbox.com/s/73qbh1jfdgkauii/smartWiFi%20Development%20Module%20-%20User% 20Guide.pdf?dl=0)
อาจเห็นว่า NodeMCU เป็นเฟิร์มแวร์ที่ใช้ eLua สำหรับ ESP8266 WiFi SOC จาก Espressif Nodemcu จาก Knowron นั้นโหลดเฟิร์มแวร์ไว้ล่วงหน้า ดังนั้นเราจึงต้องโหลดซอฟต์แวร์แอพ นั่นคือ: -
- init.lua
- setup.lua
- config.lua
- app.lua
สคริปต์ lua ด้านบนทั้งหมดสามารถดาวน์โหลดได้จาก Github โดยไปที่ลิงก์: ดาวน์โหลดจาก Github
จากสคริปต์ lua ด้านบน ให้แก้ไขสคริปต์ config.lua ด้วยชื่อโฮสต์ MQTT รหัสผ่าน wifi ssid เป็นต้น
ในการดาวน์โหลดสคริปต์ข้างต้นไปยัง nodemcu เราต้องใช้เครื่องมือเช่น "ESPlorer" โปรดดูเอกสารสำหรับข้อมูลเพิ่มเติม:
การทำงานกับ ESPlorer ได้อธิบายไว้ในขั้นตอนต่อไป
ขั้นตอนที่ 10: Nodemcu: การอัปโหลดสคริปต์ Lua ไปยัง Nodemcu ด้วย ESPlorer_1
- คลิกปุ่มรีเฟรช
- เลือกพอร์ต COM (การสื่อสาร) & อัตราบอด (ใช้กันทั่วไป 9600)
- คลิกเปิด
ขั้นตอนที่ 11: Nodemcu: การอัปโหลดสคริปต์ Lua ไปยัง Nodemcu ด้วย ESPlorer_II
ขั้นตอนที่ 12: Nodemcu: การอัปโหลดสคริปต์ Lua ไปยัง Nodemcu ด้วย ESPlorer_III
ปุ่มบันทึกและคอมไพล์จะส่งสคริปต์ lua ทั้งหมดสี่ตัวไปยัง nodemcu หลังจากที่ nodemcu นี้พร้อมที่จะพูดคุยกับ Arduino ของเรา
การรวบรวมข้อมูล CHIP ID:
nodemcu ทุกตัวมีรหัสชิป (อาจมีบางหมายเลข) รหัสชิปนี้จำเป็นเพิ่มเติมเพื่อเผยแพร่ข้อความไปยังโบรกเกอร์ MQTT เพื่อให้ทราบเกี่ยวกับรหัสชิปให้คลิกปุ่ม รหัสชิปใน "ESPlorer"
ขั้นตอนที่ 13: Nodemcu: การกำหนดค่า Arduino เพื่อพูดคุยกับ Nodemcu
รหัสที่กล่าวถึงด้านล่างเป็นตัวกำหนดความชื้น อุณหภูมิ และความชื้นในดิน และแสดงข้อมูลบน nokia LCD 5110 เพิ่มเติมและตามลำดับ
รหัส Arduino
กว่าเชื่อมต่อ Arduino RX --- Nodemcu TX
Arduino TX --- Nodemcu RX
โค้ดด้านบนนี้ยังมีวิธีการใช้ไลบรารี softserial โดยที่พิน DO สามารถใช้เป็นพินอนุกรมได้ ฉันใช้พิน RX/TX เพื่อเชื่อมต่อกับพอร์ตอนุกรมของ nodemcu
ข้อควรระวัง: เนื่องจาก nodemcu ใช้งานได้กับ 3.3V ขอแนะนำให้ใช้ตัวเลื่อนระดับ อย่างไรก็ตาม ฉันได้เชื่อมต่อโดยตรงโดยไม่มีตัวเลื่อนระดับใดๆ และประสิทธิภาพก็ดูเหมาะสมสำหรับแอปพลิเคชันด้านบนนี้
ขั้นตอนที่ 14: Nodemcu: การตั้งค่าไคลเอนต์ MQTT ใน Android
ขั้นตอนสุดท้ายสำหรับการดูข้อมูลบนมือถือด้วยไคลเอนต์ Android:-
มีแอปพลิเคชั่น MQTT สำหรับ Android ที่หลากหลาย ฉันใช้แอปพลิเคชันจาก google play พร้อมลิงก์ต่อไปนี้:
.https://play.google.com/store/apps/details?
การกำหนดค่าสำหรับแอพ Android นั้นค่อนข้างง่ายและต้องกำหนดค่าดังต่อไปนี้
- MQTT ที่อยู่โฮสต์พร้อมกับพอร์ต no
- ชื่อผู้ใช้และที่อยู่ MQTT
- ที่อยู่โหนดนายหน้า MQTT
หลังจากเพิ่มรายละเอียดข้างต้นแล้ว ให้เชื่อมต่อแอปพลิเคชัน หากแอปพลิเคชันเชื่อมต่อกับโบรกเกอร์ MQTT สถานะอินพุต / ข้อมูลการสื่อสารแบบอนุกรมทั้งหมดจาก Arduino จะปรากฏเป็นบันทึก
ขั้นตอนที่ 15: ขั้นตอนเพิ่มเติม: การทำงานกับ Nokia LCD 5110
ต่อไปนี้เป็นการกำหนดค่าพินสำหรับ LCD 5110
1) RST – รีเซ็ต
2) CE – เปิดใช้งานชิป
3) D/C – ข้อมูล/การเลือกคำสั่ง
4) DIN – อินพุตแบบอนุกรม
5) CLK – อินพุตนาฬิกา
6) VCC – 3.3V
7) LIGHT – การควบคุมแบ็คไลท์
8) GND – กราวด์
ดังที่แสดงไว้ด้านบน เชื่อมต่อ Arduino กับ LCD 5110 ตามลำดับด้านบนโดยมีตัวต้านทาน 1-10 K อยู่ระหว่างนั้น
ต่อไปนี้เป็นพินการเชื่อมต่อพินสำหรับ LCD 5110 กับ Arduino uno
- CLK - Arduino พินดิจิตอล 3
- DIN - Arduino พินดิจิตอล 4
- D/C - Arduino พินดิจิตอล 5
- RST - Arduino พินดิจิตอล 6
- CE - Arduino พินดิจิตอล 7
สามารถใช้พิน "BL" เพิ่มเติมของ LCD 5110 ร่วมกับโพเทนชิมิเตอร์ (0-100K) เพื่อควบคุมความสว่างของ LCD
ไลบรารี่ที่ใช้สำหรับโค้ดด้านบนคือ: - ดาวน์โหลด PCD8544 จากลิงค์ด้านล่างนี้
การรวม DHT11 เซ็นเซอร์อุณหภูมิและความชื้นกับ Arduino สามารถดูได้จากลิงค์ต่อไปนี้ DHT11
ขั้นตอนที่ 16: การประกอบขั้นสุดท้าย
ขั้นตอนสุดท้ายคือการประกอบทั้งหมดข้างต้นในกล่องโดยเฉพาะอย่างยิ่งสำหรับการจัดหาฉันได้ใช้ธนาคารพลังงาน 10000mah เพื่อจ่ายพลังงานให้กับทั้ง Arduino และ Nodemcu
นอกจากนี้เรายังสามารถใช้ที่ชาร์จแบบเสียบผนังได้เป็นเวลานานหากต้องการ
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-