Mục lục:

Home Alert: Arduino + Cloud Messaging trên màn hình lớn: 14 bước (có hình ảnh)
Home Alert: Arduino + Cloud Messaging trên màn hình lớn: 14 bước (có hình ảnh)

Video: Home Alert: Arduino + Cloud Messaging trên màn hình lớn: 14 bước (có hình ảnh)

Video: Home Alert: Arduino + Cloud Messaging trên màn hình lớn: 14 bước (có hình ảnh)
Video: Nhập môn IoT với Lập trình Arduino: Bài 06 - Chơi với board Arduino thật 2024, Tháng mười một
Anonim
Home Alert: Arduino + Cloud Messaging trên màn hình lớn
Home Alert: Arduino + Cloud Messaging trên màn hình lớn
Home Alert: Arduino + Cloud Messaging trên màn hình lớn
Home Alert: Arduino + Cloud Messaging trên màn hình lớn
Home Alert: Arduino + Cloud Messaging trên màn hình lớn
Home Alert: Arduino + Cloud Messaging trên màn hình lớn

Trong thời đại của điện thoại di động, bạn sẽ mong đợi rằng mọi người sẽ phản hồi cuộc gọi của bạn 24/7.

Hay không. Khi vợ tôi về nhà, điện thoại vẫn nằm gọn trong túi xách hoặc pin của nó bị chai. Chúng tôi không có đường dây cố định. Gọi điện hoặc nhắn tin SMS để yêu cầu thang máy về nhà từ ga xe lửa vào một đêm mưa hoặc gọi điện để hỏi xem chìa khóa của tôi có còn trên bàn của tôi hay không là những suy nghĩ mơ mộng theo đúng nghĩa đen.

Tôi gặp vấn đề này thường xuyên, đủ để đảm bảo một giải pháp. Một chút mày mò với Arduino và Màn hình ma trận điểm Freetronics (DMD) đã dẫn đến một thiết bị rất khó chịu (đối với vợ tôi), nhưng lại là một thiết bị liên lạc và trung tâm thông tin tuyệt vời đối với tôi. Tôi thích nó và nó chỉ là phiên bản 1!

Home Alert được làm bằng các phần sau:

  • Màn hình ma trận điểm Freetronics, là một dãy đèn LED 16x32. Chúng có nhiều màu sắc khác nhau, nhưng tôi sử dụng màu đỏ để nhấn mạnh rằng tiện ích này dành cho các thông báo "quan trọng".
  • Arduino Uno với Ethernet Shield.
  • Một đột phá về đồng hồ thời gian thực, như thế này hoặc thế này.
  • Một chiếc còi piezo
  • Một cảm biến nhiệt độ và độ ẩm DHT22.

Home Alert được kiểm soát thông qua một trang web được lưu trữ trên Heroku, một máy chủ ứng dụng dựa trên đám mây. Trang web được mã hóa bằng Ruby, sử dụng khung ứng dụng web Sinatra và kho lưu trữ khóa-giá trị Redis.

Hãy xem trang chủ (hiển thị trong hình ảnh đính kèm đầu tiên trong bước này), nơi biểu mẫu đang chờ một thông báo mới từ người dùng.

Trường đầu tiên chấp nhận mã phần cứng bằng số. Đây là mã cho phép bạn nhắm mục tiêu một hệ thống Home Alert cụ thể, vì mỗi hệ thống có thể được cấp một mã duy nhất. Hoặc, bạn có thể có nhiều Cảnh báo gia đình chia sẻ cùng một mã, để cùng một thông báo được hiển thị cho nhiều vị trí.

Thông báo bạn muốn hiển thị chuyển đến trường thứ hai. Bất kỳ văn bản nào bạn nhập vào đó sẽ được hiển thị trong DMD.

Nếu bạn muốn tạo ra tiếng ồn, hãy đánh dấu vào ô Có! hộp kiểm và bộ rung chắc chắn sẽ thu hút sự chú ý của bất kỳ ai ở gần.

Trong bài viết này, tôi sẽ hướng dẫn bạn cách xây dựng hệ thống Home Alert của riêng bạn, cả phần cứng và phần mềm Arduino, cũng như ứng dụng web Sinatra mini.

Bắt đầu nào!

Bước 1: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng

DMD là tâm điểm của tiện ích. Tôi có thể đã sử dụng một màn hình LCD nhỏ, nhưng ý tưởng chính cho dự án này là tạo ra thứ gì đó có thể nhìn thấy và nghe thấy từ xa. Về phần hình ảnh, tôi cần một thứ gì đó lớn và sáng, và màn hình Freetronics này chính là thứ tôi cần. Mỗi bảng điều khiển chứa một loạt các đèn LED 16x32 và bạn có thể dán một số đèn LED này lại với nhau để tạo ra các màn hình lớn hơn nhiều. Đây là điều tôi muốn làm trong tương lai gần.

DMD đi kèm với một thư viện Arduino dễ sử dụng. nó giao tiếp với Arduino thông qua SPI tốc độ cao. Tôi đã có thể lấy thư viện từ trang Freetronics Github, sau đó kích hoạt bản phác thảo demo và làm cho nó hoạt động trong vòng vài phút sau khi mở hộp. Tôi đã rất ngạc nhiên khi thấy một màn hình sáng như vậy chỉ sử dụng nguồn điện từ Arduino. Nếu bạn muốn tạm thời làm mù người xem, bạn có thể gắn nguồn điện chuyên dụng cho DMD này. Nếu điều này không thu hút được sự chú ý của họ, thì sẽ chẳng có gì!

Về mặt vật lý, màn hình này có kích thước 320mm (W), 160mm (H) và 14mm (D).

Mặt sau chứa các đầu nối cho nguồn bên ngoài, 5V với công suất ít nhất 4Amps, đầu nối Arduino được đánh dấu HUB1 và đầu nối cho các màn hình bổ sung tạo chuỗi ở phía đối diện. Theo tài liệu, bạn có thể tạo chuỗi liên kết tối đa bốn DMD.

DMD được điều khiển bởi Arduino Uno. Freetronics cung cấp đầu nối “DMDCON” rất tiện lợi chỉ cần gắn trực tiếp vào chân SPI và chân dữ liệu chính xác.

Ngoài DMD, tôi đã sử dụng Arduino Uno, Ethernet Shield, đột phá đồng hồ thời gian thực, bộ rung và DHT22. Đối với tất cả các thành phần này, tôi đã tạo các bài giảng mô tả hoạt động của chúng trong khóa học Udemy của tôi. (Tự quảng cáo không biết xấu hổ: đăng ký vào danh sách email của tôi tại arduinosbs.com và nhận một phiếu giảm giá cho phép bạn truy cập giảm giá vào tất cả 55 bài giảng).

Đồng hồ thời gian thực, một điểm đột phá dựa trên IC đồng hồ DS18072, là một thiết bị I2C nên nó được kết nối với các chân tương tự 1 và 2 của Uno, thực hiện bus I2C.

Bộ rung được kết nối với chân số 3, từ đó tôi điều khiển nó bằng cách sử dụng chức năng tone ().

Cảm biến DHT22 được kết nối với chân kỹ thuật số 2. Hãy cẩn thận kết nối điện trở kéo lên 10KΩ giữa đường 5V và đường dữ liệu.

Bước 2: Phác thảo Arduino

Bản phác thảo không lớn về số lượng dòng, nhưng nó gần như làm cạn kiệt bộ nhớ flash có sẵn của Uno nhờ tất cả các thư viện đi kèm. Có rất nhiều chỗ để tối ưu hóa bộ nhớ, nhưng vì tôi đang ở giai đoạn tạo mẫu, đó là một dự án cho một ngày khác. Mã này có sẵn trên Github.

Đây là bản phác thảo, với các chú thích được nhúng (xem tệp đính kèm PDF).

Trách nhiệm chính của bản phác thảo này là biến Arduino trở thành người tiêu dùng dịch vụ web. Dịch vụ web là một trang web đơn giản với hai điểm cuối, một điểm cho người dùng truy cập thông qua trình duyệt web và gửi một chuỗi văn bản mà họ muốn hiển thị trên DMD và một điểm khác nơi Arduino sẽ truy cập để lấy chuỗi văn bản đó.

Vui lòng tải xuống và đọc tệp PDF đính kèm, tệp này có chứa các nhận xét được nhúng mô tả hoạt động của nó.

Bước 3: Sinatra bắt đầu

Sinatra lên sân khấu!
Sinatra lên sân khấu!

Có nhiều cách để tạo trang web và dịch vụ web. Từ các ngôn ngữ lập trình với các thư viện hỗ trợ web, đến các khung công tác đầy đủ tính năng, có thể khiến bạn khó hiểu và khó chọn một ngôn ngữ cho công việc này.

Tôi đã sử dụng và chơi với rất nhiều công nghệ ứng dụng web và nhận thấy rằng Sinatra là lý tưởng để xây dựng các dịch vụ web và các trang web nhỏ. Đặc biệt, khi tôi xây dựng một dịch vụ web để hỗ trợ tiện ích Arduino, Sinatra là một lựa chọn thực sự tốt.

Sinatra là gì, và tại sao nó là một lựa chọn tốt như vậy? Tôi rất vui vì bạn đã hỏi!

Sinatra là một ngôn ngữ cho sự phát triển nhanh chóng của các ứng dụng web. Nó được xây dựng dựa trên Ruby, một ngôn ngữ kịch bản đa năng rất phổ biến và biểu đạt. Bạn có thể nghe thấy Sinatra được gọi là “DSL”, một ngôn ngữ dành riêng cho miền. Miền ở đây là Web. Các từ khóa (từ) và cú pháp được tạo cho Sinatra để giúp mọi người tạo các ứng dụng web dễ dàng và nhanh chóng.

Vào thời điểm mà cái gọi là các khung công tác “có ý kiến” để phát triển ứng dụng web như Ruby on Rails và Django đang cực kỳ phổ biến, Sinatra lại nắm bắt được phần cuối ngược lại của quang phổ. Trong khi Ruby on Rails và Django yêu cầu lập trình viên tuân theo một quy ước và cách thức cụ thể để thực hiện công việc (do đó, ngụ ý một đường cong học tập dốc và dài), Sinatra không đưa ra yêu cầu đó.

Về mặt khái niệm, Sinatra đơn giản hơn nhiều so với Rails và Djangos trên thế giới. Bạn có thể thiết lập và chạy ứng dụng web có thể tương tác với Arduino của bạn trong vòng vài phút.

Tôi sẽ chứng minh bằng một ví dụ. Đây là ứng dụng web tối thiểu Sinatra trông như thế nào (bây giờ chỉ cần đọc phần sau, không thực sự làm điều này trên máy tính của bạn vì có thể bạn chưa thiết lập điều kiện tiên quyết cho việc này):

Trong một tệp duy nhất, hãy gọi nó là my_app.rb, thêm văn bản sau:

request 'sinatra'get' / 'do "Hello, world!" end

Trên dòng lệnh, khởi động ứng dụng như sau:

ruby my_app.rb

Ứng dụng của bạn sẽ bắt đầu và bạn sẽ thấy dòng chữ này trong bảng điều khiển:

peter @ ubuntu-dev: ~ / arduino / sinatra_demo $ ruby my_app.rbPuma 2.8.1 bắt đầu… * Chủ đề tối thiểu: 0, chủ đề tối đa: 16 * Môi trường: phát triển * Nghe trên tcp: // localhost: 4567 == Sinatra / 1.4.4 đã bắt đầu phát triển vào năm 4567 với sự sao lưu từ Puma

Ứng dụng hiện đã sẵn sàng để nhận yêu cầu của khách hàng. Mở trình duyệt, trỏ đến https:// localhost: 4567 và đây là những gì bạn sẽ thấy (xem ảnh chụp màn hình đính kèm).

Đó là bốn dòng mã đơn giản trong một tệp. Ngược lại, Rails sẽ yêu cầu hơn một trăm tệp, được tạo đơn giản để đáp ứng các yêu cầu của khung. Đừng hiểu lầm tôi, tôi yêu Rails, nhưng thực sự thì sao?…

Vì vậy, Sinatra rất đơn giản và chạy nhanh. Tôi sẽ cho rằng bạn không biết gì về Ruby, Sinatra và triển khai ứng dụng lên Đám mây, vì vậy trong phần tiếp theo tôi sẽ hướng dẫn bạn từng bước từ con số 0 đến việc triển khai dịch vụ web Arduino của bạn lên Đám mây.

Bước 4: Thiết lập Máy phát triển của bạn

Sinatra dựa trên ngôn ngữ lập trình Ruby. Vì vậy, bạn cần cài đặt Ruby trước khi cài đặt Sinatra.

Bạn cũng sẽ cần cài đặt một máy chủ lưu trữ khóa-giá trị có tên là Redis. Hãy nghĩ về Redis như một cơ sở dữ liệu lưu trữ dữ liệu dựa trên một khóa. Bạn sử dụng khóa để truy xuất dữ liệu và nó được tối ưu hóa về tốc độ hơn là tính linh hoạt của cấu trúc dữ liệu mà cơ sở dữ liệu quan hệ truyền thống được thiết kế. Home Alert lưu trữ các tin nhắn của nó trong Redis.

Bước 5: Ruby trên Mac hoặc Linux

Nếu bạn đang sử dụng máy tính Mac hoặc Linux, tôi khuyên bạn nên sử dụng RVM để cài đặt và quản lý cài đặt Ruby của mình (RVM: Ruby Version Manager). Hướng dẫn cài đặt Ruby với RVM có trong trang này, hoặc chỉ cần sao chép và dán lệnh này vào trình bao của bạn:

curl -sSL https://get.rvm.io | bash -s ổn định - bụi

Ngồi xuống, thư giãn và đợi quá trình tải xuống, biên dịch và cài đặt RVM và Ruby hoàn tất.

Bước 6: Ruby trên Windows

Nếu bạn đang sử dụng Windows, tôi khuyên bạn nên làm theo hướng dẫn này trên trang web Ruby Installer cho Windows và sử dụng ứng dụng thiết lập.

Bước 7: Kiểm tra và đặt Ruby của bạn

Tại thời điểm viết bài, bản phát hành Ruby ổn định mới nhất là 2.1.1.p76. Bạn có thể kiểm tra phiên bản đã được cài đặt với RVM bằng cách nhập sau:

thông tin rvm

Nhiều thông tin về RVM và Ruby sẽ xuất hiện. Trong trường hợp của tôi, đây là phần Ruby:

ruby: thông dịch viên: "ruby" phiên bản: "2.1.1p76" ngày: "2014-02-24" nền tảng: "x86_64-linux" patchlevel: "2014-02-24 phiên bản 45161" full_version: "ruby 2.1.1p76 (2014 -02-24 bản sửa đổi 45161) [x86_64-linux]"

Tôi khuyên bạn cũng nên sử dụng Ruby 2.1.1, vì vậy nếu bạn thấy bất kỳ thứ gì cũ hơn thế, hãy nâng cấp như sau:

cài đặt rvm 2.1.1

Điều này sẽ cài đặt Ruby 2.1.1. Trang web dự án RVM chứa rất nhiều thông tin về RVM và cách quản lý cài đặt Ruby của bạn.

Bước 8: Cài đặt Sinatra (tất cả các Nền tảng)

Trong Ruby, mã được chia sẻ dưới dạng các gói được gọi là “đá quý”. Mã tạo nên Sinatra có thể được cài đặt trên máy tính của bạn dưới dạng một viên ngọc quý như sau:

gem cài sinatra

Dòng này sẽ tìm nạp tất cả mã và tài liệu và cài đặt nó trên máy tính của bạn.

Bước 9: Làm lại trên Mac hoặc Linux

Thiết lập Redis trên Mac hoặc Linux rất dễ dàng. Quá trình này được giải thích trên trang web Redis. Mở thiết bị đầu cuối shell và nhập các lệnh sau:

$ wget https://download.redis.io/releases/redis-2.8.7.tar…$ tar xzf redis-2.8.7.tar.gz $ cd redis-2.8.7 $ make

Chạy Redis bằng cách gõ:

$ src / redis-server

… Và bạn đã hoàn thành!

Bước 10: Làm lại trên Windows

Redis trên Windows chỉ được khuyến nghị để phát triển và bạn sẽ cần phải biên dịch nó bằng cách sử dụng môi trường phát triển Visual Studio Express miễn phí. Nó đòi hỏi một chút thời gian để làm cho nó chạy, nhưng nó hoạt động tốt và đáng để nỗ lực. Làm theo hướng dẫn trên trang Github của dự án. Tại đó, bạn cũng sẽ tìm thấy một liên kết đến trang Visual Studio Express.

Bước 11: Tạo ứng dụng dịch vụ web

Tạo ứng dụng dịch vụ web
Tạo ứng dụng dịch vụ web

Hãy xây dựng ứng dụng và chạy nó trên máy phát triển của bạn. Chúng tôi sẽ điều chỉnh bản phác thảo Arduino để kết nối với phiên bản này của ứng dụng trong khi chúng tôi kiểm tra nó. Khi chúng tôi hài lòng rằng mọi thứ đang hoạt động tốt, chúng tôi sẽ triển khai lên đám mây và cập nhật bản phác thảo để sử dụng phiên bản đám mây.

Đây là mã Ruby, tất cả nằm trong một tệp duy nhất có tên "web.rb" (mã này có sẵn trên Github).

Quan trọng: Tải xuống và đọc tệp PDF đính kèm, tệp này chứa các nhận xét được nhúng chi tiết (vui lòng thực hiện việc này trước khi bạn tiếp tục!).

Bây giờ bạn có thể dùng thử hệ thống Home Alert của mình. Trong bản phác thảo của bạn, hãy thay đổi hằng số WEBSITE và WEBPAGE để trỏ đến máy phát triển và số cổng cho máy chủ Sinatra phát triển của bạn. Trong trường hợp của tôi, tôi có một máy phát triển trên IP 172.16.115.136 và máy chủ Sinatra phát triển đang lắng nghe cổng 5000, vì vậy cài đặt phác thảo của tôi là:

#define HW_ID "123" #define WEBSITE “172.16.115.136:5000[#define WEBPAGE“/ get_message /"

Địa chỉ IP này chỉ có thể truy cập được cho các thiết bị trong mạng gia đình của tôi.

Cài đặt HW_ID đại diện cho “ID phần cứng”, tức là ID mà Arduino điều khiển DMD sẽ tự nhận dạng đối với ứng dụng Sinatra. Nó là một loại xác thực rất cơ bản. Ứng dụng web sẽ chuyển một thông báo đến Arduino yêu cầu nó dựa trên HW_ID đã cung cấp. Bạn có thể có nhiều thiết bị có cùng HW_ID, trong trường hợp đó, tất cả các thiết bị sẽ hiển thị cùng một thông báo. Nếu bạn muốn "quyền riêng tư", hãy chọn một ID có nhiều ký tự ngẫu nhiên mà người khác sẽ không thể đoán được. Ngoài ra, hãy cẩn thận, không có thông tin liên lạc nào được mã hóa.

Bây giờ, hãy tiếp tục và khởi động ứng dụng Sinatra của bạn, nhập điều này (giả sử bạn đang ở trong thư mục dự án Sinatra):

ruby web.rb

… Và bạn sẽ thấy một cái gì đó như thế này (một số chi tiết có thể khác nhau, miễn là điều này không gặp sự cố, bạn sẽ ổn):

10:42:18 web.1 | bắt đầu với pid 4911910: 42: 18 web.1 | Puma 2.8.1 bắt đầu… 10: 42: 18 web.1 | * Chủ đề tối thiểu: 0, chủ đề tối đa: 1610: 42: 18 web.1 | * Môi trường: phát triển10: 42: 18 web.1 | * Nghe trên tcp: //0.0.0.0: 5000

Trỏ trình duyệt web của bạn đến vị trí mà máy chủ đang lắng nghe và bạn sẽ thấy thông báo này (xem phần đính kèm thứ hai).

Tải bản phác thảo của bạn lên Arduino, đảm bảo rằng nó được kết nối với mạng cục bộ của bạn. Nếu mọi việc suôn sẻ, Arduino sẽ thăm dò dịch vụ web của bạn mỗi phút một lần. Cung cấp cho nó một thông báo để hiển thị: Trong trường mã HW, hãy nhập cùng một ID mà bạn đã đặt cho hằng số HW_ID trong bản phác thảo. Nhập bất kỳ thứ gì vào trường “Tin nhắn của bạn” và chọn “Buzz?” hộp kiểm.

Gửi, đợi một phút và thấy tin nhắn của bạn xuất hiện trong DMD!

Bước 12: Triển khai lên đám mây bằng Heroku

Hiện tại, Home Alert đang trong quá trình phát triển, hãy làm cho nó hoạt động trên Đám mây. Có vô số tùy chọn có sẵn để triển khai các ứng dụng web. Dựa trên phạm vi và độ phức tạp của Home Alert, tôi quyết định rằng việc thiết lập máy chủ riêng ảo của riêng mình là không đáng để cố gắng. Thay vào đó, tốt hơn là nên sử dụng một dịch vụ như Heroku, một máy chủ ứng dụng. Đối với quy mô của tôi, bậc miễn phí của Heroku là quá đủ. Ngay cả đối với thành phần Redis, tôi có thể chọn gói miễn phí từ một trong nhiều nhà cung cấp Redis làm việc với Heroku.

Tuy nhiên, vẫn còn một chút nỗ lực liên quan đến việc sửa đổi ứng dụng của tôi một chút để nó có thể tuân thủ các thông số kỹ thuật của Heroku. Thông tin chi tiết có ở đây, nhưng về cơ bản bạn sẽ cần thêm các tệp này vào dự án Sinatra của mình (tất cả các tệp tiếp theo có thể được tải xuống từ tài khoản Github của tôi):

* config.ru: Nó cho Heroku biết tệp nào chứa ứng dụng. Đây là nội dung:

yêu cầu './web'run Sinatra:: Ứng dụng

Dòng đầu tiên trỏ đến web.rb và dòng thứ hai thực sự chạy ứng dụng của bạn.

* Gemfile: nó chứa các Đá quý (gói mã ruby) mà ứng dụng yêu cầu. Heroku sẽ xem xét bên trong tệp này để tìm ra mã nào khác mà nó cần cài đặt để ứng dụng của bạn hoạt động. Một cách khác để xem Gemfile là chứa một danh sách các phụ thuộc cho dự án của bạn. Nếu không có bất kỳ phần phụ thuộc nào trong số này, ứng dụng của bạn sẽ không hoạt động. Dưới đây là những gì bên trong Gemfile cho ứng dụng này:

nguồn "https://rubygems.org" ruby "2.1.1" gem 'sinatra'gem' puma'gem ‘redis '

Đầu tiên, nó đặt kho nguồn của tất cả mã Gem là rubygems.org. Tiếp theo, nó yêu cầu phiên bản Ruby 2.1.1 được sử dụng để chạy ứng dụng. Sau đó, nó liệt kê các Đá quý cần thiết: Sinatra, Puma (một máy chủ ứng dụng web Ruby tuyệt vời) và Redis.

* Procfile: nó cho Heroku biết cách khởi động máy chủ của bạn. Chỉ có một dòng ở đây:

web: rackup -s puma -p $ PORT

Dòng này nói rằng “web” là loại dịch vụ duy nhất được yêu cầu (bạn có thể có những dịch vụ khác, như “worker”, để xử lý nền) và để bắt đầu dịch vụ Heroku phải sử dụng lệnh đứng sau “:”.

Bạn có thể mô phỏng những gì Heroku sẽ làm bằng cách làm theo trình tự này trên máy phát triển của bạn (chỉ nhập kiểm tra trước mũi tên; những gì sau mũi tên chỉ là mô tả của lệnh):

$> gem install Bundler -> installs Bundler, biết cách xử lý Gemfile. $> gói cài đặt -> Bundler xử lý Gemfile và cài đặt các phần phụ thuộc. $> rackup config.ru -> Rackup là một công cụ có thể xử lý tệp config.ru. Nó thường đi kèm với phiên bản Ruby mới hơn, nếu nó không cài đặt nó như sau: gem install rack.

Bước cuối cùng dẫn đến việc thực sự khởi chạy ứng dụng của bạn. Bạn sẽ thấy kết quả chính xác giống như khi bạn khởi động nó với ruby web.rb trước đó. Đó là cùng một ứng dụng đang chạy, chỉ có sự khác biệt là phương pháp thứ hai là cách Heroku khởi động nó.

Chúng tôi gần như đã sẵn sàng để triển khai ứng dụng này cho tài khoản Heroku của bạn. Nếu bạn chưa có, hãy tiếp tục và tạo một tài khoản ngay bây giờ. Sau đó, hãy làm theo hướng dẫn bắt đầu nhanh để thiết lập tài khoản và máy phát triển cục bộ của bạn, và đặc biệt là Heroku Toolbelt.

Heroku Toolbelt cài đặt ứng dụng khách dòng lệnh Heroku, Git (hệ thống quản lý mã nguồn mở) và Foreman (một công cụ Ruby giúp quản lý các ứng dụng dựa trên Procfile).

Sau khi bạn hoàn tất cài đặt Heroku Toolbelt theo hướng dẫn trên trang web Heroku, hãy làm theo các bước sau để triển khai ứng dụng của bạn (mọi thứ được nhập trong dòng lệnh, bên trong thư mục của ứng dụng):

$> đăng nhập heroku -> Đăng nhập vào Heroku qua dòng lệnh $> git init -> Khởi tạo kho lưu trữ Git cho ứng dụng của bạn $> git add. -> (chú ý dấu chấm!) Thêm tất cả các tệp trong thư mục hiện tại vào kho lưu trữ Git $> git commit -m “init” -> Cam kết các tệp này vào kho lưu trữ, với một thông báo mới $> tạo heroku -> Tạo mới ứng dụng trên Heroku. Heroku sẽ đặt tên ngẫu nhiên cho ứng dụng của bạn, chẳng hạn như “blazing-galaxy-997”. Ghi lại tên và URL để bạn có thể truy cập nó qua trình duyệt web của mình sau này. URL này sẽ giống như sau: “https://blazing-galaxy-997.herokuapp.com/“. Bạn cũng sẽ cần sao chép tên máy chủ (phần “blazing-galaxy-997.herokuapp.com”) của ứng dụng mới vào hằng số WEBSITE của bản phác thảo Arduino của bạn. Làm điều này ngay bây giờ để bạn không quên sau này. $> addons heroku: thêm rediscloud -> Thêm cấp miễn phí của dịch vụ Rediscloud Redis vào ứng dụng của bạn. Cài đặt cấu hình được tạo tự động và có sẵn cho ứng dụng của bạn. $> git push heroku master -> Triển khai mã của bạn cho Heroku. Thao tác này sẽ tự động chuyển mã, thiết lập mọi phụ thuộc vào Heroku và khởi động ứng dụng. Vào cuối quá trình, bạn sẽ thấy một cái gì đó như sau: “https://blazing-galaxy-997.herokuapp.com được triển khai cho Heroku”, có nghĩa là ứng dụng của bạn hiện đang hoạt động trên Đám mây công cộng! Xin chúc mừng!

Hãy tiếp tục, cho nó một vòng quay!

Bước 13: Kết hợp tất cả lại với nhau

Với ứng dụng web của bạn được triển khai, hãy tải bản phác thảo cập nhật lên Arduino (hãy nhớ rằng bạn đã cập nhật hằng số WEBSITE để trỏ đến phiên bản sản xuất của ứng dụng web).

Sử dụng trình duyệt của bạn để truy cập ứng dụng của bạn trên Heroku. Cũng giống như trong phần giới thiệu, hãy nhập ID phần cứng của bạn vào hộp văn bản đầu tiên, tin nhắn của bạn vào hộp thứ hai và chọn hộp kiểm để kích hoạt bộ rung.

Tin nhắn của bạn sẽ xuất hiện trên DMD khoảng một phút sau nếu mọi việc suôn sẻ!

Bước 14: Tiềm năng

Bạn có thể làm được nhiều việc hơn nữa với hệ thống Home Alert của mình…

Có phần cuối của Heroku có nghĩa là bạn có thể thêm rất nhiều logic có thể bổ sung chức năng tuyệt vời. Ví dụ: bạn có thể thêm khả năng cho ứng dụng để quản lý các thông báo lặp lại, xác nhận hoặc kiểm soát phần cứng thông báo bổ sung như đèn nhấp nháy, v.v. Bạn có thể mở rộng nó sang lãnh thổ tự động hóa gia đình và điều khiển đèn và cửa ra vào. Bạn có thể thêm nhiều DMD để hiển thị các thông báo khác nhau trong mỗi một hoặc một thông báo trong một màn hình lớn hơn kết hợp. Tôi chỉ đang làm xước bề mặt của những gì có thể xảy ra ở đây!

Thưởng thức!

Đề xuất: