สารบัญ:

หัวหน้างาน Eric Inspired LED Cube (ผู้คนแห่งโลก): 10 ขั้นตอน (พร้อมรูปภาพ)
หัวหน้างาน Eric Inspired LED Cube (ผู้คนแห่งโลก): 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: หัวหน้างาน Eric Inspired LED Cube (ผู้คนแห่งโลก): 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: หัวหน้างาน Eric Inspired LED Cube (ผู้คนแห่งโลก): 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: HANGING BALLOONS - JUNJI ITO 2024, กรกฎาคม
Anonim
หัวหน้างาน Eric Inspired LED Cube (ผู้คนแห่งโลก)
หัวหน้างาน Eric Inspired LED Cube (ผู้คนแห่งโลก)
หัวหน้างาน Eric Inspired LED Cube (ผู้คนแห่งโลก)
หัวหน้างาน Eric Inspired LED Cube (ผู้คนแห่งโลก)
หัวหน้างาน Eric Inspired LED Cube (ผู้คนแห่งโลก)
หัวหน้างาน Eric Inspired LED Cube (ผู้คนแห่งโลก)

ใครหรืออะไรคือหัวหน้างาน Eric - และทำไมคุณถึงสร้างสิ่งนี้

หัวหน้างาน Eric เป็น BOX หรือ Cube หรืออะไรก็ตามจากรายการ TBS "People of Earth"

ซึ่งเป็นรายการตลกเล็กๆ เกี่ยวกับคนที่ถูกเอเลี่ยนลักพาตัวไป ส่วนใหญ่เอเลี่ยนจะเป็นคนงี่เง่ามาก ฉันคิดว่าในช่วงต้นฤดูกาลที่สอง ลูกบาศก์บินที่ชื่อเอริครับช่วงต่อภารกิจของมนุษย์ต่างดาว เขาเป็นที่รู้จักในนามหัวหน้าเอริค ไม่ชัดเจนจริง ๆ ว่าเขาเป็นสิ่งมีชีวิตในลูกบาศก์ เป็น AI หรือมันคืออะไรกันแน่ เอริคมีวาระของตัวเองและแม้กระทั่งล้างสมองสมาชิกของกลุ่มสนับสนุนการลักพาตัว แต่นั่นเป็นอีกเรื่องหนึ่งทั้งหมด

ฉันเห็นเอริคแล้วคิดว่า มันดูเรียบร้อย - และมันจะง่ายมากที่จะสร้างมันขึ้นมา - ฉันก็เลยสร้างมันขึ้นมา

น่าเสียดายที่มีข้อมูลไม่มากนักเกี่ยวกับเขา - ดังนั้นฉันต้องไปกับสิ่งนี้ "Supervisor Eric" ที่ได้รับแรงบันดาลใจจากแฟน ๆ - ของฉันไม่ได้และจะไม่มีวันบิน (ฉันค่อนข้างแน่ใจว่านั่นเป็นเพียงเทคนิคพิเศษในการแสดงอยู่ดี.)

นอกจากนี้ ฉันไม่รู้จริงๆ ว่ามันใหญ่แค่ไหน ฉันเดาว่าน่าจะประมาณ 7" ลูกบาศก์ที่มีตาประมาณ 3" งานสร้างของฉันกลายเป็นลูกบาศก์ประมาณ 5 นิ้ว มีตาประมาณ 2 นิ้ว

ฉันใช้ WeMos D1 Mini สำหรับตัวควบคุม โดยมีไฟ LED WS2812 ทำให้ฉันสามารถเปลี่ยนสีดวงตาได้

ในการแสดง ฉันเคยเห็นดวงตาสีต่างๆ กันสามสี - สีฟ้าซึ่งดูเหมือนจะเป็นสีปกติของเขา สีแดงซึ่งปรากฏขึ้นเมื่อเขาทำอะไรบางอย่างหรือโกรธหรือโมโห และสีเขียวเมื่อเขากำลังสแกนอะไรบางอย่าง

สำหรับภาพสเก็ตช์ภาพหนึ่งที่ผมทำ - ฉันมีสีหน้าของเขา อีกภาพหนึ่งฉันกำลังใช้ MQTT และได้สีเชียร์ไลท์จากทวิตเตอร์ ฉันยังสร้างแอปเพล็ต IFTTT ที่ช่วยให้ฉันใช้ Google Home/Google Assistant เพื่อเปลี่ยนอารมณ์ได้โดยใช้ dweet.io ซึ่งจะมีข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ด้านล่าง

ขั้นตอนที่ 1: เครื่องมือและชิ้นส่วนที่จำเป็น…

เครื่องมือและชิ้นส่วนที่จำเป็น…
เครื่องมือและชิ้นส่วนที่จำเป็น…
เครื่องมือและชิ้นส่วนที่จำเป็น…
เครื่องมือและชิ้นส่วนที่จำเป็น…
เครื่องมือและชิ้นส่วนที่จำเป็น…
เครื่องมือและชิ้นส่วนที่จำเป็น…

ฮาร์ดแวร์สำหรับโครงการนี้ง่ายมาก - สำหรับอุปกรณ์อิเล็กทรอนิกส์ จำเป็นต้องมีทักษะการบัดกรีขั้นพื้นฐาน

1 ชุด 44 มม. แก้วเลนส์สะท้อนแสงและกรอบคงที่สำหรับเลนส์ LED 20W-100W ร้อน $2.60

WS2812B RGB Shield สำหรับ WeMos D1 Mini $1.75

WeMos D1 Mini ModeMCU 4M บอร์ดพัฒนา WiFi ESP8266 $3.40

เราต้องการลูกบาศก์ขนาด 5 นิ้ว (12.7 ซม.) - ความหนาประมาณ 1/8 นิ้ว (ประมาณ 3.175 มม.)

ตอนแรกฉันลองใช้กล่องกระดาษแข็งขนาด 7 นิ้ว แต่ลงเอยด้วยการตัดแผ่น MDF บางส่วนด้วยเลเซอร์ ไฟล์ dfx รวมอยู่ในที่เก็บ GitHub ของฉัน

ฉันยังใช้กระดาษทิชชู่เพื่อปิดเกราะ WS2812

เลือกซื้อของเล็กน้อยเหล่านี้อาจเป็นราคาที่ดีที่สุดหรือไม่ก็ได้ eBay, Aliexpress และแม้แต่ Amazon ก็มีราคาที่ดีที่สุด

สิ่งอื่น ๆ ที่คุณอาจต้องการ -

สีสเปรย์สีดำเรียบ กาวไม้ กระดาษทราย และตะไบขนาดเล็ก

คุณจะต้องใช้สกรูไม้ขนาดเล็กด้วย

เครื่องมือบางอย่างที่จำเป็น - หัวแร้ง ไขควงปากแบน ตะไบ คีมปากแหลม

การเข้าถึงเครื่องเจาะขนาดเล็ก (หรือสว่านขนาดเล็ก) เครื่องตัดเลเซอร์หรือเครื่องซีเอ็นซีจะทำให้โครงการนี้ง่ายขึ้นมาก

เพื่ออำนาจ

ความคิดดั้งเดิมของฉันคือการใช้ก้อนแบตเตอรี่ขนาดเล็ก - มันไม่พอดี ฉันจึงลงเอยด้วยการเจาะรูเล็กๆ ที่ด้านหลังและใช้ที่ชาร์จโทรศัพท์มือถือเครื่องเก่าเพื่อจ่ายไฟ

ชุดแบตเตอรี่ขนาดเล็ก (อาจใช้งานได้ 1,650) D1 mini เป็นตัวควบคุม 3 โวลต์ - ดังนั้นคุณต้องดูว่าคุณใช้พินใดในการจ่ายไฟ มีตัวควบคุมบนขั้วต่อ USB ดังนั้นจึงเป็นวิธีที่ง่ายที่สุดในการจ่ายไฟ

ขั้นตอนที่ 2: ขั้นตอนแรกในการสร้าง…

ขั้นตอนแรกในการสร้าง…
ขั้นตอนแรกในการสร้าง…
ขั้นตอนแรกในการสร้าง…
ขั้นตอนแรกในการสร้าง…
ขั้นตอนแรกในการสร้าง…
ขั้นตอนแรกในการสร้าง…
ขั้นตอนแรกในการสร้าง…
ขั้นตอนแรกในการสร้าง…

ฉันเชื่อว่าเลนส์นี้ใช้สำหรับรถยนต์ บางทีอาจเป็นระบบไฟในบ้านก็ได้ ฉันไม่แน่ใจ - มันไม่มีไฟ LED อยู่ในนั้น สิ่งแรกที่ฉันทำคือทำให้แน่ใจว่าชิลด์ WS2812 จะใช้งานได้ - ฉันใช้แถบยางเพื่อยึดชิ้นส่วนทั้งหมดเข้าด้วยกัน - ใช้งานได้ - แต่ก็ไม่ได้ยอดเยี่ยม ฉันสามารถเรียกใช้โค้ดทดสอบและสร้างเอฟเฟกต์ต่างๆ ได้

ต่อมา ฉันตัดสินใจเพิ่มกระจก - ฉันชอบมัน แต่สุดท้ายกระจกก็ยังไม่ใช่สิ่งที่ฉันต้องการ และยากที่จะทำให้กระจกเลื่อนไม่ได้

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

ส่วนใหญ่คือฉันเพิ่งมารู้ว่าความคิดดั้งเดิมของฉันที่ต้องการตัดบางอย่างนั้นถูกต้อง!

ขั้นตอนที่ 3: เลเซอร์ตัดลูกบาศก์และระบายสี

เลเซอร์ตัดลูกบาศก์และระบายสี!
เลเซอร์ตัดลูกบาศก์และระบายสี!
เลเซอร์ตัดลูกบาศก์และระบายสี!
เลเซอร์ตัดลูกบาศก์และระบายสี!
เลเซอร์ตัดลูกบาศก์และระบายสี!
เลเซอร์ตัดลูกบาศก์และระบายสี!

ขอบคุณเพื่อนๆ ที่ Rabbit Laser สหรัฐอเมริกา ฉันสามารถตัดลูกบาศก์ได้ สิ่งทั้งหมดใช้เวลาน้อยกว่า 5 นาทีในการทำ ฉันเชื่อว่าเราใช้เลเซอร์ 60 วัตต์ที่กำลังไฟ 60% และฉันเชื่อว่าเราลดความเร็วของเลเซอร์ลงเพื่อให้สามารถตัดขอบได้ดีขึ้นเล็กน้อย

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

สำหรับผม ไม่จำเป็นต้องใช้วิธีการทำความสะอาดขอบหยาบหรืออะไรทำนองนั้นมากนัก ฉันอาจจะมี / ควรจะขัดชิ้นส่วนเล็กน้อย - แต่ก็ไม่ได้

ฉันทำการฟิตติ้งคร่าวๆ เพื่อให้แน่ใจว่าชิ้นส่วนทั้งหมดจะพอดี และวางกระดาษแข็งชิ้นใหญ่ให้พวกเขา

ฉันนับจำนวนด้านในแล้วจึงนำลูกบาศก์กลับมารวมกันในภายหลัง - ความจริงก็คือ 4 ชิ้นเหมือนกันและ 2 ชิ้นต่างกัน (บนและล่าง) 4 ชิ้นที่เหมือนกันประกอบเป็นด้านข้าง - จาก 4 ชิ้นนี้ หนึ่งมีรู 2 นิ้วสำหรับเลนส์ ฉันเชื่อว่ามันง่ายกว่าที่จะประกอบเข้าด้วยกันหลังจากที่ฉันนับชิ้นส่วนแล้ว ซึ่งไม่จำเป็น 100%

ฉันพลิกชิ้นส่วนและทาสีดำเรียบกับพวกเขา

ฉันวาดภาพซ้ำอีกสามครั้ง แต่ละครั้งที่ฉันรอให้ขนแห้งก่อนที่จะแห้ง

ขั้นตอนที่ 4: กาวลูกบาศก์ด้วยกัน…

กาวลูกบาศก์ด้วยกัน…
กาวลูกบาศก์ด้วยกัน…
กาวลูกบาศก์ด้วยกัน…
กาวลูกบาศก์ด้วยกัน…
กาวลูกบาศก์ด้วยกัน…
กาวลูกบาศก์ด้วยกัน…
กาวลูกบาศก์ด้วยกัน…
กาวลูกบาศก์ด้วยกัน…

หลังจากปล่อยให้สีแห้งสองสามชั่วโมง - ฉันติดกาวด้านล่างและสามด้านเข้าด้วยกัน

ฉันไม่ได้ใช้ที่หนีบอะไรเลย - และแค่จับชิ้นส่วนด้วยมือจนกาวแห้งพอที่จะจับ - ใช้เวลาไม่นาน อาจจะ 5 หรือ 6 นาที ฉันคิดว่าควรใช้ที่หนีบ แต่ฉันไม่มีขนาดใหญ่พอสำหรับโครงการนี้ เป็นเรื่องดีที่รู้ว่าการถือครองนั้นได้ผล

ฉันพบว่ามันง่ายกว่าที่จะทากาวที่ตะเข็บด้านในของกล่องโดยใช้นิ้วกดกาวในตำแหน่งที่จำเป็น

ฉันวางส่วนเหล่านี้ไว้เพื่อให้กาวแห้ง…..

ขั้นตอนที่ 5: ใส่เลนส์และอุปกรณ์อิเล็กทรอนิกส์ลงในรู…

การใส่เลนส์และอุปกรณ์อิเล็กทรอนิกส์ลงในรู…
การใส่เลนส์และอุปกรณ์อิเล็กทรอนิกส์ลงในรู…
การใส่เลนส์และอุปกรณ์อิเล็กทรอนิกส์ลงในรู…
การใส่เลนส์และอุปกรณ์อิเล็กทรอนิกส์ลงในรู…
การใส่เลนส์และอุปกรณ์อิเล็กทรอนิกส์ลงในรู…
การใส่เลนส์และอุปกรณ์อิเล็กทรอนิกส์ลงในรู…

ขณะที่ฉันกำลังรอให้ลูกบาศก์ของฉันแห้งครึ่งหนึ่ง

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

ณ จุดนี้เองที่ฉันงอรูขนาดใหญ่ขึ้นสองสามรู - ฉันจะใช้สิ่งเหล่านี้เพื่อยึดอุปกรณ์อิเล็กทรอนิกส์ให้เข้าที่

ฉันไปข้างหน้าและวางกรอบเลนส์ให้เข้าที่ และขันมันลงด้วยสกรูขนาดเล็กมาก - จนถึงตอนนี้

ฉันพบสายรัดขนมปัง/ลวดสองสามเส้นแล้วนำไปใส่ในรูที่ฉันงอ ฉันใส่ LEN ไว้ในกรอบ และวางฝาครอบด้านหลังไว้บนเลนส์ ฉันวางกระดาษทิชชูชิ้นเล็ก ๆ (ที่พบในกล่องที่มีรองเท้าคู่ใหม่อยู่) บนปกหลัง - และวางกระดาน WS2812 ไว้ด้านบน ใช้ลวดผูกเพื่อยึดเข้าที่ จากนั้นฉันก็ใส่ D1 mini ลงใน WS2812

หลังจากนั้นไม่นานและเพื่อความสนุกสนานของฉัน WS2812 และกระดาษทิชชู่ก็ทำงานที่ปกหลัง - WS2812 มีขนาดเล็กเพียงเล็กน้อยสำหรับการเปิดบนปกหลัง จึงไม่แปลกใจเลย

สิ่งที่น่าประหลาดใจก็คือมันทำให้ "EYE" ดูดีขึ้นได้อย่างไรเมื่อใส่กระดาษทิชชู่อยู่ข้างใน ฉันมีความสุขมากกับความประหลาดใจนั้น

ฉันวางสิ่งนี้ไว้และรอให้ชิ้นอื่นๆ ของฉันแห้ง - ใช้เวลาไม่นาน อาจครึ่งชั่วโมง หรืออาจจะเป็นชั่วโมง

ขั้นตอนที่ 6: กาวในตา…

Image
Image
กาวเข้าตา…
กาวเข้าตา…
กาวเข้าตา…
กาวเข้าตา…

ฉันไม่ได้ถ่ายรูปส่วนนี้เลย --(แย่ฉัน)

อย่างไรก็ตาม หลังจากที่กาวแห้งเป็นส่วนใหญ่ ผมก็ใส่ด้านหน้า (ตา) เข้าที่ (โดยมีอุปกรณ์อิเล็กทรอนิกส์อยู่แล้ว)

เนื่องจากทุกด้านที่อยู่ในกล่องตอนนี้ มันจึงยากกว่าเล็กน้อยที่จะติดกาว แต่ก็ไม่ได้แย่ อีกครั้ง ฉันใช้นิ้วของฉันไปเอากาวตรงที่ฉันต้องการ แล้วเกลี่ยให้ทั่วข้อต่อ

ครั้งนี้ฉันต้องยึดมันให้เข้าที่นานขึ้น - ฉันไม่แน่ใจจริงๆ ว่าทำไม บางทีอาจมีเวลา 10 หรือ 15 นาทีที่กาวตั้งไว้มากพอที่จะวางกล่องลงและปล่อยให้มันแห้งสนิท

* คุณอาจจะถามเกี่ยวกับด้านบน

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

การออกแบบใหม่/ที่ดีขึ้นอาจเป็นแบบบานพับด้านบนหรือด้านที่เป็นบานพับ แต่ฉันพอใจกับรูปลักษณ์ของลูกบาศก์

ขั้นตอนที่ 7: D1 การเขียนโปรแกรมขนาดเล็ก

การเขียนโปรแกรมขนาดเล็ก D1
การเขียนโปรแกรมขนาดเล็ก D1
การเขียนโปรแกรมขนาดเล็ก D1
การเขียนโปรแกรมขนาดเล็ก D1
การเขียนโปรแกรมขนาดเล็ก D1
การเขียนโปรแกรมขนาดเล็ก D1
การเขียนโปรแกรมขนาดเล็ก D1
การเขียนโปรแกรมขนาดเล็ก D1

มีข้อกำหนดบางประการก่อนที่เราจะสามารถเริ่มโปรแกรม D1 Mini ได้

ไม่มีขั้นตอนใดยาก…แต่จำเป็นต้องทำ

ขั้นแรกเราต้องติดตั้งบอร์ด ESP8266 ลงใน Arduino Board Manager สำหรับสิ่งนี้ให้ทำตามคำแนะนำที่นี่:

หากคุณได้ติดตั้งบอร์ด ESP8266 แล้ว คุณสามารถข้ามขั้นตอนนี้ได้

ตอนนี้เราต้องติดตั้งไลบรารี Adafruit_Neopixel

วิธีที่ง่ายที่สุดในการทำเช่นนี้คือจากตัวจัดการไลบรารีใน Arduino 1.6.5 และ IDEs ที่ใหม่กว่า

เปิดตัวจัดการห้องสมุดและในบล็อกการค้นหาประเภท adafruit และ neopixel

อีกครั้งถ้าคุณมีพื้นที่ทำสิ่งนี้คุณสามารถข้ามไปได้

ข้างต้นเป็นเรื่องปกติสำหรับภาพร่างที่ฉันทำขึ้นสำหรับสิ่งนี้

ขึ้นอยู่กับว่าคุณต้องการใช้ "Eric" ของคุณอย่างไรหรืออย่างไรจะขึ้นอยู่กับสิ่งที่จำเป็นต้องติดตั้งในตอนนี้

(คุณควรติดตั้งไลบรารีทั้งสองนี้เพียงเพราะว่า แต่….)

หากคุณต้องการใช้เวอร์ชัน MQTT (เวอร์ชันนี้สมัครรับข้อมูลสตรีม MQTT ของเชียร์ไลท์) - มันจะเปลี่ยนสีของ LED WS2812 ตาม Cheerlight * Cheerlights เป็นโครงการ IoT ที่สร้างขึ้นโดย Hans Scharler ซึ่งช่วยให้ผู้คนทั่วโลกสามารถซิงโครไนซ์เป็นสีเดียวได้ด้วยการทวีต #cheerlights *

ฉันเคยใช้ Cheerlights ในหลายโปรเจ็กต์ของฉัน ต้องขอบคุณสตรีม MQTT ที่ทำให้โปรเจ็กต์ง่ายขึ้น

สำหรับเวอร์ชันนี้ คุณต้องมีไลบรารี PubSubClient

ฉันค่อนข้างแน่ใจว่าห้องสมุดนี้อยู่ในตัวจัดการห้องสมุดด้วย

ภาพสเก็ตช์อื่นๆ ของฉันใช้ IFTTT และ Dweet.io - ฉันขอให้ Google Home เปลี่ยน Moods หรือ Modes ของ Eric แตกต่างกันเล็กน้อย

ในการใช้ภาพสเก็ตช์ dweet คุณต้องมีห้องสมุด arduino-dweet.io - https://github.com/quentinpigne/arduino-dweet.io นี่เป็นห้องสมุดรุ่นเก่า (2015) และเกือบจะไม่อยู่ในตัวจัดการห้องสมุด ดังนั้นคุณต้องติดตั้งด้วยตนเอง มีสองวิธีในการทำเช่นนี้ - ฉันชอบ ดาวน์โหลดไฟล์ คลายซิปและเปลี่ยนชื่อ (ลบ -master) ลากโฟลเดอร์ไปยังโฟลเดอร์ไลบรารีของฉัน คุณอาจต้องรีสตาร์ท IDE ด้วยวิธีนี้

ฉันรู้ว่ามีขั้นตอนมากมาย และมีวิธีที่ง่ายกว่านั้น - จาก IDE คุณสามารถคลิกแท็บ Sketch ลงไปเพื่อรวมไลบรารี่ และคลิกที่ Add. ZIP library - ค้นหาไฟล์ที่คุณดาวน์โหลดมา และนั่นก็ควรจะเป็น

ฉันไม่รู้ว่าทำไมฉันไม่เคยชอบติดตั้งไลบรารี่แบบนั้นเลย แต่มันง่าย

ตอนนี้คุณมีไลบรารีที่จำเป็นแล้ว เราก็สามารถตั้งโปรแกรม D1 mini ของเราได้

ในที่สุดรหัสของฉันสามารถพบได้ที่นี่:

ขั้นตอนที่ 8: ภาพร่าง MQTT…

ภาพร่าง MQTT…
ภาพร่าง MQTT…
ภาพร่าง MQTT…
ภาพร่าง MQTT…
ภาพร่าง MQTT…
ภาพร่าง MQTT…

MQTT คืออะไร? MQTT ย่อมาจาก MQ Telemetry Transport เป็นโปรโตคอลการส่งข้อความแบบเผยแพร่/สมัครใช้งานที่ง่ายมากและน้ำหนักเบา ออกแบบมาสำหรับอุปกรณ์ที่มีข้อจำกัดและเครือข่ายแบนด์วิดธ์ต่ำ เวลาแฝงสูง หรือไม่น่าเชื่อถือ หลักการออกแบบคือการลดแบนด์วิดท์เครือข่ายและความต้องการทรัพยากรอุปกรณ์ในขณะที่พยายามทำให้มั่นใจถึงความน่าเชื่อถือและการรับประกันระดับหนึ่ง หลักการเหล่านี้ยังทำให้โปรโตคอลในอุดมคติของโลก "เครื่องต่อเครื่อง" (M2M) หรือ "อินเทอร์เน็ตของสิ่งต่างๆ" ที่เกิดขึ้นใหม่ของอุปกรณ์ที่เชื่อมต่อ และสำหรับแอปพลิเคชันมือถือที่มีแบนด์วิดท์และพลังงานแบตเตอรี่อยู่ในระดับสูง

mqtt.org/faq

กล่าวคือ อุปกรณ์ของฉันสมัครรับข้อมูลหรือฟังสิ่งที่อุปกรณ์อื่นเผยแพร่

โค้ดชิ้นเดียวที่สะดวกสำหรับ MQTT คือ

uint32_t chipid=ESP.getChipId(); ถ่านลูกค้า[25]; snprintf(ไคลเอนต์, 25, "EricBotAI-%08X", ชิปปิด);

สิ่งนี้ทำให้ชื่ออุปกรณ์เฉพาะสำหรับโบรกเกอร์ MQTT โดยจะใช้ส่วนหนึ่งของที่อยู่ MAC ของ ESP8266 เพื่อทำสิ่งนี้ ขณะนี้รับประกันได้ 100% ว่าจะไม่เหมือนใคร จนถึงขณะนี้ดูเหมือนว่าจะใช้ได้ผล

มิฉะนั้น โค้ดที่เหลือจะค่อนข้างตรงไปตรงมา เราฟังสีจากโบรกเกอร์ MQTT เราตรวจสอบเพื่อดูว่าเป็นสีที่ถูกต้องหรือไม่ เราตั้งค่านีโอพิกเซลเป็นสีนั้น และเริ่มกระบวนการใหม่อีกครั้ง

สำหรับสิ่งที่เรากำลังทำอยู่นั้นมีการใช้นายหน้าสาธารณะและไม่มีการรักษาความปลอดภัยประเภทใด - สิ่งนี้ใช้ได้สำหรับสิ่งที่เรากำลังทำอยู่ แต่อาจไม่ดีสำหรับบางโครงการ

มีภาพสเก็ตช์ MQTT สามแบบ และพวกเขาทั้งหมดทำในสิ่งเดียวกัน ความแตกต่างที่ใหญ่ที่สุดคือการแสดงสีจาก Cheerlights

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

หนึ่งแสดงเฉพาะสีทึบ - และเปลี่ยนแปลงเท่านั้น (หากสูญเสีย MQTT) หรือหากสีเปลี่ยนไป (ericbotai_neopixel_mqtt_solid_color)

สิ่งที่ฉันโปรดปรานจากทั้งสามตัวนี้น่าจะเป็น Breathe Effect ซึ่งใช้สีและทำให้มืดลงจนหมด และค่อยๆ เพิ่มความสว่างเต็มที่ เป็นเอฟเฟกต์ที่ดูเรียบร้อยซึ่งดูดีจริงๆ ภายในคิวบ์

(ericbotai_neopixel_mqtt_breathe_effect)

ทั้งสามเป็นภาพร่างเดียวกันโดยมีการเปลี่ยนแปลงเพียงเล็กน้อยสำหรับ "เอฟเฟกต์" แต่ละรายการ

ขั้นตอนที่ 9: หน้าแรกของ Google, IFTTT และ Dweet.io Sketches…

Image
Image
ความคิดสุดท้ายและรูปภาพเพิ่มเติมอีกเล็กน้อย!
ความคิดสุดท้ายและรูปภาพเพิ่มเติมอีกเล็กน้อย!

ก่อนอื่น เรามาเริ่มด้วยการบอกว่าภาพสเก็ตช์เหล่านี้ไม่เสถียรเท่าที่ฉันอยากให้เป็น

และแม้กระทั่งคุณได้รวมฟังก์ชันเวลาเฝ้าระวังและฟังก์ชันให้ผลแล้ว ฉันยังคงได้รับข้อผิดพลาด WDT แบบสุ่ม - ดูเหมือนว่าเมื่อพวกมันนั่งบนสีเดียวตลอดเวลา ฉันไม่ค่อยโชคดีนักกับการเพิ่มฟังก์ชัน WDT หรือลบฟังก์ชันที่มีอยู่

อย่างที่กล่าวไปแล้ว แนวคิดคือการทำให้ Eric โต้ตอบกันมากขึ้น - เมื่อใช้ Google Home/Google Assistant ของฉัน ฉันสามารถพูดว่า "Ok Google โหมด Eric Angry" และให้ไฟ LED เปลี่ยนจากอะไรก็ได้เป็นสีแดง

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

dweet.io/dweet/for/ericcube?mood={{TextFie…

ที่ที่ {{TextField}} จะเป็นอย่างที่ Google Home ได้ยิน

ดังนั้นหากใช้ตัวอย่างข้างต้น "โหมดโกรธ Ok Google Eric" - การโทรผ่านเว็บจะมีลักษณะดังนี้:

dweet.io/dweet/for/ericcube?mood=angry

เอาต์พุต API จะดูเหมือนสตริง JSON นี้:

ภาพร่าง Arduino - รับสตริง JSON ทั้งหมด - แต่ด้วยฟังก์ชันที่มีประโยชน์ที่เรียกว่า "ลบ" เราจึงสามารถลบขอทานส่วนใหญ่ได้ แล้วเอาส่วนท้ายออก…..อาจมีวิธีที่ดีกว่าในการลบส่วนท้าย เพราะสิ่งที่เกิดขึ้นคือฉันไม่ได้อ่าน man page ใกล้พอที่จะ "ลบ" และตอนนี้ทุกอย่างถูกตัดให้เหลือ 6 ตัวอักษร ดังนั้น ถ้าคุณพูดว่าโหมด "ปกติ" - มันจะกลายเป็น "ปกติ" - ไม่เป็นไร ไม่เป็นไร - ซอฟต์แวร์ดูแลมัน….แต่ก็ยังไม่ถูกต้อง:-)

ดังนั้นฉันสามารถพูดได้ว่า - "โหมดอีริคโกรธ" และสิ่งนี้จะเปลี่ยน LED เป็นสีแดง "โหมดมีความสุขของเอริค" หรือ "โหมดปกติของเอริค" และไฟ LED จะเป็นสีน้ำเงิน "โหมดสแกนเนอร์ของเอริค" และไฟ LED จะเปลี่ยนเป็นสีเขียวและเพียงแค่ เพื่อความสนุก (และเพราะในตอนหนึ่ง Eric ชาร์จและไฟ LED ของเขาดับ) "โหมดการชาร์จของ Eric" หรือ "โหมด Eric black" และไฟ LED ของเขาจะดับลง

และสุดท้ายเพื่อความสนุก เรามี "โหมดปาร์ตี้อีริค"

มีภาพสเก็ตช์สองภาพที่ใช้ Dweet.io ภาพร่างทั้งสองภาพค่อนข้างเหมือนกัน เพียงเอฟเฟกต์ LED แตกต่างกันเล็กน้อย

ฉันไม่ค่อยพอใจกับเอฟเฟกต์ LED อย่างใดอย่างหนึ่ง (ยกเว้นบางทีโหมดปาร์ตี้)

ericbotai_neopixel_pulse_effect_dweet ใช้โค้ดเดียวกันมากหรือน้อยจากภาพร่างเอฟเฟกต์การหายใจ - โดยมีการกำหนดเวลาต่างกันเล็กน้อย (ทั้งเนื่องจากการเปลี่ยนแปลงในสเก็ตช์และฟังก์ชัน WDT) - เอฟเฟกต์จะหายใจน้อยลงและมีเอฟเฟกต์ชีพจรมากขึ้น

ericbotai_neopixel_solid_color_dweet สวยมากอย่างที่บอก มันแสดงสี (ทึบ) - โหมดปาร์ตี้เป็นเอฟเฟกต์ดิสโก้

คุณสามารถเพิ่มหรือเปลี่ยนเอฟเฟกต์ได้ เพียงจำไว้ว่าการตอบกลับมีความยาวเพียง 6 ตัวอักษรเท่านั้น

ในภาพร่างทั้งสอง - บรรทัด 64 เป็นที่ที่คุณสามารถเปลี่ยนชื่อ "สิ่งของ" เพียงจำไว้ว่าให้เปลี่ยนการโทรเว็บเป็น "สิ่ง" เดียวกัน - หากเราทุกคนใช้ชื่อเดียวกันเราทุกคนสามารถเปลี่ยน "Eric" กันได้

ขั้นตอนที่ 10: ความคิดสุดท้ายและรูปภาพเพิ่มเติมอีกเล็กน้อย

ความคิดสุดท้ายและรูปภาพเพิ่มเติมอีกเล็กน้อย!
ความคิดสุดท้ายและรูปภาพเพิ่มเติมอีกเล็กน้อย!
ความคิดสุดท้ายและอีกสองสามภาพ!
ความคิดสุดท้ายและอีกสองสามภาพ!
ความคิดสุดท้ายและรูปภาพเพิ่มเติมอีกเล็กน้อย!
ความคิดสุดท้ายและรูปภาพเพิ่มเติมอีกเล็กน้อย!

นี่คือรูปภาพอีกสองสามภาพจากงานสร้างของฉันที่ดูเหมือนจะไม่พอดีกับที่ใด…..

สิ่งหนึ่งที่ฉันต้องการจะพูด - ฉันลงเอยด้วยการตัดรอยบากเล็กๆ ที่ด้านหลังลูกบาศก์ของฉัน และเรียกใช้ที่ชาร์จ/สายไฟในรอยบากนั้นเพื่อจ่ายไฟ - โดยรวมแล้วมันไม่ได้เบี่ยงเบนความสนใจจากลูกบาศก์ - แต่มี ฉันรู้ว่าฉันกำลังจะทำแบบนั้น ฉันอยากจะให้มันตัดด้วยเลเซอร์

กรอบของฉันแตกต่างออกไปเล็กน้อย - ขอบจอของฉันลงเอยกับกล่อง - ฉันไม่คิดว่ามันดูแย่แบบนี้ - และเป็นวิธีที่ดีที่จะพูด - ฉันได้รับแรงบันดาลใจแต่ไม่ใช่สำเนา "เอริค" โดยตรง

ฉันวางแผนที่จะเพิ่มเครื่องเล่น MP3 ด้วยคำพูดของ "Eric" บางอย่าง….ที่อาจไม่เกิดขึ้นอย่างรวดเร็วคุณ - ฉันไม่พบไฟล์บันทึกของ "Eric" เลย ดังนั้นฉันจะต้องทำด้วยตัวเอง

สุดท้าย ด้วยการใช้ MQTT หรือ Dweet ทำให้ระบบแจ้งเตือนบนเดสก์ท็อป (เช่น สีสำหรับทวีต หรือสีต่างๆ สำหรับสภาพอากาศในตอนเช้า เป็นต้น) ไม่ควรยากเกินไปที่จะนำรหัสฐานบางส่วนมาผสมกันเพื่อสร้างสิ่งดีๆ ทุกประเภท

และสุดท้ายจริงๆ - ฉันเห็นว่าอาจสร้างจอแสดงผลติดผนัง HAL 9000 โดยใช้เลนส์เดียวกันนี้และการเขียนโปรแกรมที่แตกต่างกันเล็กน้อย

แนะนำ: