Mục lục:

RabbitPi - Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant: 12 bước
RabbitPi - Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant: 12 bước

Video: RabbitPi - Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant: 12 bước

Video: RabbitPi - Alexa Enabled, IFTTT Connected, Ear-Wiggling IoT Assistant: 12 bước
Video: RabbitPi - The Raspberry Pi Digital Assistant 2024, Tháng mười hai
Anonim
Image
Image
RabbitPi - Hỗ trợ IoT đã bật Alexa, Kết nối IFTTT, Ear-Wiggling
RabbitPi - Hỗ trợ IoT đã bật Alexa, Kết nối IFTTT, Ear-Wiggling
RabbitPi - Hỗ trợ IoT đã bật Alexa, Kết nối IFTTT, Ear-Wiggling
RabbitPi - Hỗ trợ IoT đã bật Alexa, Kết nối IFTTT, Ear-Wiggling
RabbitPi - Hỗ trợ IoT đã bật Alexa, Kết nối IFTTT, Ear-Wiggling
RabbitPi - Hỗ trợ IoT đã bật Alexa, Kết nối IFTTT, Ear-Wiggling

Đây là một "con thỏ thông minh" Nabaztag 2005 đã lỗi thời mà tôi đã xây dựng lại thành một Trợ lý IoT hiện đại bằng cách sử dụng Raspberry Pi 3 và Adafruit Motor HAT, với micrô webcam và loa Philips Soundshooter có trong hộp gốc dễ thương. nút bắt đầu ra lệnh bằng giọng nói bằng cách sử dụng dịch vụ thoại Alexa của Amazon, đọc phản hồi thông qua loa tích hợp. Lệnh thoại cũng được sử dụng để kích hoạt công thức IFTTT (If This Then That), để tương tác với các thiết bị kết nối internet khác như ổ cắm thông minh và điện thoại di động. Không đủ? Ngoài việc kích hoạt các sự kiện IFTTT, nó cũng nhận chúng qua Gmail, sử dụng công cụ chuyển văn bản thành giọng nói Ivona để đọc email, tin nhắn văn bản và các thông báo khác, ví dụ như cảnh báo về phấn hoa hoặc thông báo từ camera an ninh gia đình. bạn phản hồi bằng hình ảnh với đèn LED và tai có động cơ? Ồ và nó có một Camera Raspberry Pi V2 trong bụng để tải ảnh tự chụp được kích hoạt bằng giọng nói lên Twitter. Thật khó để diễn tả sự dễ thương của RabbitPi bằng lời, hãy xem video để xem nó hoạt động như thế nào!

Bước 1: Sơ lược lịch sử về Thỏ thông minh

Lược sử về Thỏ thông minh
Lược sử về Thỏ thông minh
Lược sử về Thỏ thông minh
Lược sử về Thỏ thông minh
Lược sử về Thỏ thông minh
Lược sử về Thỏ thông minh
Lược sử về Thỏ thông minh
Lược sử về Thỏ thông minh

Nabaztag ban đầu "con thỏ thông minh đầu tiên" được phát hành vào năm 2005, được quảng cáo như một trợ lý môi trường xung quanh nhà (nghe có vẻ quen thuộc với Amazon và Google?) - được cho là thứ "Internet of Things" đầu tiên và đi trước thời đại về nhiều mặt, Tôi đã mua một cái ngay lập tức. Nó ngồi trên bệ của chúng tôi đọc dự báo thời tiết hàng ngày và các thông báo không thường xuyên nhưng không bao giờ có nhiều khả năng, dựa vào kết nối wi-fi WEP, phần mềm và máy chủ độc quyền để cung cấp dịch vụ chuyển văn bản thành giọng nói (TTS). Thật khó để tưởng tượng bây giờ nhưng vào thời điểm đó không có nhiều thứ mà nó có thể kết nối, phương tiện truyền thông xã hội hầu như không có, Nokia thống trị thế giới điện thoại thông minh và bóng đèn LED là một thứ mới lạ đắt tiền.

Trong những năm tới, tiếp theo là hai phiên bản tiếp theo, Nabaztag: Tag và Karotz, cả hai đều cung cấp chức năng được cải thiện nhưng đều không tìm thấy vị trí thích hợp trên thị trường, cuối cùng bị loại bỏ bởi những hạn chế về phần cứng và phần mềm. Điều đáng tiếc là ngay sau khi các máy chủ hỗ trợ bị tắt, những con thỏ thông minh trước đây đã trở thành một món đồ trang trí. Một số dự án cộng đồng đã cố gắng thay thế các dịch vụ của các máy chủ "chính thức" và chúng tôi đã sử dụng "OpenKarotz" trong một thời gian, nhưng điều này dường như đã chết cách đây một hoặc hai năm, khiến những con thỏ của tôi im lặng và bất động trên loa của tôi.

Dù sao bài học lịch sử hơn! Kết quả là chúng tôi đặc biệt nhớ đến sự hiện diện của Nabaztag trong phòng khách của chúng tôi và tôi muốn nó trở lại, nhưng như một thiết bị IoT hiện đại thích hợp.

Bước 2: Nabaztag 2.0

Nabaztag 2.0
Nabaztag 2.0

Cuối cùng tôi đã được truyền cảm hứng để bắt đầu RabbitPi khi tôi đọc vào tháng 3 rằng dịch vụ giọng nói Amazon Alexa đã được cung cấp cho Raspberry Pi - điều quan trọng là cần phải có nút để kích hoạt "nghe" - điều này hoàn toàn phù hợp với Nabaztag, vì nó có một nút nhấn xả ra với đỉnh đầu nhỏ sáng bóng của nó. Tôi đã tháo dỡ con thỏ của mình và nhanh chóng có mã AlexaPi tuyệt vời của Sam Machin chạy trên Pi 3 của tôi, được kích hoạt bằng cách nhấn nút của con thỏ. Tại thời điểm này, tôi hoàn toàn bị phân tâm bởi việc xây dựng AlexaPhone, nhưng đã nhảy thẳng trở lại lỗ thỏ thông minh ngay khi nó hoàn thành. Tôi cần Nabaztag cải tiến mới của mình ít nhất phải thông minh như bản gốc, vì vậy tôi muốn nó:

Thực hiện tìm kiếm bằng giọng nói và đọc kết quả

Đọc hết thông báo

Di chuyển tai của nó và đèn LED flash

Chụp ảnh và cho phép giám sát từ xa

Tương tác với ổ cắm thông minh, bóng đèn, v.v.

Bước 3: Bunny Chop

Bunny Chop
Bunny Chop
Bunny Chop
Bunny Chop
Bunny Chop
Bunny Chop
Bunny Chop
Bunny Chop

Công việc đầu tiên là tháo dỡ Nabaztag và xem những bộ phận nào có thể được sử dụng lại. Tai được thiết kế có thể hoán đổi cho nhau và chỉ được giữ bằng nam châm, điều đó thật dễ dàng và nắp chính chỉ được giữ bằng hai ốc vít (hình tam giác kỳ quái). Điều này làm lộ ra tất cả các mạch và các thành phần, được xây dựng xung quanh một trụ nhựa trung tâm. Một bên giữ mạch chính và đèn LED, với một loa ở bên còn lại và các động cơ / nút được nhúng vào cột ở trên cùng.

Vì tôi chỉ định giữ các động cơ nên tôi đã cắt qua hầu hết các dây cáp và bắt đầu tháo ốc vít. Tôi thực sự ngạc nhiên vào thời điểm này! Đằng sau mạch "não" của con thỏ là một khe chạy bằng toàn bộ chiều cao của cây cột, chứa thẻ wi-fi PCMCIA kích thước đầy đủ, loại mà bạn sẽ sử dụng trong các máy tính xách tay cũ. Tôi đoán đó là một sự thỏa hiệp về thiết kế hoặc khả năng tương thích vào thời điểm đó nhưng so sánh kích thước của nó với một chiếc dongle USB hiện đại thực sự mang lại cho bạn bao nhiêu công nghệ đã bị thu hẹp trong khoảng thời gian 10 năm.

Phần còn lại của các bộ phận đã được tháo gỡ dễ dàng, chỉ để lại trụ đỡ bằng nhựa trần với rất nhiều không gian xung quanh nó?

Bước 4: Nói và nghe

Nói và nghe
Nói và nghe
Nói và nghe
Nói và nghe
Nói và nghe
Nói và nghe

Bạn không thể có một con thỏ biết nói điều khiển bằng giọng nói mà không có loa và micrô, vì vậy đây là một trong những thứ đầu tiên tôi sắp xếp. Tôi thực sự không phải cố gắng nhiều lắm, Pi dường như rất linh hoạt với micrô USB và tôi chỉ sử dụng một webcam MSI StarCam Clip cũ cho đầu vào, điều chỉnh mức âm thanh thành Max trong cài đặt âm thanh Pi. Để tiết kiệm không gian, tôi đã tháo webcam, loại bỏ ống kính và vỏ máy ảnh. Tôi đã khoan một lỗ trên đế để micrô chọc qua và kết nối nó với USB của Pi, chạy dây cáp gọn gàng nhất có thể.

Tôi đã sử dụng loa KitSound MiniBuddy trong AlexaPhone, vì nó tỏ ra thực sự hiệu quả, nhưng khi tôi đi mua một chiếc cho dự án này, tôi thấy rằng thiết kế đã được thay đổi và chúng không còn được sạc bằng đầu nối micro-usb nữa! Tôi đã tìm kiếm thứ gì đó tương tự và nghĩ ra Philips SoundShooter, một đơn vị nhỏ giống như lựu đạn cầm tay. Tôi đã hy vọng nó sẽ vừa vặn trong trường hợp mà không cần tháo dỡ nhưng nó quá lớn, vì vậy tôi đã lấy tuốc nơ vít để tháo nó ra. Tôi đã cố gắng chụp dây loa trong quá trình này, vì vậy, tôi đã hàn vào một số dây nối để giúp kết nối lại dễ dàng hơn. Phần loa này được dán nóng vào vỏ ở cùng vị trí với loa ban đầu, với mạch và pin được cố định vào giá nhỏ bên dưới nó.

Khi nhìn lại, tôi ước gì tôi chỉ sử dụng ruột của một đế cắm loa được cấp nguồn chính hoặc một cái gì đó thay thế, vì nó không phải là lý tưởng để phải sạc loa - nhưng nó vẫn tồn tại trong một thời gian dài và âm thanh tuyệt vời, và là vỏ chính nhấc ra một cách dễ dàng, nó không thực sự là một vấn đề dừng lại ở chương trình.

Bước 5: Đọc Như Thỏ

Đọc Như Thỏ
Đọc Như Thỏ
Đọc Như Thỏ
Đọc Như Thỏ

Bây giờ phần Alexa đã hoạt động, tôi chuyển sang giải quyết vấn đề tiếp theo, làm cách nào để con thỏ đọc ra thông báo? Tính năng chuyển văn bản thành giọng nói của Nabaztag gốc rất hay, mặc dù tôi nhớ nó luôn đọc các dấu hiệu tin nhắn văn bản (MM) của tôi là "Milimét" và của vợ tôi (CM) là "Centimet" - Tôi muốn sử dụng công cụ âm thanh tự nhiên sẽ diễn giải những thứ như ký hiệu "&" một cách chính xác và hiểu các biểu tượng cảm xúc đơn giản như:).

Như với mọi thứ trên Raspberry Pi, có vô số tùy chọn khác nhau và tôi đã xem xét một số tùy chọn trước khi quyết định chọn Ivona, dường như là cùng một công cụ cơ bản được sử dụng bởi dịch vụ Alexa. Đó là lựa chọn tốt nhất đối với tôi vì có một loạt các tùy chọn cấu hình và giọng nói có sẵn - một điểm cộng lớn là Zachary Bears đã cung cấp một trình bao bọc Python tiện lợi cho dịch vụ, Pyvona.

Để bắt đầu với Ivona, trước tiên bạn cần thiết lập tài khoản nhà phát triển, sau đó giống như thiết lập Alexa, sau đó bạn được cung cấp thông tin đăng nhập để sử dụng trong ứng dụng của mình, trong trường hợp này là tập lệnh để đọc thông báo. Bạn được phép 50, 000 tìm kiếm mỗi tháng với một trong những tài khoản này, điều này chắc chắn là rất nhiều đối với tôi.

Thiết lập Pyvona thực sự đơn giản, chỉ trong vài phút, tôi đã có một tập lệnh Python được tạo từ ví dụ được cung cấp sẽ đọc ra bất kỳ cụm từ nào tôi nhập vào. Nhưng tất nhiên đó chỉ là một phần giải pháp - tôi không muốn Ivona đọc ra những đoạn mã cứng. văn bản nhưng thông báo đến động.

Bước 6: Nói gì?

Nói gì cơ?
Nói gì cơ?
Nói gì cơ?
Nói gì cơ?

Vì vậy, bây giờ tôi đã có một con thỏ (từng mảnh trên băng ghế dự bị) có thể nói, nhưng nó cần một cơ chế để nhận thông báo và chuyển chúng đến dịch vụ Ivona để đọc. Tôi đã xem xét khả năng nhắn tin văn bản qua dịch vụ trực tuyến hoặc bộ điều hợp thẻ SIM, cũng như Twitter và Dropbox để gửi các chuỗi / tệp văn bản, nhưng cuối cùng quyết định sử dụng imaplib, một phương tiện dựa trên Python để tương tác với các tài khoản email IMAP. Tôi quyết định tùy chọn này chủ yếu vì nó tích hợp tốt với dịch vụ IFTTT, bạn có thể thực sự sáng tạo với việc định dạng email thông báo. Ngoài ra, điều đó có nghĩa là tôi có thể gửi email trực tiếp đến RabbitPi để được đọc to.

Tôi đã xem qua rất nhiều ví dụ về python imaplib trực tuyến và sau khi kết hợp các bit và mảnh và làm việc thông qua tài liệu imaplib, tôi đã quản lý để kết thúc với một tập lệnh kiểm tra Gmail để tìm các thư chưa đọc đều đặn và in văn bản khác nhau trên màn hình tùy thuộc vào nội dung của chủ đề tin nhắn. Điều này thực sự hữu ích, vì tôi có thể điều chỉnh câu lệnh "IF" trong mã để chỉ hoạt động nếu email đến từ chính tôi và sau đó hoán đổi hành động "In" cho mã gọi dịch vụ Ivona.

Tôi đã dành khá nhiều thời gian để cố gắng điều chỉnh mã imaplib & Pyvona để đọc nội dung email nhưng điều này hóa ra lại cực kỳ phức tạp - tôi sớm biết rằng các trường email cốt lõi (Từ, Đến, Chủ đề, v.v.) được định dạng rất đơn giản, nhưng văn bản nội dung email đó có thể được cấu trúc theo nhiều cách khác nhau. Cuối cùng thì điều đó không thực sự quan trọng, tôi đã có thể đạt được những gì tôi cần bằng cách sử dụng Chủ đề email làm trường mà văn bản thông báo sẽ được đọc từ đó.

Sau đó, tôi điều chỉnh ví dụ mã imaplib để thay vì dừng lại sau mỗi lần kiểm tra email, nó sẽ lặp lại vô hạn, kiểm tra email vài lần một phút và đọc bất kỳ email mới nào khi chúng đến. Điều này rất hữu ích cho việc kiểm tra nhưng trong thực tế, tôi có thể làm cho nó kiểm tra ít thường xuyên hơn một chút. Cũng cần lưu ý rằng tập lệnh lưu trữ mật khẩu ở dạng văn bản thuần túy, do đó sẽ cần một số mã hóa được thêm vào tại một số thời điểm.

Tôi chắc chắn 100% rằng điều này có thể đạt được một cách thanh lịch và hiệu quả hơn nhiều bằng Python nhưng thật thú vị và khó khăn khi làm cho nó hoạt động - tôi đã mượn "Python for Kids" từ thư viện trong tuần này để mã của tôi hy vọng sẽ được cải thiện khi tôi tìm hiểu thêm.

Với tập lệnh get-an-email-and-read-it-out cơ bản hoạt động, tôi đã thêm vào các bit mã bổ sung để làm cho tai thỏ di chuyển và đèn LED sáng trong khi đọc thông báo. Mã tôi đã sử dụng là trên GitHub nhưng xin lưu ý rằng hiện tại tôi thiếu sức mạnh python!

Bước 7: HAT cho RabbitPi

A HAT cho RabbitPi
A HAT cho RabbitPi
A HAT cho RabbitPi
A HAT cho RabbitPi
A HAT cho RabbitPi
A HAT cho RabbitPi
A HAT cho RabbitPi
A HAT cho RabbitPi

Một trong những điều mang tính biểu tượng nhất về Nabaztag là cách nó di chuyển tai khi có thông báo đến. Chúng có thể được đặt thành một hướng cụ thể bằng cách di chuyển chúng theo cách thủ công hoặc bằng cách đặt vị trí bằng phần mềm điều khiển - mục tiêu của tôi là chỉ để làm cho họ di chuyển.

Tôi đã không sử dụng động cơ với Raspberry Pi trước đây nên đây là một chủ đề nghiên cứu mới khác đối với tôi - trước tiên tôi cần tìm hiểu loại động cơ mà tôi đang xử lý, tất cả những gì tôi biết là có 2 động cơ, mỗi động cơ có 2 dây. Đọc trực tuyến, tôi kết luận rằng đây phải là động cơ DC đơn giản hơn là động cơ bước, một thực tế đã được xác nhận bởi cuốn "Hack the Nabaztag" có hướng dẫn tuyệt vời này của Liana_B, mà tôi ước mình sẽ đọc khoảng một tháng trước đó.

Tuy nhiên, một lần nữa nhờ sự linh hoạt của Pi, có nhiều cách khác nhau mà các động cơ có thể được điều khiển, nhưng tôi quyết định sử dụng bảng mạch Adafruit DC & Stepper Motor HAT. Tôi đã sử dụng màn hình & đồ trang sức Adafruit trước đây và tôi thích các hướng dẫn chi tiết và ví dụ tiêu chuẩn.

Sử dụng bo mạch với tiêu chuẩn HAT (Phần cứng được đính kèm trên đầu) có nghĩa là bộ điều khiển động cơ sẽ nằm gọn gàng trên đầu Pi, chiếm không gian tối thiểu và vì nó sử dụng giao diện I2C nên giải phóng các chân GPIO mà tôi cần cho Alexa / Clap nút và đèn LED.

Đúng như dự đoán, việc hàn HAT với nhau thực sự rất đơn giản, và tôi đã sớm lắp nó vào PI và kết nối với hai động cơ tai. Tôi đã dự định chạy các động cơ từ một ổ cắm điện USB để tôi chỉ cần một phích cắm điện duy nhất, nhưng điều này hóa ra không có đủ tiếng kêu, thậm chí nó sẽ không sáng đèn LED "Đang làm việc" trên HAT. Thay vào đó, tôi quyết định sử dụng bộ chuyển đổi nguồn DC để chạy HAT và tai nghe, tôi đã có một trong những bộ chuyển đổi phổ thông với các mẹo có thể thay thế cho nhau rất tiện lợi. Những gì tôi không có là một ổ cắm DC để kết nối bộ điều hợp với HAT. Tôi đang chuẩn bị đi đến Norwich Maplin (một lần nữa) khi tôi nhớ ra từ giọt nước mắt rằng dây dẫn nguồn ban đầu của Nabaztag là phích cắm DC tiêu chuẩn - do đó tôi có thể chỉ cần nối lại ổ cắm điện ban đầu với HAT - thật gọn gàng! Cuối cùng, tôi cũng sử dụng lại bộ nguồn Nabaztag ban đầu, vì nó cung cấp lượng điện vừa phải.

Với mọi thứ được nối dây và chọn một điện áp hợp lý, tôi tạm thời chạy ví dụ python đi kèm với Mũ động cơ DC, mã mẫu liên tục thay đổi tốc độ và hướng của động cơ để minh họa các tùy chọn điều khiển khác nhau. Tôi rất phấn khích khi nó hoạt động, động cơ điều khiển bằng Pi đầu tiên của tôi! Nhưng sau đó tôi nhận ra điều gì đó - một tiếng rên rỉ the thé rất lớn giống như ai đó đang dùng ngón tay ướt vuốt quanh ly rượu. Điều này không tốt chút nào, tôi muốn có đôi tai di chuyển trong khi thông báo đang được đọc và mặc dù không làm chói tai tiếng rên rỉ thực sự đáng chú ý. Tôi đã thử các điện áp khác nhau nhưng không thay đổi. Chuyển sang Google, tôi phát hiện ra rằng điều này có thể xảy ra do PWM (điều chế độ rộng xung) và một biện pháp khắc phục có thể là hàn các tụ điện nhỏ trên các đầu nối của động cơ. Nhìn vào các động cơ, chúng đã được đặt sẵn. Tôi cũng đã thử nghiệm với việc thay đổi tần số PWM nhưng vẫn không có gì thay đổi. Sau một số thử nghiệm, tôi nhận ra rằng tiếng rên rỉ chỉ xảy ra khi tốc độ của động cơ được thay đổi theo mã từ thấp đến cao - vì vậy đặt nó ở tốc độ cao không đổi sẽ loại bỏ hoàn toàn tiếng rên rỉ - phew!

Tôi đã tạo một vài tập lệnh python thử nghiệm dựa trên các ví dụ của Adafruit, một tập lệnh cho chuyển động trong khi thông báo và một tập lệnh khác để làm cho tai thực hiện một "mạch" đầy đủ khi khởi động, nhằm sao chép mã làm việc từ chúng vào các tập lệnh chính được sử dụng để xử lý Tương tác giữa Alexa và Gmail / Ivona.

Bước 8: Camera và tinh chỉnh

Máy ảnh và tinh chỉnh
Máy ảnh và tinh chỉnh
Máy ảnh và tinh chỉnh
Máy ảnh và tinh chỉnh
Máy ảnh và tinh chỉnh
Máy ảnh và tinh chỉnh

Trước khi bắt đầu lắp ráp, tôi đã kiểm tra mọi thứ. Bất cứ nơi nào có thể trên bản dựng này, tôi đã sử dụng cáp jumper để kết nối các thành phần riêng lẻ với nhau, nếu các bản dựng trước đây đã dạy cho tôi bất cứ điều gì thì đó là kế hoạch tháo dỡ trong tương lai! Tôi cũng đã chú ý đến việc vẽ ra một sơ đồ kết nối cho thấy cáp màu gì đã đi đâu, cáp jumper rất tuyệt vời nhưng đôi khi dễ bị bung ra khi nhồi nhét các thành phần vào không gian chật hẹp!

Tôi đã quyết định khá xa trong việc xây dựng cũng bao gồm một mô-đun Camera Pi, phiên bản 8MP 2 vừa được phát hành và là một cái gì đó mới đối với tôi, tôi nghĩ nó sẽ tạo ra một bổ sung tốt. Phiên bản mới nhất của thỏ Karotz đã bao gồm một webcam trong bụng nhưng điều này không bao giờ thực sự hoạt động tốt như vậy, tôi nghĩ máy ảnh Pi sẽ rất thú vị khi chụp ảnh tự sướng bằng giọng nói và thậm chí có thể giám sát từ xa nếu Pi có thể xử lý việc chạy mã tại cùng lúc với mọi thứ khác.

Tôi đã chế tạo một giá đỡ cho máy ảnh từ meccano bọc nhựa và lắp nó vào hộp trước, sau đó đo rất cẩn thận nơi tôi cần khoan lỗ chìm trong hộp. Đây chắc chắn là một trường hợp "đo hai lần cắt một lần" vì một lỗ hổng không đúng chỗ sẽ là một thảm họa. Rất may, nó đi ra giữa điểm chết và chỉ hơi cao, vì vậy tôi có thể bù đắp bằng cách thêm vòng đệm vào giữa khung máy ảnh và đế.

Tôi cũng đã thêm vào một Cáp nguồn Micro USB Kép Pimoroni tại thời điểm này - điều này đã mang lại cho tôi một ổ cắm micro-usb đẹp mắt ở phía sau vỏ và cung cấp một phích cắm điện thứ hai. Tôi định sử dụng phích cắm phụ để sạc pin của loa và cắm vào đó để tôi có thể kết nối với công tắc "tắt tiếng" ban đầu của Nabaztag để điều khiển quá trình sạc.

Bước 9: Cookin 'Doc là gì? Công thức IFTTT

Cookin 'Doc là gì? Công thức IFTTT!
Cookin 'Doc là gì? Công thức IFTTT!
Cookin 'Doc là gì? Công thức IFTTT!
Cookin 'Doc là gì? Công thức IFTTT!

Điều phi thường về việc xây dựng một thiết bị IoT ngay bây giờ là số lượng tuyệt đối các dịch vụ web có sẵn và dịch vụ IFTTT (If This Then That) thực hiện một công việc đáng kinh ngạc là gắn kết tất cả những thứ này lại với nhau trong một gói chức năng và đơn giản. Nếu bạn chưa sử dụng nó, đây là một dịch vụ trực tuyến và sau khi đăng ký, bạn có thể kết nối tất cả nội dung dựa trên web khác của mình với nó, chẳng hạn như Gmail, Facebook, Twitter và (bạn đoán vậy) Amazon Alexa. Có một loạt các dịch vụ để bạn lựa chọn, bao gồm cả các tùy chọn điều khiển cho các thiết bị thông minh như bóng đèn, bộ điều nhiệt và ổ cắm.

Các quy tắc IFTTT được thiết lập trong "công thức nấu ăn" - giống như quy tắc Outlook hoặc câu lệnh IF trong SQL hoặc Visual Basic, ví dụ: tôi có một công thức có nội dung "NẾU ai đó gắn thẻ tôi trong ảnh trên Facebook THÌ hãy gửi email cho tôi với Chủ đề "Thánh guacamole, [gắn thẻ tên người] vừa gắn thẻ bạn trong một bức ảnh trên facebook" - bởi vì điều này được gửi cho tôi từ địa chỉ của riêng tôi, sau đó RabbitPi đọc ra Văn bản Chủ đề.

Một công dụng tuyệt vời khác của IFTTT là với dịch vụ thoại Alexa - đối với phần IF của công thức, bạn có thể thiết lập một cụm từ, ví dụ: "tia laser" và nếu sau đó bạn nói với Alexa "Kích hoạt tia laser", cô ấy sẽ chuyển yêu cầu tới IFTTT, sẽ kích hoạt phần THEN của công thức, trong trường hợp này là kích hoạt ổ cắm từ xa được kết nối với laser disco.

Nó thậm chí còn vượt xa "những thứ thông minh" - nếu bạn đã cài đặt IFTTT trên điện thoại của mình (của tôi là phiên bản Android) thì bạn có thể tương tác với nó theo cả hai hướng, một công thức được sử dụng trong video là: "NẾU tôi nói" Trigger Chas & Dave "với Alexa, SAU ĐÓ phát bài hát cụ thể" Rabbit "trên điện thoại Android của tôi. Nó cũng hoạt động theo cách khác - ứng dụng điều khiển từ xa đa năng AnyMote trên điện thoại của tôi có thể được tùy chỉnh để một nút cụ thể có thể kích hoạt phần" IF " của một công thức - vì vậy tôi có một nút trên màn hình để kích hoạt RabbitPi chụp ảnh tự sướng và tải nó lên Twitter.

Một chức năng khác cho phép RabbitPi đọc tin nhắn văn bản của tôi, trên điện thoại của tôi, tôi có một công thức "NẾU tôi nhận được tin nhắn SMS mới THÌ hãy gửi cho mình một email với chủ đề sau" Này! [người gửi văn bản] nói [nội dung tin nhắn văn bản]"

Nó dễ sử dụng, rất thú vị và hoạt động tốt, các thông báo được chuyển qua lại rất nhanh chóng, đặc biệt là với công tắc WeMo Insight mà tôi có, khá tức thì. Có IFTTT và RabbitPi giúp việc kết nối mọi thứ và dịch vụ trở nên thực sự đơn giản.

Bước 10: Lắp ráp & kiểm tra

Lắp ráp & Kiểm tra
Lắp ráp & Kiểm tra
Lắp ráp & Kiểm tra
Lắp ráp & Kiểm tra
Lắp ráp & Kiểm tra
Lắp ráp & Kiểm tra

Bây giờ đến phần phức tạp - nhồi nhét tất cả các thành phần vào vỏ máy! Tôi khá chắc chắn rằng tất cả sẽ vừa khít nhưng việc lắp ráp thực sự rất khó khăn, tôi đã tận dụng rất tốt một số dụng cụ phẫu thuật và nhíp để chọc dây cáp qua những khe hở nhỏ.

Sau khi mọi thứ đã được lắp chắc chắn, tôi đã thêm vào một số đế buộc cáp tự dính để nhiều dây có thể được kéo lại với nhau một cách gọn gàng - điều này thực sự quan trọng vì tôi không muốn vô tình rút phích cắm của bất kỳ dây nào trong số chúng khi đặt hộp lại với nhau.

Bước 11: Thỏ đã sẵn sàng?

Thỏ sẵn sàng chưa?
Thỏ sẵn sàng chưa?
Thỏ sẵn sàng chưa?
Thỏ sẵn sàng chưa?
Thỏ sẵn sàng chưa?
Thỏ sẵn sàng chưa?
Thỏ sẵn sàng chưa?
Thỏ sẵn sàng chưa?

Bây giờ tất cả các bên xây dựng vật lý đã được thực hiện, đã đến lúc "cắt dây", tháo RabbitPi khỏi sự thoải mái của cáp ethernet, màn hình và bàn phím trong xưởng để tôi có thể hoàn thành mã ở nơi khác thông qua SSH (Tín hiệu không dây là thực sự yếu trong đó!)

Đặt trên bàn làm việc trong văn phòng của mình, tôi khởi động con thỏ lên và - không có kết nối wi-fi nào cả, không có gì cả. Tôi biết rằng phải có tín hiệu vì điện thoại của tôi đang hoạt động tốt - có vấn đề với bộ điều hợp mạng trên Pi 3 mà tôi chưa nghe thấy không? Một chút thông tin nhanh của googling đã thông báo cho tôi rằng Pi 3 sẽ chỉ tìm thấy tín hiệu wi-fi nếu bộ định tuyến đang phát trên các kênh 1-11 - của tôi đã được đặt thành kênh 13! Một vài chỉnh sửa sau đó và chúng tôi đã kết nối với nhau, thở phào nhẹ nhõm.

Tiếp theo là phân loại các tập lệnh khác nhau. Đầu tiên, tôi đã sửa đổi tập lệnh main.py của mã AlexaPi, thêm các dòng bổ sung để cũng như nhấp nháy đèn LED của nó khi khởi động, RabbitPi cũng sẽ thực hiện một cái lắc tai đẹp mắt. Tôi cũng thay thế thông báo "Xin chào" tiêu chuẩn bằng hiệu ứng âm thanh "boing" vui nhộn cho vui.

Tập lệnh thứ hai có tên là Rabbit.py (SWIDT?) Và chứa tất cả các mã để truy xuất các thư gmail và đọc chúng ra bằng Pyvona. Tôi cũng đã thêm vào một số mã Twython mà tôi đã điều chỉnh từ hướng dẫn "Tweeting Babbage" trên Raspberry Pi, cho phép RabbitPi chụp ảnh và tải nó lên tài khoản Twitter của nó (@NabazPi). Tôi đã thêm vào một số chuyển động của tai và đèn LED nhấp nháy để cung cấp cho bạn cảnh báo công bằng khi ảnh sắp được chụp, cũng như tiếng ồn cửa trập và xác nhận tweet do Pyvona đọc.

Cuối cùng, tôi đã thêm vào một câu lệnh IF vào mã gmail imaplib, để nếu chủ đề email là "selfie" thì RabbitPi sẽ thực hiện công việc selfie của nó, nhưng nếu không sẽ đọc tiêu đề email như bình thường.

Mã tôi đã sử dụng có sẵn trên GitHub - vui lòng đọc tệp ReadMe!

Để hoàn thiện, tôi in logo Raspberry Pi lên giấy trong suốt và dán nó vào bên trong vỏ RabbitPi, để đèn LED ở bụng màu trắng sẽ chiếu sáng hình ảnh qua lớp da mờ của nó.

Bước 12: Nabaztag đã trở lại

Nabaztag đã trở lại!
Nabaztag đã trở lại!
Nabaztag đã trở lại!
Nabaztag đã trở lại!
Nabaztag đã trở lại!
Nabaztag đã trở lại!

Với mọi thứ đã hoàn thành, chỉ còn lại video để làm. Thật là vui khi đưa RabbitPi vượt qua các bước trên máy ảnh, nhược điểm duy nhất là chỉnh sửa cảnh quay HD trên máy tính xách tay cũ của tôi sau này. Đối với một số thông báo (chủ yếu là tin nhắn văn bản do tín hiệu Vodafone khủng khiếp của tôi), tôi đã cắt giảm các khoảng tạm dừng giữa hành động và thông báo, nếu không nó sẽ là một video dài và nhàm chán, nhưng hầu hết trong số đó cho thấy tốc độ phản hồi thực sự.

Tôi đã thử nghiệm bằng cách sử dụng cảm biến vỗ tay để kích hoạt dịch vụ Alexa (như đã thấy trong video Snap to it Alexa), nhưng đã loại bỏ nó khỏi bản dựng cuối cùng vì nó không thực sự đủ tin cậy khi có tiếng ồn xung quanh. Tôi biết những người mày mò khác đang làm việc để sử dụng điều khiển từ xa IR, bộ điều khiển wii và thậm chí lắng nghe tích cực với mã AlexaPi nên có rất nhiều tùy chọn cho tương lai.

Tôi hy vọng sẽ thêm một vòng neopixel quả hạch để thay thế đèn LED ở bụng vì điều này sẽ tạo ra các thông báo hình ảnh tốt hơn nhiều, ngoài ra tôi cũng muốn "tắt tiếng" thông báo bằng giọng nói vào ban đêm. Các con tôi cũng đã cung cấp một số đề xuất tuyệt vời và bây giờ tôi đã cảm thấy thoải mái hơn với Python, chúng tôi sẽ làm việc cùng nhau để mở rộng phạm vi thông báo, chẳng hạn như để văn bản xác nhận chụp ảnh tự sướng được lấy ngẫu nhiên từ danh sách các giá trị, và do đó, thỏ có thể được hướng dẫn thử nhảy macarena với đôi tai và đèn LED của nó.

Tôi tình cờ có một Nabaztag khác ở đây, cũng như một con thỏ Karotz sau này, vì vậy tôi có thể tạo ra một thứ gì đó khác với chúng - thật hấp dẫn để thử nghiệm với các loại cảm biến và giám sát từ xa! Đó là một nền tảng phần cứng lý tưởng cho Pi với vỏ, động cơ và nút bấm có kích thước hoàn hảo. Tôi tự hỏi liệu các nhà sản xuất ban đầu có một kho dự trữ Nabaztags chưa bán ở đâu đó, như bãi rác Atari? Chắc chắn rằng với một số tính năng tốt được in 3D để gắn máy ảnh và PI và một HAT tùy chỉnh để chạy động cơ, đèn LED và âm thanh, chúng sẽ tạo thành một bộ sản xuất Raspberry Pi lý tưởng, mọi câu lạc bộ mã hóa nên có một bộ!

Nếu bạn thích dự án này và muốn xem thêm, bạn có thể xem trang web của tôi để biết thông tin cập nhật về dự án đang tiến hành tại bit.ly/OldTechNewSpec, tham gia trên Twitter @OldTechNewSpec hoặc đăng ký kênh YouTube đang phát triển tại bit.ly/oldtechtube - give một số công nghệ cũ của bạn một thông số kỹ thuật mới!

Cuộc thi Internet of Things 2016
Cuộc thi Internet of Things 2016
Cuộc thi Internet of Things 2016
Cuộc thi Internet of Things 2016

Á quân Cuộc thi Internet of Things 2016

Đề xuất: