Raspberry Pi luôn thú vị và dễ dàng để xây dựng các dự án. Kiến trúc ARM mạnh mẽ và Hệ điều hành dựa trên Linux nguồn mở đã giúp chúng tôi rất nhiều trong việc đưa các dự án của mình lên mạng nhanh chóng. Trong hướng dẫn này, chúng ta sẽ tìm hiểu một cách thú vị khác để chia sẻ dữ liệu (tệp / ảnh / video / âm thanh / văn bản) giữa Raspberry Pi và điện thoại di động của chúng tôi thông qua một ứng dụng trò chuyện phổ biến có tên là Telegram.
Đối với những người mới sử dụng Telegram, đây là một ứng dụng dựa trên trò chuyện có sẵn trong cửa hàng Play dành cho Android (cũng có sẵn cho Iphone và windows) rất giống với Whatsapp. Nó có hơn 100 triệu lượt tải xuống (tính đến ngày 5-10-2017) trên cửa hàng Play và mọi người cho rằng nó nhanh hơn và nhiều chức năng hơn Whatsapp (ngón tay chéo). Một tính năng đặc biệt của ứng dụng này là chúng hỗ trợ bot. Có nghĩa là ứng dụng điện thoại thông minh này không chỉ có thể được sử dụng bởi Con người mà cả máy móc. Trong trường hợp của chúng tôi, máy sẽ là Raspberry Pi. Sau khi bạn đào tạo Raspberry Pi về cách hoạt động như một bot, bất kỳ ai (nếu bạn đặt nó ở chế độ công khai) đều có thể trò chuyện với Raspberry Pi của bạn như trò chuyện với bất kỳ người bình thường nào và thậm chí chia sẻ ảnh, tài liệu và tệp âm thanh. Bạn thậm chí có thể huấn luyện nó trở thành Trợ lý cá nhân của riêng mình, nghe thật tuyệt phải không? Hãy học cách xây dựngBot điện tín Raspberry pi.
Vật liệu thiết yếu:
- Bất kỳ Raspberry Pi nào được kết nối với Internet
- Một ứng dụng Telegram trên điện thoại di động.
Không có nhiều phần cứng liên quan đến dự án này, vì vậy hãy thư giãn trên ghế với Pi của bạn và làm theo các bước dưới đây. Nếu bạn chưa quen với Raspberry Pi thì hãy theo dõi bài viết Giới thiệu Raspberry Pi và các Hướng dẫn Raspberry Pi khác của chúng tôi.
Bước 1: Cài đặt Telegram trên Di động của bạn
Bước đầu tiên là cài đặt Telegram trên Điện thoại di động của bạn. Telegram có sẵn cho Android, IOS và thậm chí cho nền tảng Windows, vì vậy chỉ cần tiếp tục và tải xuống ứng dụng Telegram của bạn. Cũng giống như tất cả các ứng dụng, sẽ có một quy trình Đăng ký nhỏ để bắt đầu sử dụng Telegram, hãy tiếp tục với nó cho đến khi bạn đến màn hình chính của mình.
Bước 2: Nói chuyện với Bot Father
Bước tiếp theo là yêu cầu Cha Bot tạo cho chúng ta một Bot mới. Ở góc trên cùng bên phải của Màn hình chính sẽ có một biểu tượng tìm kiếm, hãy nhấp vào biểu tượng đó để tìm kiếm tên “botfather”. Bản thân Botfather là một Bot, nó sẽ hướng dẫn bạn tạo một bot mới cho bạn. Nhấp vào bắt đầu và chọn / newbot như trong hình dưới đây. Bây giờ, bot sẽ hỏi một số chi tiết như tên Bot của bạn và tên người dùng của bot. Điền vào những chi tiết đó và ghi nhớ tên người dùng vì chúng tôi sẽ cần nó trong tương lai.
Bước 3: Lấy mã thông báo của bạn để truy cập
Tôi đã đặt tên bot là circuitdigest và tên người dùng là circuitdigestBot. Sau quá trình này, bot cha sẽ cấp cho bạn một Mã thông báo để truy cập. Đây giống như mật khẩu cho bot của bạn, mọi người có thể điều khiển chương trình bot của bạn bằng cách sử dụng khóa mã thông báo này. Vì vậy, hãy giữ nó an toàn và không chia sẻ nó với bất kỳ ai. Khi bạn đã nhận được khóa mã thông báo này, đã đến lúc chuyển sang Raspberry Pi.
Bước 4: Điện thoại để cài đặt Telegram trên Raspberry Pi
Sử dụng Telegram Bot trong Raspberry Pi có thể thực hiện được nhờ gói python có tên là Telepot. Chúng tôi cần cài đặt gói này trên Raspberry Pi bằng cách sử dụng các lệnh sau trên thiết bị đầu cuối Lx
sudo apt-get install python-pip sudo pip install tele
Sau khi Telepot được nhập vào Raspberry, chúng ta có thể sử dụng gói này trong chương trình python của mình để giao tiếp với Telegram Bot.
Bước 5: Lập trình Raspberry Pi của bạn
Bot mà chúng tôi vừa tạo trên Telegram giống như một đứa trẻ, nó không thể tự làm bất cứ điều gì trừ khi chúng tôi dạy nó những gì và cách làm mọi thứ. Việc giảng dạy này có thể được thực hiện thông qua Raspberry Pi và tập lệnh Python. Trong hướng dẫn này, tôi đã lập trình bot để thực hiện một số hành động cơ bản như gửi tin nhắn, Ảnh, Âm thanh và Tài liệu. Vì vậy, khi bạn nói một lệnh cụ thể, nó sẽ phản hồi với một hành động cụ thể, lệnh và hành động được liệt kê trong bảng bên dưới
Lệnh từ Telegram |
Phản hồi của Raspberry Pi |
/Chào |
Trả lời bằng một chuỗi “Xin chào! CircuitDigest ” |
/thời gian |
Trả lời theo thời gian hiện tại |
/Logo |
Trả lời kèm theo Hình ảnh (logo của CircuitDigest) |
/tập tin |
Trả lời bằng một tệp (chứa chương trình hiện tại) |
/ audio |
Trả lời bằng tệp âm thanh demo |
Các chương trình hoàn chỉnh để làm cho các hành động trên được đưa ra ở dưới cùng của trang này. Nhưng ngay dưới đây, tôi đã giải thích những đoạn trích quan trọng trong chương trình để giúp bạn hiểu cách hoạt động của chương trình.
Bước đầu tiên là nhập tất cả các thư viện, ở đây rõ ràng chúng ta sẽ cần thư viện dịch chuyển để sử dụng bot Telegram. Chúng tôi cũng tận dụng thời gian, thư viện hẹn giờ để đọc thời gian hiện tại cho Raspberry pi. Sau đó, chúng tôi tạo một đối tượng bây giờ trong đó giá trị được lưu trữ.
nhập thời gian, nhập datetime tele từ tele.loop nhập MessageLoop now = datetime.datetime.now ()
Bước tiếp theo là tạo một chức năng để thực hiện các hành động dựa trên các lệnh đến từ ứng dụng Telegram trên Di động. Ở đây tên của hàm là action. Bên trong chức năng này, bot trở nên sống động. Bot của chúng tôi không thể tự bắt đầu một cuộc trò chuyện, nó chỉ có thể trả lời nếu chúng tôi hỏi điều gì đó. Vì vậy, mỗi khi chúng ta hỏi điều gì đó sẽ có id trò chuyện. Id trò chuyện này tương tự như một địa chỉ, chỉ sử dụng id trò chuyện này, bot mới có thể trả lời lại cho chúng tôi. Vì vậy, bước đầu tiên là đọc id trò chuyện và thông điệp mà nó đang cố gắng nói với chúng ta. Chúng tôi cũng in thông báo nhận được cho mục đích gỡ lỗi.
def action (msg): chat_id = msg command = msg print 'Received:% s'% command
Sâu hơn bên trong hàm, chúng tôi so sánh lệnh này với một văn bản được xác định trước và thực hiện các tác vụ cụ thể. Lệnh đầu tiên này sẽ là / hi mà chúng tôi trả lời “Xin chào! CircuitDigest ”
if command == '/ hi': telegram_bot.sendMessage (chat_id, str ("Xin chào! CircuitDigest"))
Lệnh tiếp theo sẽ là / time , mà chúng tôi trả lời thời gian hiện tại. Bây giờ chúng ta đã có ngày và giờ, ở đây chỉ cần tách nó ra dựa trên giờ và phút và thêm nó như sử dụng hàm str .
lệnh elif == '/ time': telegram_bot.sendMessage (chat_id, str (now.hour) + str (":") + str (now.minute))
Lệnh tiếp theo sẽ là / logo , bot sẽ lấy một hình ảnh từ url và gửi cho chúng tôi. Hình ảnh có thể được gửi từ URL hoặc từ đĩa cứng. Ở đây tôi vừa sử dụng URL hiển thị logo của CircuitDigest.
lệnh elif == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
Lệnh tiếp theo sẽ là / file , sẽ gửi tệp có tên Aisha.py từ đĩa cứng. Bạn có thể gửi bất kỳ tệp nào bạn muốn bằng cách thay đổi địa chỉ của thư mục
lệnh elif == '/ file': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
Lệnh cuối cùng sẽ là / audio . Điều này có thể gửi bất kỳ tệp mp3 nào từ đĩa cứng, tôi vừa sử dụng tệp âm thanh có tên test.mp3 làm bản demo ở đây
lệnh elif == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
Được rồi, bây giờ đến bước quan trọng nhất, đây là nơi chúng tôi cấp quyền truy cập của bot Telegram vào tập lệnh Python. Ở đây chúng tôi đặt tên bot là telegram_bot và gán cho nó địa chỉ mã thông báo được cung cấp bởi cha bot của chúng tôi ở bước 3. Ở dòng bên dưới, tôi đã xóa một vài chữ số cuối cùng của mã thông báo của mình vì vấn đề bảo mật. Chúng tôi cũng sử dụng lệnh in để hiển thị các chi tiết của Bot trên màn hình shell, điều này sẽ giúp chúng tôi nhận thấy mọi thứ đang hoạt động.
telegram_bot = telegram.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
Hy vọng bạn đã hiểu cách chương trình hoạt động, bây giờ chúng ta hãy chuyển sang bước tiếp theo.
Bước 6: Chạy chương trình trong Raspberry Pi của bạn
Như đã nói trước đó, chương trình hoàn chỉnh được đưa ra ở cuối trang này, bạn cũng có thể tải xuống chương trình tương tự từ đây. Khi bạn mở mã, hãy đảm bảo rằng bạn thay đổi địa chỉ mã thông báo của chương trình thành địa chỉ mã thông báo của bạn.
Bây giờ hãy chạy mã python và bạn sẽ thấy chi tiết về bot của mình trên cửa sổ shell như thế này
Ở đây, tên người dùng bot của tôi là circuitdigestBot. Nếu bạn nhận được tên bot của mình ở đây, điều đó có nghĩa là mọi thứ vẫn ổn.
Khi bạn nhìn thấy “thiết lập và chạy ”, điều đó có nghĩa là bot của bạn đã sẵn sàng hoạt động và giờ đây có thể trả lời các lệnh của bạn.
Bước 7: Thưởng thức đầu ra
Bây giờ, tất cả những gì còn lại là kiểm tra xem bot của bạn phản hồi tốt như thế nào đối với chương trình của bạn. Tìm kiếm tên bot của bạn trong trường hợp của tôi, nó là “circuitdigestBot”. Tìm kiếm tên người dùng và không hoặc tên Bot, tên người dùng của bạn phải kết thúc bằng bot.
Khi bạn mở bot của mình, hãy nhấp vào bắt đầu và nhập bất kỳ lệnh nào như / hi, / time, / file, / logo hoặc / audio và bạn sẽ được trả lời tương ứng.
Bạn có thể sử dụng shell script để xem script của bạn hiện đang đáp ứng những gì. Hoạt động hoàn chỉnh có thể được tìm thấy ở video ở cuối trang này.
Bước 8: Cho tôi điểm cao
Hy vọng bạn đã hiểu hướng dẫn và bây giờ sẽ có thể tạo bot điện tín Raspberry pi này và giao tiếp với Raspberry Pi bằng Ứng dụng Telegram. Chao ôi! Nếu bạn có bất kỳ vấn đề gì hãy cho tôi biết thông qua phần bình luận và tôi sẽ cố gắng liên hệ lại với bạn. Ngoài ra, hãy cho tôi biết bạn thích dự án này như thế nào hoặc bạn muốn tôi xây dựng điều gì bằng cách sử dụng nó trong các dự án sắp tới.
Ngoài ra, trong hướng dẫn tiếp theo của chúng tôi. Chúng tôi sẽ làm cho điều này trông mát mẻ hơn bằng cách thay đổi cách chúng tôi gửi lệnh và một cái gì đó liên quan hơn đến phần cứng trên Raspberry Pi.