IoT đang trở thành trào lưu phát triển ứng dụng ngày nay, đặc biệt sau khi Windows 10 ra mắt và hỗ trợ lập trình viên phát triển ứng dụng IoT trên nền tảng Windows IoT Core, đã mở ra thêm nhiều cơ hội phát triển hơn cho IoT.
Trong bài viết này mình sẽ đi vào chi tiết việc phát triển một ứng dụng IoT thực tế đó là điều khiển bo mạch Arduino từ một ứng dụng Universal Windows Platform trên laptop thông qua cổng kết nối USB. Các công cụ sử dụng trong bài viết này
- Bo mạch Arduino Uno
- Visual Studio 2015 chạy trên nền tảng Windows 10
- Arduino IDE phiên bản mới nhất
- Dây kết nối USB giữa bo mạch Arduino với máy tính và 1 chiếc đèn LED
Tạo project với Visual Studio 2015
Bạn tiến hành mở Visual Studio 2015 lên và tạo mới 1 Blank App (Universal Windows)
Tiếp theo, bạn hãy clone Windows Remote Arduino GitHub repository về máy tính của mình, hoặc tải về file .zip và giải nén vào 1 thư mục trên máy tính của mình.
Trong Solution Explorer, bạn click phải vào solution vừa tạo và chọn Add -> Existing Project.
Bạn tiến hành thêm lần lượt 3 project là Microsoft.Maker.Firmata, Microsoft.Maker.RemoteWiring vàMicrososoft.Maker.Serial nằm trong thư mục Microsoft.Maker.win10 vào.
Kết quả sau khi thêm 3 project
Kế tiếp, bạn tiến hành trỏ tham chiếu đến 3 project trên cho ứng dụng Universal Windows mà bạn đã tạo bằng cách click phải vào mục References -> Add Reference…
Một của sổ mới hiện lên, trong mục Projects -> Solution, bạn đánh dấu vào 3 ô tương ứng với 3 project cần trỏ tham chiếu đến.
Tiếp theo bạn thực hiện Rebuild lại Universal Windows project và thêm vào dòng sau trong thẻ <Capabilities> trong tập tin Package.appxmanifest để thêm vào tính năng kết nối qua cổng USB cho ứng dụng. Nếu double click vào tập tin này thì sẽ không tìm thấy được ô để chọn bật tính năng này lên, mà phải mở code để thêm vào bằng tay.
Cài đặt thiết bị
Bo mạch Arduino cần được chạy trên Firmata để giao tiếp với ứng dụng thông qua cổng USB, Bluetooth hay Wifi (trong bài viết này là qua cổng USB).
Windows Remote Library sử dụng Firmata protocol, mà trong Arduino được thực thi với StandardFirmata đã được đóng gói sẵn khi bạn cài đặt phần mềm Arduino. Bạn tiến hành tải StandardFirmata sketch vào bo mạch Arduino theo các bước sau:
- Kết nối bo mạch Arduino với máy tính bằng cáp USB
- Mở Arduino IDE đã cài đặt lên
- Chọn mẫu bo mạch Arduino tương ứng với bo mạch bạn đang sử dụng, trong trường hợp này làArduino/Genuino Uno.
- Chọn cổng kết nối đến bo mạch tương ứng
- Trong Arduino IDE, từ thanh menu bạn chọn Files -> Examples -> Firmata -> StandardFirmata để mở code cho StandardFirmata lên
- Nhấn nút “Upload” để tiến hành tải chương trình vào bo mạch Arduino
Bây giờ bo mạch Arduino của bạn sẽ chạy StandardFirmata suốt cho đến khi nào bạn tải một bản sketch mới vào bo mạch. Bây giờ bạn có thể ngắt kết nối bo mạch với máy tính nếu bạn muốn.
Phát triển ứng dụng
Chúng ta sẽ sử dụng Windows Remote Library để thực hiện việc bật – tắt đèn LED trên bo mạch Arduino.
Trong Universal Windows project mà bạn đã tạo, bạn mở tập tin code-behind MainPage.xaml.cs lên, chúng ta sẽ tiến hành tạo kết nối đến bo mạch bằng cách thêm vào các dòng code sau:
Lưu ý với bạn, trong hàm UsbSerial mình khải báo 2 tham số là VID và PID chính là các Id của cổng kết nối máy tính với Arduino. Bạn có thể tìm thấy thông tin này để điền vào cho chính xác bằng cách mở Control Panel trong Windows lên và chọn mục Device Manager.
Trong cửa số của Device Manager, bạn chọn mục Ports (COM & LPT) -> Arduino Uno (COM4) và nhấn double click để hiển thị thông tin của cổng này.
Cửa sổ thông tin hiện lên, bạn chuyển qua tab Details, trong mục Property bạn chọn Hardware Ids và khi đó các giá trị VID và PID sẽ hiện ra bên dưới trong phần Value.
Tiếp theo ta sẽ gọi callback function đến ConnectionEstablished event để thiết lập kết nối đến cổng USB.
Bạn mở file MainPage.xaml để tiến hành thiết kế giao diện cho ứng dụng. Để đơn giản, chúng ta sẽ tạo ra 2 nút, 1 nút để bật và 1 nút để tắt đèn LED.
Bây giờ chúng ta sẽ viết các hàm để thực hiện việc bật – tắt đèn LED khi người dùng nhấn vào nút On (để bật) và Off (để tắt). Và vị trí đèn LED được đặt ở pin thứ 13 trên bo mạch (1 chân cắm vào pin số 13, 1 chân cắm vào GND).
Ctrl + F5 để build và deploy ứng dụng vào máy tính của bạn đề bắt đầu chạy chương trình.
Và kết quả chạy thực tế ứng dụng điều khiển bật tắt đèn LED trên bo mạch Arduino từ máy tính.