- วัสดุที่ต้องการ:
- แผนภูมิวงจรรวม:
- โปรแกรม Raspberry Python:
- การควบคุม LED ด้วย Raspberry Pi และ Telegram bot:
Telegram เป็นแอปพลิเคชั่นที่ดีที่สุดในการใช้งานร่วมกับ Raspberry Pi สำหรับวัตถุประสงค์ในการควบคุมมือถือทั้งหมดของเรา มีการสนับสนุนนักพัฒนาที่ดีมากและมีการวางแผนที่จะเปิดตัวฟีเจอร์มากมายในเร็ว ๆ นี้เพื่อปรับปรุงประสิทธิภาพของ Telegram Bots ในบทช่วยสอนก่อนหน้านี้เราได้เรียนรู้วิธีการตั้งค่าโทรเลขบอทสำหรับราสเบอร์รี่ pi และยังได้เรียนรู้ว่าจะต้องสนทนากับมันและแบ่งปันรูปภาพเอกสารและไฟล์เสียง
ตอนนี้เราจะดำเนินการต่อในขั้นตอนต่อไปโดยเรียนรู้วิธีที่เราสามารถควบคุมพิน GPIO บน Raspberry Pins โดยใช้ Telegramเพื่อให้เรารองรับฮาร์ดแวร์บางอย่างสำหรับบอทของเรา ในการกวดวิชานี้เราจะเชื่อมต่อสี่ไฟ LED เพื่อ Raspberry Pi หมุด GPIO และสลับพวกเขาโดยใช้ภาษาธรรมชาติ (พูดคุยชอบ) จากโทรเลข ฟังดูน่าสนใจใช่มั้ย? ให้เราเริ่มต้น
วัสดุที่ต้องการ:
- สี่ LED (สีใดก็ได้)
- Raspberry Pi (พร้อมการเชื่อมต่ออินเทอร์เน็ต)
- เขียงหั่นขนม
- การเชื่อมต่อสายไฟ
ข้อกำหนดเบื้องต้น:
ก่อนดำเนินการสอนตรวจสอบให้แน่ใจว่า Raspberry Pi ของคุณเชื่อมต่อกับอินเทอร์เน็ตและคุณสามารถเรียกใช้โปรแกรม python บน Pi ได้ อ่านบทช่วยสอนก่อนหน้านี้เพื่อทราบวิธีตั้งค่า Telegram bot ด้วย Raspberry Pi Pi เนื่องจากฉันจะถือว่าคุณคุ้นเคยกับสิ่งนั้นเพื่อดำเนินการกับโครงการ
หากคุณยังใหม่กับ Raspberry Pi ให้ทำตามบทความแนะนำ Raspberry Pi และบทแนะนำ Raspberry Pi อื่น ๆ
แผนภูมิวงจรรวม:
แผนภาพวงจรสำหรับควบคุม LED โดยใช้ Raspberry Pi และ Telegram Android Appไม่มีอะไรมากไปกว่า LED สี่ดวงและสายเชื่อมต่อบางส่วน เราไม่จำเป็นต้องใช้ตัวต้านทาน จำกัด กระแสเนื่องจากพิน Raspberry Pi GPIO ทำงานบน 3.3V TTL ทำตามวงจรด้านล่างและเชื่อมต่อ LED ของคุณ
ตารางต่อไปนี้จะช่วยคุณระบุหมายเลขพินและหมายเลข GPIO สำหรับการเชื่อมต่อไฟ LED สี่ดวง
ขั้ว LED |
หมายเลขพิน |
หมายเลข GPIO |
แอโนดสีเขียว |
พิน 31 |
GPIO 6 |
แอโนดสีแดง |
พิน 33 |
GPIO 13 |
แอโนดสีเหลือง |
พิน 35 |
GPIO 19 |
แอโนดสีขาว |
พิน 37 |
GPIO 26 |
แคโทดของทั้งสี่ |
ขา 39 |
พื้น |
ด้านล่างนี้เป็นแผนภาพวงจรที่ไฟ LED สี่ดวงเชื่อมต่อตามตารางที่ให้ไว้ด้านบน:
เมื่อการเชื่อมต่อของคุณการตั้งค่าฮาร์ดแวร์ของคุณควรมีลักษณะดังนี้ด้านล่าง
โปรแกรม Raspberry Python:
เมื่อฮาร์ดแวร์พร้อมแล้วเราสามารถดำเนินการกับโปรแกรม Python ได้ ในโปรแกรมนี้เราต้องอ่านข้อมูล (ข้อความ) ที่ส่งจาก Telegram bot และสลับ LED ตามนั้น เพื่อให้เป็นธรรมชาติมากขึ้นแทนที่จะตรวจสอบแต่ละประโยคและเข้ารหัสประโยคเหล่านั้นอย่างหนักในโปรแกรมของเราเราสามารถตรวจสอบคำและดำเนินการตามนั้นได้
ดังนั้นโปรแกรมจะตรวจสอบคำสองคำเป็นหลักคือเปิดและปิด เมื่อตรวจพบคำใดคำหนึ่งในสองคำนี้แล้วก็จะมองหาคำหลักอื่น ๆ เช่นขาวเหลืองเขียวและแดง LED สีตามลำดับจะถูกสลับก็ต่อเมื่อตรวจพบคำ นอกจากนี้เราจะอัปเดตสตริงสำหรับคำที่ตรวจพบเพื่อส่งข้อความกลับไปยังโทรเลขบอท
โปรแกรมที่สมบูรณ์สามารถพบได้ที่ด้านล่างของหน้านี้; ด้านล่างนี้ฉันได้อธิบายโปรแกรมโดยแบ่งเป็นเรือสำเภาขนาดเล็กที่มีความหมาย
สำหรับโปรแกรมนี้ในการทำงานเราจำเป็นต้อง telepot ดาวน์โหลดและนำเข้าในราสเบอร์รี่ Pi ของเรา ในบทช่วยสอนก่อนหน้านี้เราได้ดาวน์โหลดเทเลพอร์ตภายใน Raspberry Pi ของเราแล้วดังนั้นตอนนี้เราต้องนำเข้าในโปรแกรมของเราพร้อมกับไลบรารี GPIO ดังที่แสดงด้านล่าง
นำเข้า RPi.GPIO เป็น GPIO นำเข้าเทเลพอตจาก telepot.loop นำเข้า MessageLoop
เราจะควบคุมไฟ LED โดยใช้โปรแกรมนี้และสีของไฟ LED จะเป็นสีขาวสีเหลืองสีแดงและสีเขียว พวกเขาเชื่อมต่อกับหมุดที่แสดงในแผนภาพวงจร ให้เรากำหนดชื่อพินสำหรับ LED เหล่านี้ตามสีของพวกมันเพื่อที่จะใช้ในโปรแกรม
ขาว = 26 เหลือง = 19 แดง = 13 เขียว = 6
ขั้นตอนต่อไปคือการกำหนดพิน LED ทั้งหมดเหล่านี้เป็นพินเอาต์พุตและกำหนดให้ปิดโดยค่าเริ่มต้นโดยใช้บรรทัดด้านล่าง
#LED White GPIO.setup (สีขาว, GPIO.OUT) GPIO.output (สีขาว, 0) # ปิดเริ่มต้น #LED Yellow GPIO.setup (สีเหลือง, GPIO.OUT) GPIO.output (สีเหลือง, 0) # ปิดเริ่มต้น #LED Red GPIO.setup (สีแดง, GPIO.OUT) GPIO.output (สีแดง, 0) #Off เริ่มต้น #LED สีเขียว GPIO.setup (สีเขียว, GPIO.OUT) GPIO.output (สีเขียว, 0) # ปิดในตอนแรก
ดังที่เราได้เรียนรู้ในบทช่วยสอนก่อนหน้านี้การกระทำทั้งหมดที่ต้องทำโดยบอต Raspberry จะถูกกำหนดไว้ในการทำงานของฟังก์ชัน ที่นี่เราต้องทำให้บอทฟังข้อความที่ส่งจากมือถือเปรียบเทียบกับคำหลักบางคำและสลับ LED ตามลำดับ
สำหรับข้อความที่เราส่งจากมือถือของแต่ละคนจะมีรหัสสนทนาและคำสั่งโปรแกรมต้องการรหัสแชทนี้เพื่อตอบกลับผู้ส่ง ดังนั้นเราจึงบันทึกรหัสแชทและข้อความดังที่แสดงด้านล่าง
chat_id = คำสั่ง msg = msg
ตอนนี้สิ่งที่เราส่งจากโทรศัพท์จะถูกบันทึกไว้เป็นสตริงในตัวแปรคำสั่ง ดังนั้นสิ่งที่เราต้องทำคือตรวจสอบคำสำคัญในตัวแปรนี้ Python มีคำสั่งที่ทำให้สิ่งต่างๆเป็นเรื่องง่ายที่นี่ ตัวอย่างเช่นหากเราต้องตรวจสอบว่ามีคำว่า“ on” อยู่ในสตริงที่เก็บไว้ในตัวแปร คำสั่งหรือไม่ เราก็สามารถใช้บรรทัดด้านล่างได้
ถ้า 'on' ในคำสั่ง:
ในทำนองเดียวกันเราตรวจสอบคำหลักทั้งหมดเมื่อเราได้รับ "เปิด" เราจะดำเนินการตรวจสอบว่าผู้ใช้พูดถึงสีใด นอกจากนี้ยังทำได้โดยคำสั่งเดียวกันโดยการเปรียบเทียบคำหลักเดียวกัน นอกจากนี้เรายังอัปเดต ข้อความ ชื่อสตริงที่สามารถตอบกลับไปยังผู้ใช้เป็นข้อความแสดงสถานะ
if 'on' ในคำสั่ง: message = "เปิด" ถ้า 'white' ในคำสั่ง: message = message + "white" GPIO.output (สีขาว, 1) ถ้าคำสั่ง 'yellow': message = message + "yellow" GPIO.output (สีเหลือง, 1) ถ้า 'red' ในคำสั่ง: message = message + "red" GPIO.output (red, 1) if 'green' ในคำสั่ง: message = message + "green" GPIO.output (สีเขียว, 1) if 'all' ในคำสั่ง: message = message + "all" GPIO.output (สีขาว, 1) GPIO.output (สีเหลือง, 1) GPIO.output (สีแดง, 1) GPIO.output (สีเขียว, 1) message = ข้อความ + "light (s)" telegram_bot.sendMessage (chat_id, ข้อความ)
ดังที่แสดงไว้ด้านบนเรามองหาคำหลักเช่น 'เขียว' 'ขาว' 'แดง' 'เหลือง' และ 'ทั้งหมด' และ 'เปิดแล้ว' LED เฉพาะนั้น เมื่องานเสร็จแล้วเราจะส่งข้อความกลับไปยังผู้ใช้เกี่ยวกับสิ่งที่เกิดขึ้นวิธีการเดียวกันสามารถใช้ในการปิดไฟปิดดี
if 'off' ในคำสั่ง: message = "ปิด" ถ้า 'white' ในคำสั่ง: message = message + "white" GPIO.output (สีขาว, 0) ถ้าคำสั่ง 'yellow': message = message + "yellow" GPIO.output (สีเหลือง, 0) ถ้า 'red' ในคำสั่ง: message = message + "red" GPIO.output (สีแดง, 0) ถ้าคำสั่ง 'green': message = message + "green" GPIO.output (สีเขียว, 0) ถ้า 'ทั้งหมด' ในคำสั่ง: message = ข้อความ + "ทั้งหมด" GPIO.output (สีขาว, 0) GPIO.output (สีเหลือง, 0) GPIO.output (สีแดง, 0) GPIO.output (สีเขียว, 0) ข้อความ = ข้อความ + "light (s)" telegram_bot.sendMessage (chat_id, ข้อความ)
การควบคุม LED ด้วย Raspberry Pi และ Telegram bot:
เชื่อมต่อ LED ของคุณและเปิดโปรแกรมของคุณบน python ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนที่อยู่โทเค็นสำหรับบอทของคุณ และเริ่มพิมพ์คำสั่งที่คุณต้องการ ตัวอย่างเช่นในการเปิดไฟสีแดงและสีเหลืองคุณสามารถใช้คำสั่งใด ๆ ต่อไปนี้
1. เปิดไฟสีแดงและสีเหลือง
2. เปิดสีแดงและสีเหลืองให้ถูกต้อง
3. บนสีแดงและสีเหลือง
4.Please ใส่ในสีเหลืองและสีแดงแสง
ดังที่คุณเห็นว่าบอทมองหาคีย์เวิร์ดเท่านั้นและจะไม่สนใจคำอื่น ๆ ในประโยคด้วยวิธีนี้คุณสามารถพูดกับมันได้อย่างเป็นธรรมชาติ สามารถดูการทำงานทั้งหมดของโครงการได้ที่วิดีโอที่ให้ไว้ในตอนท้ายของหน้านี้
ลุย! เล่นกับโครงการของคุณและมีความสุข คุณสามารถก้าวไปสู่ระดับใหม่ได้แล้ว ด้วยการสอนทั้งสองอย่างรวมกันทำให้เรามีอำนาจในการควบคุมฮาร์ดแวร์ใด ๆ จากสมาร์ทโฟนของเราได้ทุกที่จากโลกและยังได้รับอินพุต / ผลลัพธ์จาก Raspberry Pi ของเราในรูปแบบข้อความเสียงรูปภาพและแม้กระทั่งเป็นเอกสาร หากคุณเปลี่ยน LED ด้วยรีเลย์และเครื่องใช้ไฟฟ้ากระแสสลับอาจเป็นระบบอัตโนมัติภายในบ้านที่ควบคุมด้วยสมาร์ทโฟน ดังนั้นใช้ความคิดสร้างสรรค์ของคุณและสร้างโครงการที่ยอดเยี่ยมของคุณเอง…
หวังว่าคุณจะชอบโครงการนี้และสนุกกับการสร้างสิ่งที่คล้ายกัน แจ้งให้เราทราบหากคุณมีปัญหาใด ๆ ในส่วนความคิดเห็นเรายินดีที่จะช่วยเหลือคุณ แชร์ไอเดียเจ๋ง ๆ ของคุณกับฉันและให้เราดูว่าเราสามารถสร้างอะไรได้บ้าง