สถาปัตยกรรมนี้มีความเป็นไปได้และมีความยืดหยุ่นหรือไม่?


9

ฉันมีปัญหา แต่ทำให้แน่ใจว่าโครงการของฉันเป็นไปได้จริง ๆ

สิ่งที่ฉันต้องการเก็บถาวร: ควบคุมเครื่องชงกาแฟ Senseo ของฉันผ่านอินเทอร์เน็ต มันเดือดลงไปเพียงแค่ควบคุม 2 ปุ่ม

ทางออกแรกที่ง่าย:

  1. ตั้งค่าเซิร์ฟเวอร์ NodeJS บน Raspberry Pi ของฉัน
  2. ฉันเสียบ Raspberry GPIO ของฉันกับทรานซิสเตอร์ 2 ตัวเพื่อควบคุมปุ่มเครื่องชงกาแฟ
  3. ฉันสามารถควบคุม Raspberry GPIO ได้โดยตรงใน Javascript ตัวอย่างเช่นการเรียกhttp://myraspberrypi.com/makemeacoffeeเปิดใช้งาน GPIO เปิดใช้งานปุ่มและกระแสกาแฟ

แต่: ฉันไม่ต้องการเสียบ raspberry ของฉันกับเครื่องชงกาแฟของฉัน (ฉันต้องการ Pi สำหรับวัตถุประสงค์อื่น) และฉันคิดว่าการแยกเว็บเซิร์ฟเวอร์และตัวควบคุมนั้นเป็นความคิดที่ดี ถ้าพรุ่งนี้ฉันต้องการตรวจสอบอุณหภูมิของห้องน้ำของฉันหรือควบคุมเครื่องชงกาแฟเครื่องที่สอง (ใช้ ESP8266 อีกเครื่อง) ฉันต้องการที่จะทำมันโดยไม่ต้องคิดใหม่ทั้งหมด

สิ่งที่ฉันต้องเก็บถาวรนั่นคือ ESP8266 กับ NodeMCU เพื่อใช้เป็นคอนโทรลเลอร์ไร้หัว Wi-Fi (ดูลิงค์นี้ ) Raspberry GPIO ไม่ได้ใช้งานอีกต่อไป (นั่นคือประเด็น) มีเว็บเซิร์ฟเวอร์ NodeJS บน Pi เท่านั้น

นี่คือร่างย่อของสถาปัตยกรรม: สถาปัตยกรรมนี้เป็นไปได้หรือไม่

ให้ฉันอธิบายบทบาทขององค์ประกอบหลัก:

  • Raspberry Pi: โฮสต์เว็บเซิร์ฟเวอร์ NodeJS
  • เว็บเซิร์ฟเวอร์ NodeJS: แสดงหน้าเว็บแก่ผู้ใช้ปลายทาง โดยทั่วไปหน้าด้วยปุ่ม "Make me a coffee" เบื้องหลังเราต้อง "ดัน" ปุ่มความร้อนขึ้นน้ำรอ 30 วินาทีจากนั้น "กด" ปุ่มกาแฟ เว็บเซิร์ฟเวอร์ทำเช่นนั้นโดยส่งคำขอ HTTP ไปยัง ESP8266 (ผ่าน Wi-Fi) เซิร์ฟเวอร์ NodeJS ทำการบันทึกและวิเคราะห์ข้อมูลด้วย (คุณดื่มกาแฟปีนี้เท่าไหร่?)
  • ESP8266: ใช้ NodeMCU GPIO ของมันถูกต่อเข้ากับทรานซิสเตอร์ที่ควบคุมปุ่มเครื่องชงกาแฟ ฉันไม่สนใจวิธีการใช้พลังงานของ ESP8266 มันรันเว็บเซิร์ฟเวอร์เพื่อฟังคำขอ Raspberry Pi และดำเนินการกับ GPIO ตามนั้น

สถาปัตยกรรมนี้เป็นไปได้หรือไม่ สถาปัตยกรรมนี้มีความยืดหยุ่นหรือไม่?


แก้ไขเพื่อตอบ Sean Houlihane (สปอยเลอร์เพื่อให้โพสต์ค่อนข้างสั้น):

ฉันไม่แน่ใจ 100% เกี่ยวกับเรื่องนี้ แต่ทรานซิสเตอร์ดูเหมือนจะเพียงพอแล้ว สวิตช์เครื่องชงกาแฟทำงานบนแรงดันไฟฟ้าต่ำ (3,3V) และ ESP8266 จะไม่แบ่งปันพื้นดินกับเครื่องชงกาแฟ

เกี่ยวกับการตรวจจับอุณหภูมิและการควบคุมระดับน้ำเครื่องชงกาแฟ Senseo มีเครื่องในตัวนี้ การใช้งานทั่วไป: กดปุ่มกลางเพื่อเริ่มกระบวนการอุ่นเครื่องเลือกขนาดกาแฟของคุณโดยการกดปุ่ม "เดี่ยว" หรือ "คู่" เมื่อกระบวนการให้ความร้อนสิ้นสุดลงกาแฟจะเริ่มไหล หากมีน้ำไม่เพียงพอก็จะสิ้นสุดและ LED จะกระพริบ

ความคืบหน้าฉันคาดหวัง:

  • เวอร์ชัน 1.0 จะเป็น "เพียงเรียกใช้เครื่องชงกาแฟฉันแน่ใจว่าพร้อมแล้ว" ฉันควบคุมปุ่มถ้วยเดียวและปุ่มเพิ่มความร้อน
  • เวอร์ชั่น 2.0 จะเป็น "เรียกใช้เครื่องและให้ข้อเสนอแนะ" ฉันมีอีก ESP8266 เสียบกับข้อเสนอแนะ LED (เพื่อให้ฉันสามารถรู้เมื่อมันร้อนขึ้นและเมื่อมันออกจากน้ำ) และอีกหนึ่งในระดับเพื่อให้แน่ใจว่า มีถ้วยก่อนที่จะเรียกใช้เครื่องชงกาแฟ ฉันอาจเพิ่มการแจ้งเตือนเมื่อมีการเรียกใช้เครื่องชงกาแฟเพื่อแจ้งให้ผู้ใช้เปลี่ยนพ็อด

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


สวัสดีและยินดีต้อนรับสู่ Internet of Things! ในขณะที่ฉันไม่ได้พยายามโน้มน้าวให้คุณย้ายคำถามนี้ไป (ทั้งหมดนี้อยู่ที่นี่) ฉันขอเชิญคุณเข้าสู่raspberrypi.stackexchange.comสำหรับคำถามอื่น ๆ (หรือคำตอบที่คุณอาจต้องการ) เกี่ยวกับ Raspberry Pi :)
Ghanima

@Ghanima ฉันตระหนักถึงการมีอยู่ของเว็บไซต์นี้ฉันเพียงแค่ "เข้าร่วมชุมชน" ตอนนี้ขอบคุณ
Etsitpab Nioliv

2
HTTP? คุณควรจะใช้HTCPCP
JAB

คำตอบ:


5

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

อาจมีรายละเอียดที่สำคัญบางประการในการใช้งานซึ่งคุณยังไม่ได้พิจารณา ตัวอย่างเช่นสวิตช์ทรานซิสเตอร์ - อาจต้องเป็นมอสเฟตอาจเป็นรีเลย์ (หรือโซลิดสเตตรีเลย์) และอาจมีปัญหาเรื่องแรงดันไฟฟ้าและการแยก

สิ่งที่ต้องพิจารณาเพิ่มเติมการตรวจจับอุณหภูมิระดับน้ำ (ระมัดระวังเกี่ยวกับการปนเปื้อน) และคุณสมบัติอื่น ๆ การติดตามฝักแบบ RGB (สิ่งนี้ทำให้เป็นเครื่องใช้ครั้งเดียวหรือต้องการสัญญาณเตือนแบบไม่มีการเปลี่ยนหรือไม่?)


1
แก้ไขคำตอบของฉันเพื่อให้ข้อมูลเพิ่มเติมเกี่ยวกับเป้าหมายสุดท้ายและขั้นตอนในการเดินทาง
Etsitpab Nioliv
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.