ฉันจะใช้ Arduino และ node.js ได้อย่างไร


9

ฉันใหม่กับ Arduino แต่ฉันมีประสบการณ์ในการพัฒนาเว็บเมื่อเร็ว ๆ นี้ฉันได้ใช้ meta js และ stack เฉลี่ยสำหรับโครงการที่แตกต่างกัน อย่างไรก็ตามฉันเปิดให้ลองใช้ภาษาใดก็ได้เพื่อการพัฒนา

สิ่งที่ฉันพยายามทำคือสร้างแอปพลิเคชั่นที่เรียบง่ายเพื่อควบคุม LED บน Arduino ผ่านเว็บ

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

ฉันเคยได้ยินเรื่องนี้ด้วย แต่อยากจะอยู่ห่างจากงานสร้างของบุคคลที่สามให้มากที่สุดถ้าฉันทำได้ด้วยตัวเอง

วิธีทั่วไปในการทำเช่นนี้กับ Arduino หลังไฟร์วอลล์คืออะไร? ฉันจะทำสิ่งนี้กับ Arduino Yun ได้อย่างไร หยุนมันง่ายขึ้นไหม?

คำตอบ:


9

ฉันกำลังทำงานในโครงการที่คล้ายกันซึ่งใช้อินเทอร์เน็ตเพื่อสื่อสารกับอุปกรณ์ภายนอก (มือถือ) ฉันกำลังอ่านข้อมูลจากเซ็นเซอร์และส่งผ่านเว็บด้วยซ็อกเก็ตเว็บ ฉันใช้ Arduino Yun สำหรับโครงการนี้และ Spacebrew (สำหรับการสื่อสารซ็อกเก็ตเว็บ) มันเป็นวิธีการที่น่าสนใจมาก แต่ก็ค่อนข้างท้าทายในบางกรณี คุณอาจจะพบปัญหาแบบอะซิงโครนัส / ซิงโครนัสซึ่งในกรณีของฉันทำให้ฉันเรียกใช้สคริปต์ Python บน Yun ที่ถูกทริกเกอร์จากรหัสการประมวลผล ขณะนี้ฉันกำลังเรียกใช้เซิร์ฟเวอร์ Spacebrew บน VPN ของฉันดังนั้นฉันสามารถเชื่อมต่อหยุนของฉันออกจากบ้านและใช้ iphone ของฉันจากทุกที่เพื่อรับการอ่าน

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

Spacebrew

  • http://docs.spacebrew.cc/

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

  • http://github.com/Spacebrew/pySpacebrew

    repo นี้มี Spacebrew Library สำหรับ Python พร้อมด้วยเอกสารประกอบและตัวอย่างแอพ

  • http://github.com/julioterra/yunSpacebrew

    ไลบรารี Spacebrew Yun ประกอบด้วยสององค์ประกอบหลักคือชุดของสคริปต์ไพ ธ อนที่ทำงานบน linino และห้องสมุดที่ทำงานบนชิป atmel คุณพบว่ามีข้อมูลวิธีการติดตั้งทั้งสององค์ประกอบเหล่านี้เพื่อให้คุณสามารถเชื่อมต่อกับ Spacebrew ได้จากแบบร่าง Arduino

Temboo

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

  • http://www.temboo.com/arduino

    Temboo Library ช่วยให้คุณเชื่อมต่อกับแหล่งข้อมูลและบริการบนเว็บด้วยการประมวลผลได้ง่ายกว่า 100 รายการ ขณะนี้คุณสามารถค้นหาห้องสมุดสำหรับ Android, Arduino, iOS, Java, Node.js, PHP, การประมวลผล, Python, REST API, Ruby, Twyla

Node.js

คุณยังสามารถรัน node.js บนหยุนได้ด้วยตัวเองนี่เป็นบทความที่ดีและแพคเกจบางอย่างที่พร้อมติดตั้ง:

ห้องสมุดบริดจ์สำหรับ Arduino Yun คืออะไร

คุณยังถามเกี่ยวกับห้องสมุดบริดจ์ อย่างที่คุณทราบว่า Yun มีโปรเซสเซอร์สองตัวอยู่บนเครื่องตัวหนึ่งกำลังประมวลผลโค้ดของคุณส่วนอีกตัวหนึ่งมี Linux อยู่ (Linino) Bridge ช่วยให้การสื่อสารระหว่างพวกเขาง่ายขึ้นเพื่อให้พวกเขาสามารถ "พูดคุย" กับแต่ละคนได้ที่นี่:

  • http://arduino.cc/en/Reference/YunBridgeLibrary

    (นำมาจากเอกสาร arduino.cc :)

    Arduino Yúnมีโปรเซสเซอร์สองตัวบนเครื่อง หนึ่งคือ ATmega32U4 เหมือนใน Arduino Leonardo อีกอันคือ Atheros 9331 ซึ่งใช้ Linux และ OpenWRT Wireless stack ซึ่งทำให้บอร์ดสามารถเชื่อมต่อกับเครือข่าย WiFi และ Ethernet ได้ สามารถเรียกโปรแกรมหรือสคริปต์ที่กำหนดเองบนระบบ Linux ผ่าน Arduino เพื่อเชื่อมต่อกับบริการอินเทอร์เน็ตต่างๆ

    ไลบรารี Bridge ทำให้การสื่อสารระหว่าง ATmega32U4 และ AR9331 ง่ายขึ้น มันสืบทอดมาจากสตรีมและหลายวิธีควรคุ้นเคยจากซีเรียลและอนุพันธ์อื่น ๆ ของสตรีม

    คำสั่ง Bridge จาก 32U4 ถูกตีความโดย Python บน AR9331 บทบาทของมันคือการรันโปรแกรมบนฝั่ง GNU / Linux เมื่อถูกถามโดย Arduino ให้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันสำหรับการแชร์ข้อมูลเช่นการอ่านเซ็นเซอร์ระหว่าง Arduino และอินเทอร์เน็ตและรับคำสั่งจากอินเทอร์เน็ตและส่งผ่านโดยตรงไปยัง Arduino

    Bridge ช่วยให้การสื่อสารทั้งสองทิศทางทำหน้าที่เป็นส่วนต่อประสานกับบรรทัดคำสั่ง Linino

จะเริ่มที่ไหนดี

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


ยินดีต้อนรับสู่ Arduino Stack Exchange! คุณช่วยเพิ่มรายละเอียดในคำตอบของคุณได้ไหม? คำตอบที่ลิงก์ทั้งหมดหรือส่วนใหญ่ไม่สามารถยอมรับได้ในการแลกเปลี่ยนแบบสแต็กเพราะคำตอบนั้นไร้ประโยชน์หากไซต์หยุดทำงาน ลิงก์ไปยังไลบรารีนั้นใช้ได้เนื่องจากห้องสมุดไม่มีประโยชน์หากไซต์หยุดทำงาน บทความและแบบฝึกหัดควรถอดความ อาจแค่พูดประโยคสองสามประโยคและเพิ่มรหัสตัวอย่างบางส่วน? ขอบคุณ!
เพนกวินที่ไม่เปิดเผยตัว

1

ก่อนอื่นคุณต้องชัดเจนว่าคุณต้องทำอะไร Arduino UNO เป็นเพียงไมโครคอนโทรลเลอร์ที่มีการเชื่อมต่อแบบอนุกรม (ผ่าน USB) ในการทำให้อาร์ดิโนของคุณสามารถเข้าถึงได้จากอินเทอร์เน็ตนั้นจำเป็นต้องเชื่อมต่อกับอินเทอร์เน็ตหรือมีสิ่งที่ทำหน้าที่เหมือนสะพาน คุณสามารถใช้เกราะอีเธอร์เน็ต, wifi shiled หรือแม่มด YUN เป็น arduino UNO + ไมโครลินุกซ์ที่มีอีเธอร์เน็ตและ wifi (โปรแกรมใน phyton หรือชิปสามารถสั่งลินุกซ์ส่งคำสั่งเพื่อทุบตีเชลล์โดยใช้ห้องสมุดสะพานพิเศษ ) คุณสามารถเชื่อมต่อ arduin บนพีซีด้วย usb และสร้างโปรแกรมบริดจ์หรือหากไฟร์วอลล์ / เราเตอร์ของคุณเป็นลินุกซ์ที่ปลดล็อค / คล้ายกันคุณสามารถใช้งานได้

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

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


ฉันมียุนดังนั้นฉันจะใช้มัน ฉันได้ติดกับหยุนผ่าน wifi และ ssh ฉันจะติดตั้งเซิร์ฟเวอร์ linux ได้อย่างไรและฉันจะเปิดพอร์ตได้อย่างไร
Anders Kitson

ดูแบบฝึกหัดอย่างเป็นทางการมัน altready มีเซิร์ฟเวอร์ webv คุณเพียงแค่เพิ่มหน้าของคุณเอง :) scuola.arduino.cc/lesson/b4EoRkV/…
Lesto
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.