Using Telegram Bot with Raspberry Pi

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

prakon
PHP Hero Member
PHP Hero Member
โพสต์: 159
ลงทะเบียนเมื่อ: 02/07/2018 10:45 am

Using Telegram Bot with Raspberry Pi

โพสต์โดย prakon » 04/07/2018 5:15 pm

ปัจจุบันมีแอพพลิเคชั่นที่ใช้ในการแจ้งเตือนและรับส่งข้อมูลระหว่างมือถือกับบอร์ด Raspberry pi(ราสเบอรี่ไพ) มากมาย
อาทิเช่น ไลน์ เฟสบุ๊ค และอื่นๆอีกมากมาย
line600x600_240x240.jpg
line600x600_240x240.jpg (3.89 KiB) เปิดดู 59 ครั้ง
logo-facebook_240x240.jpg
logo-facebook_240x240.jpg (4.61 KiB) เปิดดู 59 ครั้ง

แต่ก้มีอีก 1 แอพพลิเคชั่น ที่คล้ายๆไลน์และเฟสบุ๊คนั่นก้คือ Telegram(เท-เล-แกรม) ซึ่งเป็นอีกหนึ่งแอพทีมีความปลอดภัยมากกว่าไลน์กับเฟสบุ๊คและเชื่อมต่อกับบอร์ด raspberri pi(ราสเบอรี่ไพ)ได้ง่ายกว่ามากอักทั้งโค้ดต่างๆค่อนข้างเข้าใจง่ายไม่ซับซ้อน
telegram-logo.jpg
telegram-logo.jpg (9.1 KiB) เปิดดู 58 ครั้ง


ต่อมาเราจะมาดูขั้นตอนการใช้เลยนะครับ
step1 เราจะต้องโหลดแอพนี้มาติดตั้งบนสมาร์ทโฟนของเรา โดยสามารถโหลดได้ทั้งใน playstore,appstore หลังจากนั้นเข้าไปที่ BotFather(ถ้าไม่มีให้เสริชชื่อหาในช่องค้นหามุมขวาบน)
botfather_149x240.jpg
botfather_149x240.jpg (5.54 KiB) เปิดดู 55 ครั้ง


tele1.png
tele1.png (54.35 KiB) เปิดดู 55 ครั้ง

step2 เมื่อเราเข้ามาได้แล้วให้เรานั้นพิมพ์คำว่า /start และ /newbot เพื่อสร้างบอทของเราขึ้นมาและ ให้เราพิมพ์ชื่อบอทของเรา /(ชื่อบอท ) หลังจากนั้นให้เราพิมชื่อบอทเมื่อสักครู่นี้ใหม่แล้วตามด้วยคำว่า Bot หรือ _bot หลังจากนั้นเราจะได้ token(โทเค่น) สำหรับใช้ในการเขียนโค้ดในลำดับถัดไป
token_134x240.jpg
token_134x240.jpg (14.3 KiB) เปิดดู 55 ครั้ง

ตัวอย่าง

step3 หลังจากที่เราเตรียมความพร้อมบนสมาร์ทโฟนของเราแล้วหลังจากนั้นให้เรามาเตรียมความพร้อมของบอร์ด Raspberri pi ของเรา โดยการเปิดหน้าต่าง Terminal(เทอร์มินอล)ขึ้นมาแล้วพิมพ์ดังนี้
terminal_320x207.jpg
terminal_320x207.jpg (6.17 KiB) เปิดดู 53 ครั้ง

โค้ด: เลือกทั้งหมด

sudo apt-get install python-pip
sudo pip install telepot

เพียงเท่านี้ โมดูลของแอพ telegram ก็พร้อมสำหรับใช้งานแล้ว

step 3 เริ่มเขียนโค้ดกันเลย
อันนี้เป็นตัวอย่างการเขียนโค้ดครับ

โค้ด: เลือกทั้งหมด

import time, datetime   
import telepot                  #เรียกใช้โมดูล เทเลพอต(Telegram)
from telepot.loop import MessageLoop
now = datetime.datetime.now()
def action(msg):        #ฟังก์ชันนี้จะถูกเรียกใช้งานก็ต่อเมื่อผู้ใช้พิมพ์อะไรจากสมาร์ทโฟนส่งมาให้บอทที่สร้างขึ้น
    chat_id = msg['chat']['id']
    command = msg['text']

    print 'Received: %s' % command

    if command == '/hi':                      #ถ้าบอทได้รับค่าว่า /hi  ฟังก์ชั่นนี้จะทำงาน
        telegram_bot.sendMessage (chat_id, str("Hi! CircuitDigest"))
    elif command == '/time':                #ถ้าบอทได้รับค่าว่า /time  ฟังก์ชั่นนี้จะทำงาน
        telegram_bot.sendMessage(chat_id, str(now.hour)+str(":")+str(now.minute))
    elif command == '/logo':                  #ถ้าบอทได้รับค่าว่า /logo  ฟังก์ชั่นนี้จะทำงาน
        telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg") #เราสามารถเอา url รูปอื่นมาใส่ได้
    elif command == '/file':                   #ถ้าบอทได้รับค่าว่า /file  ฟังก์ชั่นนี้จะทำงาน
        telegram_bot.sendDocument(chat_id, document=open('/home/pi/Aisha.py')) #สามารถเปลี่ยนเส้นทางการส่งไฟล์ได้โดยใส่ที่อยู่ไฟล์ที่เราต้องการ
    elif command == '/audio':                #ถ้าบอทได้รับค่าว่า /audio  ฟังก์ชั่นนี้จะทำงาน
        telegram_bot.sendAudio(chat_id, audio=open('/home/pi/test.mp3'))   #สามารถเปลี่ยนเส้นทางการส่งไฟล์mp3ได้โดยใส่ที่อยู่ไฟล์ที่เราต้องการ
    elif command == '/getid':    #ฟังก์ชั่นสำหรับดูแชทไอดี
        telegram_bot.sendMessage (chat_id, str(chat_id))

telegram_bot = telepot.Bot('468382312:AAFhURMxpVlMWEdFzbIQLszBPFEUpAeOLFQ')  #ในวงเล็บนี้จะเป็นส่วนของtokenให้เรานำ token ของเรามาใส่ในวงเล็บ
print (telegram_bot.getMe())

MessageLoop(telegram_bot, action).run_as_thread()
print 'Up and Running....'

while 1:
    time.sleep(10)


step4
ถ้าหากเราอยากจะให้แอพส่งข้อมูลเองหรือแจ้งเตือนอัติโนมัติ ให้เรานั้นส่งคำว่า /getid มาให้บอทจะส่งแชทไอดีมาให้เราให้เรานำแชทไอดีนั้นไปใช้งาน เช่น

โค้ด: เลือกทั้งหมด

telegram_bot.sendMessage (ไอดีที่ได้มา, str("python lunched"))



te_278x240.jpg
te_278x240.jpg (21.66 KiB) เปิดดู 47 ครั้ง


อ้างอิง
circuitdigest
itune

  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 6 และ บุคคลทั่วไป 0 ท่าน