Thiết lập máy chủ đám mây Arduino IoT của riêng bạn


Dương Phượng Vũ
10 tháng trước
Hữu ích 9 Chia sẻ Viết bình luận 0
Đã xem 4515

Nếu bạn đã có cơ hội chơi xung quanh với một số nền tảng phần cứng hỗ trợ Arduino mới như ESP8266 Wi-Fi SoC, bạn có thể đã sử dụng dịch vụ IoT trực tuyến cho dự án của mình. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách thiết lập dịch vụ trực tuyến của riêng bạn bằng cách thiết lập Máy chủ riêng ảo (VPS) và phần mềm máy chủ cho dự án Arduino IoT của bạn.

Ngoài việc thiết lập VPS của riêng bạn, chúng tôi sẽ chỉ cho bạn cách cài đặt một ví dụ đơn giản cho phép bạn điều khiển đèn LED, đèn, v.v., bằng cách sử dụng trình duyệt. Hình dưới đây cho thấy bất kỳ số lượng thiết bị nào có thể được kiểm soát trong thời gian thực bằng cách điều hướng đến VPS của riêng bạn bằng trình duyệt. VPS trực tuyến hoạt động như một proxy và cho phép bất kỳ số lượng người dùng nào có thể kiểm soát các thiết bị thông qua máy chủ trực tuyến.

Một số lợi ích của việc sử dụng máy chủ trực tuyến và vận hành nó như một proxy để định tuyến tin nhắn giữa người dùng và thiết bị là:

  • Cho phép người dùng trên một mạng để điều khiển các thiết bị trên mạng khác. Ví dụ: một thiết bị được kết nối với mạng gia đình có thể được điều khiển thông qua Điện thoại thông minh được kết nối với mạng di động.

  • Các thiết bị hoạt động như các máy khách mạng (TCP / IP), do đó không cần chuyển tiếp cổng bộ định tuyến hoặc các thủ thuật khác để có quyền truy cập vào các thiết bị thông qua máy chủ trực tuyến.

  • Các thiết bị đóng vai trò là máy khách mạng hoạt động ở chế độ ẩn, do đó cải thiện đáng kể tính bảo mật của thiết bị. Chúng tôi sẽ nhận được nhiều hơn vào bảo mật sau.

  • Các thiết bị nhỏ thường không có tài nguyên để cung cấp giao diện web trực tiếp. Máy chủ trực tuyến quản lý tất cả các công việc nặng nề trong việc cung cấp giao diện web cho các thiết bị, do đó giảm thiểu tối đa sự phức tạp của mã trong thiết bị.

Máy chủ riêng ảo

Thiết lập VPS của riêng bạn nghe có vẻ phức tạp và tốn kém, nhưng thực tế là việc thiết lập VPS rất dễ dàng và chi phí có thể tối thiểu. Có thể tìm thấy các dịch vụ VPS thấp tới 8 đô la một năm. Trang web yêu thích của tôi để mua VPS giá rẻ là lowendbox.com và một trong những nhà cung cấp VPS yêu thích của tôi là Secureragon, nơi bạn có thể nhận được hợp đồng thuê ba tháng với giá dưới 6 đô la và hợp đồng thuê hàng năm với giá 12 đô la.

Giới hạn bộ nhớ

Một hạn chế với VPS ngân sách là dung lượng bộ nhớ khả dụng. VPS ngân sách mà chúng tôi đang sử dụng trong bài viết này chỉ có 64Mbyte bộ nhớ, do đó hạn chế lựa chọn các giải pháp máy chủ IoT có thể được sử dụng. Giải pháp IoT mà chúng tôi sẽ sử dụng trong bài viết này là khung máy chủ ứng dụng bao gồm giao thức IoT, máy chủ web, ngôn ngữ kịch bản phía máy chủ và cơ sở dữ liệu trong một đơn vị. Gói phần mềm này có thể dễ dàng chạy trên VPS ngân sách và trong môi trường thử nghiệm của tôi, tôi có thể kết nối 10.000 thiết bị với máy chủ trực tuyến. Tôi đã thực hiện kiểm tra bằng cách sử dụng một số Máy chủ riêng ảo bổ sung, nơi tôi đã chạy một số thiết bị mô phỏng.

Linux

Một VPS ngân sách sẽ chạy Linux. Nếu bạn chưa bao giờ sử dụng Linux, bạn có thể nghĩ rằng nó không dành cho bạn; tuy nhiên, không có gì có thể hơn từ sự thật. VPS trực tuyến là điểm khởi đầu tốt nhất cho bất kỳ ai mới học dòng lệnh Linux bởi vì dù bạn làm gì với VPS, giao diện điều khiển VPS dựa trên web dễ sử dụng sẽ cho phép bạn khôi phục VPS về cấu hình ban đầu bằng một nút bấm. Vì lý do này, chơi xung quanh với VPS trực tuyến là một cách tuyệt vời để tìm hiểu dòng lệnh Linux. Nếu bạn đưa VPS Linux của mình vào trạng thái không thể khôi phục nó, hãy đăng nhập vào bảng điều khiển web VPS và nhấp vào nút cài đặt lại. Một VPS Linux mới sau đó sẽ có sẵn sau một đến hai phút và bạn có thể bắt đầu lại.

Video sau đây cho thấy cách thiết lập máy chủ Linux IoT trực tuyến.


Đăng nhập từ xa qua SSH

VPS trực tuyến cho phép bạn đăng nhập từ xa bằng cách sử dụng SSH (Secure Shell). Nếu máy tính của bạn đang chạy Windows, hãy tải xuống máy khách SSH Putty và bắt đầu thực thi từ bất kỳ thư mục nào. Máy tính Mac và Windows thường bao gồm một máy khách SSH dòng lệnh, do đó bạn chỉ cần nhập ssh vào một dòng lệnh trên Linux và Mac.

Khi bạn đăng ký dịch vụ VPS, chẳng hạn như VPS được bảo mật ngân sách (O64) , bạn sẽ nhận được email có hướng dẫn cách đăng nhập từ xa vào VPS bằng cách sử dụng SSH. Các hướng dẫn bao gồm địa chỉ IP của VPS mới của bạn và mật khẩu gốc (quản trị viên). Hình dưới đây cho thấy cách nhập địa chỉ IP trong Putty và cách đăng nhập với quyền người dùng trong cửa sổ dòng lệnh.

Tại thời điểm này, hãy thử một vài lệnh Linux. Đừng lo lắng về việc làm hỏng VPS vì một nút bấm đơn giản trong bảng điều khiển VPS sẽ cài đặt lại hệ điều hành Linux.

Cài đặt máy chủ IoT

Trước khi cài đặt phần mềm máy chủ, tôi khuyên bạn nên cài đặt lại hệ điều hành Linux bằng cách sử dụng bảng điều khiển VPS nếu bạn đã thực hiện bất kỳ sửa đổi nào đối với hệ điều hành Linux chạy trên VPS.

Để cài đặt phần mềm máy chủ và chương trình ví dụ, sao chép tất cả các mục sau và dán các lệnh vào cửa sổ bảng điều khiển SSH.

 source <(wget -q -O- http://makoserver.net/install/brokerX86/install.sh) 

Đoạn video ngắn sau đây cho thấy trình tự cài đặt hoàn chỉnh, từ đăng nhập vào VPS, cài đặt phần mềm và xác minh rằng nó hoạt động bằng cách sử dụng trình duyệt. 

Tải xuống và biên dịch Arduino Phác thảo

Ví dụ về Arduino đã được thử nghiệm trên WiFi ESP8266 tương thích với Arduino. Tuy nhiên, bạn sẽ có thể sử dụng bất kỳ Arduino nào chỉ với những thay đổi nhỏ đối với mã khởi động.

Tải xuống và giải nén Arduino Sketch trong bất kỳ thư mục nào: 
https://realtimelogic.com/doads/SMQ/SMQ-Arduino.zip

Video sau đây cho thấy cách biên dịch mã và tải mã lên ESP8266


Mở tệp phác thảo SMQ.ino trong Arduino IDE của bạn và cuộn xuống cho đến khi bạn thấy:

#error REMOVE THIS LINE AND SET THE TWO VARIABLES BELOW
static const char* ssid = "";
static const char* password = "";

Xóa dòng đầu tiên ở trên và đặt biến 'ssid' thành ID mạng không dây và 'mật khẩu' thành mật khẩu không dây của bạn.

Mở tệp led-example.cpp và cuộn xuống cho đến khi bạn thấy:

#define SIMPLEMQ_DOMAIN "http://simplemq.com"

Thay đổi tên miền "Simplemq.com" thành địa chỉ IP của VPS của bạn.

Biên dịch và tải tập tin phác thảo lên bảng Arduino của bạn. Nếu mọi thứ diễn ra như bình thường, thiết bị Arduino sẽ hiển thị trong giao diện web. Bạn truy cập vào giao diện web bằng cách sử dụng trình duyệt và điều hướng đến địa chỉ IP VPS của bạn.

Video sau đây cho thấy cách biên dịch bản phác thảo Arduino, cách tải bản phác thảo lên bảng Arduino và cách điều khiển bảng bằng trình duyệt web.

Trên đây là tất cả những gì bạn cần để thiết lập một máy chủ trực tuyến mà bạn có thể sử dụng để điều khiển các thiết bị Arduino của mình trong thời gian thực bằng cách sử dụng trình duyệt. Ứng dụng hoàn chỉnh có thể được sử dụng "nguyên trạng" để kiểm soát mọi thứ cung cấp trạng thái bật / tắt như đèn LED, đèn, động cơ, v.v. Ứng dụng hoàn chỉnh bao gồm hai phần: (1) Một ứng dụng web hỗ trợ JavaScript chạy trong trình duyệt và được kết nối với máy chủ trực tuyến. (2) mã Arduino chạy trên bo mạch Arduino và cũng được kết nối với máy chủ trực tuyến. Máy chủ trực tuyến hoạt động như một proxy chung và định tuyến tin nhắn giữa các thiết bị và trình duyệt.

Giao thức IoT được sử dụng trong ứng dụng này được gọi là SMQ , cung cấp giao tiếp một-một (thông qua proxy trực tuyến) bên cạnh mẫu xuất bản / đăng ký . Tính năng xuất bản / đăng ký (pub / sub) trong SMQ tương tự như các giao thức pub / sub khác như MQTT và AMQP. Một máy chủ proxy trực tuyến thường được gọi là một nhà môi giới khi sử dụng các giao thức pub / sub. Nhà môi giới chịu trách nhiệm định tuyến tin nhắn giữa nhà xuất bản và người đăng ký. Một lời giải thích chi tiết về cách ứng dụng JavaScript và mã Arduino hoạt động có thể được tìm thấy ở đây .

Sử dụng FreeRTOS

Môi trường Arduino rất tốt cho người mới bắt đầu, nhưng Arduino rất hạn chế về chức năng của nó. Thay vì sử dụng Arduino, bạn cũng có thể sử dụng môi trường FreeRTOS sẵn sàng được gọi là đặc biệt là open-rtos, nhưng đừng lo lắng, bạn không cần phải thực hiện cài đặt đặc biệt phức tạp. Thay vào đó, bạn có thể sử dụng môi trường được cấu hình sẵn và hoàn toàn sẵn sàng để sử dụng với IDE dựa trên web dễ sử dụng. IDE dựa trên web rất tốt cho người dùng Arduino đã quen với Arduino IDE dễ sử dụng.

Điều hướng đến RTL và tải xuống IDE ESP8266 miễn phí  . 

IDE, được thiết kế cho mục đích giáo dục, bao gồm một rtos đặc biệt được cấu hình sẵn đi kèm với một IDE mã nguồn C dựa trên web dễ sử dụng. IDE yêu cầu VmWare hoặc VirtualBox. Tôi thích VmWare hơn VirtualBox, vì tôi thấy nó dễ sử dụng hơn. Lưu ý rằng VmWare là miễn phí cho sử dụng phi thương mại.

Ảnh chụp màn hình bên dưới cho thấy máy ảo và IDE dựa trên web được kết nối với máy ảo. Lưu ý cách máy ảo đã sở hữu kết nối USB ESP8266. IDE dựa trên web phát hiện điều này và hiển thị ESP8266 là được kết nối và sẵn sàng để được flash với phần sụn mới.

Lưu ý rằng địa chỉ IP của máy ảo của bạn rất có thể sẽ khác với hình trên. Đảm bảo nhấp vào cửa sổ máy ảo cho địa chỉ IP. Nếu cửa sổ trống, bấm vào cửa sổ và sau đó bấm phím enter. Bạn phải nhập địa chỉ IP này trong trình duyệt của bạn để mở IDE web.


Hữu ích 9 Chia sẻ Viết bình luận 0
Đã xem 4515