สารบัญ:

[IoT] Telegram Bot พร้อม Arduino MKR WiFi 1010: 5 ขั้นตอน
[IoT] Telegram Bot พร้อม Arduino MKR WiFi 1010: 5 ขั้นตอน

วีดีโอ: [IoT] Telegram Bot พร้อม Arduino MKR WiFi 1010: 5 ขั้นตอน

วีดีโอ: [IoT] Telegram Bot พร้อม Arduino MKR WiFi 1010: 5 ขั้นตอน
วีดีโอ: Projek IoT - Tutorial Program ESP32 Dengan DHT11 Monitoring Temperatur & Humidity Telegram Bot 2024, กรกฎาคม
Anonim
Image
Image
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ

โปรเจ็กต์นี้สาธิตวิธีเชื่อมต่อ Arduino กับ Telegram Bot APIs โปรเจ็กต์นี้สร้างขึ้นจากบอร์ด MKR WiFi 1010 ใหม่ที่ติดตั้งโมดูล ESP32 โดย U-BLOX

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

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

ในกรณีของเรา เราจะส่งคำสั่งไปยัง Arduino เพื่อสร้างอุปกรณ์ IoT อย่างง่าย มันจะตอบคำสั่งง่ายๆ และเปิด/ปิดไฟ LED ในตัวด้วย ฉันจะปล่อยให้จินตนาการของคุณทำอะไรกับมันมากขึ้น… (ลองจินตนาการว่าต้องเชื่อมต่อรีเลย์อย่างน้อยหนึ่งตัวเข้ากับพิน I/O และเปิด/ปิดเครื่องทำความร้อนหรือระบบปรับอากาศด้วยสมาร์ทโฟนของคุณ เป็นต้น)

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ

สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ

สำหรับโครงการนี้คุณต้องการ:

  • Arduino MKR WiFi 1010 จากร้าน Arduino:https://store.arduino.cc/arduino-mkr-wifi-1010
  • Arduino IDE 1.8.5 หรือสูงกว่า:https://www.arduino.cc/en/Main/Software
  • สาย micro-usb เพื่อเชื่อมต่อ Arduino กับพีซีของคุณ
  • การเชื่อมต่ออินเทอร์เน็ตต้องใช้ SSID และรหัสผ่าน ดีกว่าถ้าคุณใช้เราเตอร์ที่บ้านของคุณเองเพื่อให้แน่ใจว่าไม่ได้ถูกบล็อก
  • แอพ Telegram ที่ติดตั้งบนสมาร์ทโฟนของคุณไม่ว่าจะเป็นยี่ห้อใดก็ตาม ตรวจสอบที่นี่สำหรับเวอร์ชั่น PC และเว็บด้วย!

ขั้นตอนที่ 2: ติดตั้ง IDE

การติดตั้ง IDE
การติดตั้ง IDE
การติดตั้ง IDE
การติดตั้ง IDE
การติดตั้ง IDE
การติดตั้ง IDE

ใช่ ฉันรู้ ฉันรู้… พวกคุณส่วนใหญ่มี Arduino IDE ติดตั้งอยู่ในพีซีแล้ว แต่ Instructables นี้มีไว้สำหรับผู้เริ่มต้นเช่นกัน ดังนั้น ก่อนอื่น ดาวน์โหลด Arduino IDE 1.8.5 ที่คุณเลือก (ไฟล์ zip สำหรับ 'ไม่ใช่ผู้ดูแลระบบ' หรือไฟล์ exe)

แนะนำให้ใช้เวอร์ชัน 1.8.5 ฉันไม่ได้ทดสอบเวอร์ชันเก่าและบอร์ดใหม่ที่ใช้ในโปรเจ็กต์ไม่รองรับเลย

ตอนนี้คุณต้องติดตั้งบอร์ดใหม่พร้อมไดรเวอร์:

  1. เริ่ม IDE
  2. จากเมนูเครื่องมือ ให้เลือกบอร์ด จากนั้น ที่ด้านบนสุดของรายการโปรเซสเซอร์ ให้เลือกตัวจัดการบอร์ด
  3. เลื่อนหน้าต่างใหม่ (ดูภาพ) จนกว่าคุณจะพบบอร์ด Arduino SAMD ที่มี MKR WiFi 1010 ใหม่
  4. คลิกที่แท็บนั้นหรือคลิกที่ข้อมูลเพิ่มเติมภายในแท็บ เลือกเวอร์ชันล่าสุดและติดตั้ง
  5. รอให้การติดตั้งเสร็จสิ้น จะดูแลการติดตั้งไดรเวอร์ด้วย
  6. คุณต้องมีไลบรารี WiFi ใหม่สำหรับบอร์ดนี้: เลือก Sketch, Include Library และ Manage Libraries ค้นหา Wifinina และติดตั้งเช่นเดียวกับที่คุณทำกับโปรเซสเซอร์ด้านบน

ตอนนี้เชื่อมต่อบอร์ด Arduino ใหม่และรอให้ Windows ทำการติดตั้งไดรเวอร์ให้เสร็จ

จากเมนูเครื่องมือ -> บอร์ด คุณจะพบบอร์ดใหม่ ให้เลือก MKR WiFi 1010

ไลบรารีพิเศษอื่นที่จำเป็นสำหรับโครงการนี้คือห้องสมุด ESP8266TelegramBot โดย Giancarlo Bacchio ห้องสมุดได้รับการแก้ไขเล็กน้อยเพื่อให้ทำงานกับบอร์ดนี้จึงรวมอยู่ในโฟลเดอร์ของสเก็ตช์

เลือกพอร์ต com ที่ถูกต้องและทดสอบบอร์ดด้วยคำสั่ง Get Board Info

ยินดีด้วย คุณทำ IDE เสร็จแล้ว!

ขั้นตอนที่ 3: การสร้าง Telegram Bot

การสร้างโทรเลข Bot
การสร้างโทรเลข Bot
การสร้างโทรเลข Bot
การสร้างโทรเลข Bot
การสร้างโทรเลข Bot
การสร้างโทรเลข Bot

การสร้าง Telegram Bot ใหม่นั้นค่อนข้างง่าย

เปิดแอป Telegram และในแถบค้นหา ให้พิมพ์ @BotFather และเริ่มแชทกับเขา (ภาพที่1) BotFather คือ… โรงงาน Bot มันจะช่วยคุณสร้างบอทใหม่และเปลี่ยนการตั้งค่า

หลังจากคำสั่ง /start คุณจะเห็นรายการความช่วยเหลือ (ภาพที่2)

  • พิมพ์ /newbot (image3) ตอนนี้พิมพ์ชื่อบอทของคุณ ชื่อจะปรากฏในรายละเอียดการติดต่อและที่อื่นๆ
  • BotFather จะขอชื่อผู้ใช้จากคุณ ชื่อผู้ใช้เป็นชื่อย่อ เพื่อใช้ในลิงก์ที่กล่าวถึงและลิงก์โทรเลข ชื่อผู้ใช้มีความยาว 5-32 อักขระและไม่คำนึงถึงขนาดตัวพิมพ์ แต่อาจมีได้เฉพาะอักขระละติน ตัวเลข และขีดล่างเท่านั้น ชื่อผู้ใช้ของบอทต้องลงท้ายด้วย "บอท" เช่น 'tetris_bot' หรือ 'TetrisBot'
  • หากทั้งชื่อและชื่อผู้ใช้ถูกต้อง คุณจะได้รับชุดอักขระยาวที่เรียกว่า TOKEN นี่คือ 'คีย์' ส่วนตัวของคุณที่ใช้ในการสื่อสารกับเซิร์ฟเวอร์ Telegram ให้คัดลอกและวางลงในไฟล์ข้อความบนพีซีของคุณในตอนนี้ เราจะนำไปใช้ในโค้ด Arduino ในภายหลัง หากคุณทำหาย ไม่ต้องกังวล เพียงเปิดแชทอีกครั้งแล้วพิมพ์ /token เพื่อสร้างใหม่

ขั้นตอนทั้งหมดอธิบายไว้ที่นี่:https://core.telegram.org/bots#6-botfather

ขั้นสูง (ไม่บังคับ)

เปิดแชทอีกครั้งแล้วพิมพ์ /help

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

คลิก (หรือพิมพ์) /setdescription เพื่อตั้งค่าส่วนคำอธิบายสำหรับบอทของคุณ ผู้คนจะเห็นคำอธิบายนี้เมื่อเปิดแชทกับบอทของคุณในบล็อกที่ชื่อ 'บอทนี้ทำอะไรได้บ้าง'

ขั้นตอนที่ 4: แก้ไข อัปโหลด และทดสอบ Sketch

แก้ไข อัปโหลด และทดสอบ Sketch
แก้ไข อัปโหลด และทดสอบ Sketch
แก้ไข อัปโหลด และทดสอบ Sketch
แก้ไข อัปโหลด และทดสอบ Sketch
แก้ไข อัปโหลด และทดสอบ Sketch
แก้ไข อัปโหลด และทดสอบ Sketch

ได้เวลาอัปโหลดซอฟต์แวร์ไปยังบอร์ด Arduino MKR WiFi 1010

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

แก้ไข

เปิดภาพร่าง เราต้องกรอกข้อมูลบางส่วน (ภาพที่1):กรอก arduino_secrets.h ด้วยข้อมูลรับรอง wifi และโทรเลขของคุณ

  • ค้นหาข้อมูลเครือข่าย WiFi และพิมพ์ชื่อเครือข่าย (SSID) และรหัสผ่านของคุณ
  • ค้นหาข้อมูลบอทโทรเลขและพิมพ์ชื่อ ชื่อผู้ใช้ และโทเค็นที่ @BotFather. จัดเตรียมให้

ที่อัพโหลด

ตรวจสอบให้แน่ใจว่าบอร์ดถูกต้อง (ภาพที่2) ใน ide และเชื่อมต่อแล้วลองคอมไพล์โค้ด หากการรวบรวมเป็นไปด้วยดี ให้อัปโหลดไปยังบอร์ด ใช้เวลาเพียงไม่กี่วินาที

ในกรณีที่มีปัญหา ให้ตรวจสอบการพิมพ์ผิดและลองอีกครั้ง

ทดสอบ

[สำคัญ!] ร่างส่งบันทึกไปยัง IDE โปรเซสเซอร์มีพอร์ต USB ดั้งเดิม (เช่น บอร์ด Leonardo) เมื่อเปิดเครื่องแล้ว รหัสจะรอจนกว่ามอนิเตอร์ซีเรียลจะทำงาน ปล่อยให้มันเชื่อมต่อกับพีซีและเปิดจอภาพแบบอนุกรม Arduino จะเชื่อมต่ออินเทอร์เน็ตก่อน จากนั้นจึงเริ่มสำรวจเซิร์ฟเวอร์ Telegram เพื่อหาข้อความใหม่ (ภาพที่ 3)

ตอนนี้เปิด Telegram บนอุปกรณ์ที่คุณต้องการและในช่องค้นหา ให้พิมพ์ชื่อบอทของคุณ (ไม่ใช่ชื่อผู้ใช้ที่ลงท้ายด้วย 'bot') เปิดแชทกับมัน

คำสั่งแรกในการเริ่มแชทกับบอทคือ /start Arduino ของเราจะตอบด้วยข้อความต้อนรับ ตอนนี้พิมพ์ help (โดยไม่ใส่เครื่องหมายทับ) มันจะตอบด้วยรายการคำสั่งที่รองรับ คุณสามารถลองใช้งานได้ทั้งหมด (ภาพที่ 4)

คุณทำแบบทดสอบเสร็จแล้ว หากมีบางอย่างไม่ทำงาน ให้ตรวจสอบข้อมูลที่ป้อนในแบบร่าง (ชื่อ ชื่อผู้ใช้ โทเค็น…)

ใบรับรองหากคุณพบข้อผิดพลาดในการเชื่อมต่อกับเซิร์ฟเวอร์โทรเลข (บันทึก: ไม่ได้เชื่อมต่อบอท):

  • เปิดเครื่องมือ->Wifi101/wifinina updater
  • ตรวจสอบให้แน่ใจว่าบอร์ดของคุณเชื่อมต่อแล้ว ตรวจสอบพอร์ตทางด้านซ้ายของเครื่องมืออัพเดต บอร์ดจะต้องอยู่ที่นั่น
  • คลิก Open updater sketch และอัปโหลดไปยังบอร์ด
  • หลังจากอัปโหลดแล้ว ในตัวอัปเดตให้เลือกเฟิร์มแวร์ล่าสุดสำหรับบอร์ดของคุณ แล้วคลิกอัปเดตเฟิร์มแวร์
  • หลังจากอัปเดต ในส่วน ใบรับรอง SSL ในตัวอัปเดต ให้คลิก เพิ่มโดเมน ในกล่องโต้ตอบให้เขียน telegram.org:443 จากนั้นกด ตกลง
  • คลิกอัปโหลดใบรับรองไปยังโมดูล wifi
  • อัปโหลดภาพร่างนี้ไปที่บอร์ด

ขั้นตอนที่ 5: ปรับปรุง

การปรับปรุง
การปรับปรุง

เมื่อดูโค้ดแล้ว การใช้งานคำสั่งใหม่และตอบกลับผู้ใช้ทำได้ง่ายมาก

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

จำกัดผู้ใช้:แน่นอนว่าโครงการนี้เป็นเพียงตัวอย่างเท่านั้น ผู้ใช้ Telegram ทุกคนสามารถเชื่อมต่อกับบ้านของคุณและส่งคำสั่งที่ไม่ต้องการได้ คุณไม่ต้องการสิ่งนี้!.

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

ฮาร์ดแวร์: ด้านฮาร์ดแวร์ เซ็นเซอร์และรีเลย์จำนวนมากสามารถเชื่อมต่อกับพิน I/O ของ Arduino

ระวัง บอร์ดที่ใช้ในโปรเจ็กต์นี้ทน 3.3V !!! ใช้ตัวปรับระดับแรงดันไฟฟ้าเมื่อจำเป็น! สำหรับข้อมูลเพิ่มเติมและเคล็ดลับเกี่ยวกับบอร์ดนี้ โปรดอ่านที่นี่:https://www.arduino.cc/en/Guide/MKRWiFi1010

นั่นคือทั้งหมดที่ สนุก!

แนะนำ: