Đây là một câu hỏi rất rộng, nhưng tôi sẽ cố gắng đưa ra một vài gợi ý chung, hy vọng có ích cho người khác, cũng như bạn (vì vậy, xin vui lòng chấp nhận lời xin lỗi của tôi nếu tôi đăng những điều mà bạn đã biết).
Nếu bạn đang hỏi về việc đọc cảm biến, thì đây là từ xa và không nhất thiết phải là IoT. Tôi đã mã hóa nhiều dự án trong đó một PC độc lập đọc và hiển thị một số phép đo.
Nếu bạn cũng muốn điều khiển phần cứng đính kèm, đây là SCADA . Một lần nữa, nó không nhất thiết phải được kết nối với internet.
Đây là sơ đồ của SCADA, mang lại cảm giác rất tốt cho IoT nói chung. Lưu ý rằng các PLC trên sơ đồ là các cảm biến và điều khiển của các thiết bị hỗ trợ IoT.
Bạn có thể yêu cầu khen thưởng phần cứng cho cảm biến & bộ điều khiển tại Khuyến nghị phần cứng .
Và, khi bạn có một số mã, bạn có thể nhận được lời khuyên cho các vấn đề tại Stack Overflow .
Nói chung, IoT cho ngành liên quan đến mô hình máy khách / máy chủ, với máy khách đo / kiểm soát các thiết bị phần cứng và báo cáo / nhận lệnh từ máy chủ. Máy chủ cũng thường có cơ sở dữ liệu và cho phép tạo báo cáo để quản lý và báo động (và có thể hướng dẫn phần cứng từ xa cấu hình lại / tắt máy dựa trên dữ liệu nhận được).
Phù! Đó là phần giới thiệu ngoài đường. Bây giờ để có được bàn tay của chúng tôi bẩn.
Nếu bạn muốn tìm hiểu kỹ về mã hóa, hãy nhìn vào các socket và hiểu sự khác biệt giữa TCP và UDP .
May mắn thay, các thập kỷ đã gói gọn hầu hết các công cụ phức tạp hơn trong các thư viện và có lẽ bạn nên đọc các dịch vụ RESTful tốt nhất. Có rất nhiều hướng dẫn, khóa học và video trực tuyến miễn phí, tùy thuộc vào ngôn ngữ của bạn; C là một ngôn ngữ nhúng truyền thống, với một số sử dụng C ++, nhưng tất nhiên, sử dụng bất cứ thứ gì bạn biết / cảm thấy thoải mái. Python cực kỳ phổ biến và đơn giản để học, cũng như là ngôn ngữ được đề xuất cho Raspberry Pi.
Cá nhân, tôi thích các ngôn ngữ được biên dịch để diễn giải, vì việc loại bỏ các lỗi dễ dàng hơn, nhưng sự lựa chọn hoàn toàn phụ thuộc vào bạn. Chỉ cần đảm bảo rằng nó có hỗ trợ tốt để truy cập các thiết bị ngoại vi qua USB, Ethernet và - vẫn cực kỳ phổ biến trong công nghiệp - cổng nối tiếp.
Đối với phía máy chủ, 90% + máy chủ của thế giới vẫn đang chạy trên PHP. Tuy nhiên, có một sự gia tăng trong việc sử dụng NodeJS, chủ yếu từ những người viết mã ứng dụng trình duyệt, hiện chỉ có thể được thực hiện bằng JavaScript và không muốn học hai ngôn ngữ. Tôi không khuyên bạn nên phát triển ứng dụng IoT dựa trên trình duyệt, vì các hạn chế về mã trình duyệt truy cập hệ thống tệp và thiết bị ngoại vi (mặc dù, tôi sẽ đề cập đến các ứng dụng như Cordova , nếu bạn muốn phát triển cho điện thoại thông minh).
Để bắt đầu, tôi muốn giới thiệu Raspberry Pi (mã hóa bằng Python hoặc C).
Và tôi * đánh giá cao * đề nghị một chiếc mũ cảm biến. Đây chỉ là một ví dụ, nhưng nó không đắt tiền và chứa
- Con quay hồi chuyển - cảm biến tốc độ góc: +/- 245/500 / 2000dps Gia tốc kế
- Cảm biến gia tốc tuyến tính: +/- 2/4/8/16 g
- Từ kế - Cảm biến từ: +/- 4/8/12/16
- Áp kế Gauss: Phạm vi tuyệt đối 260 - 1260 hPa (độ chính xác phụ thuộc vào nhiệt độ và áp suất, +/- 0,1 hPa trong điều kiện bình thường)
- Cảm biến nhiệt độ (Nhiệt độ chính xác đến +/- 2 degC trong khoảng 0-65 degC)
- Cảm biến độ ẩm tương đối (chính xác đến +/- 4,5% trong phạm vi 20-80% rH, chính xác đến +/- 0,5 degC trong phạm vi 15-40 degC)
- Màn hình ma trận LED 8x8 RGB
- Cần điều khiển 5 nút nhỏ
Điều đó sẽ cho phép bạn thu thập một số dữ liệu và báo cáo nó đến máy chủ của bạn. Bạn có thể tìm thấy một dịch vụ trực tuyến miễn phí để nhận và hiển thị dữ liệu của mình. Tôi đã thấy một số trên trang web SO khác, nhưng quên ở đâu.
Nhưng, bạn có thể muốn mã máy chủ của riêng bạn. Tôi muốn giới thiệu PHP là ngôn ngữ lập trình. Đối với Linux, bạn được cung cấp LAMP (Linux, Apache, Mysql & PHP). Đối với Windows, bạn phải cài đặt WAMP (Windows, v.v.).
Bạn có thể chọn của bạn. Tôi đã sử dụng XAMPP trong các ứng dụng công nghiệp trong hơn một thập kỷ. Bạn không có sử dụng Mysql, Sqlite có thể phục vụ chỉ là tốt (shaless cắm cho câu hỏi SO riêng của tôi về 6 năm trước, “ Sqlite hoặc MySql? Làm thế nào để quyết định? “). Bạn cũng sẽ phải tìm hiểu về CRUD .
Dựa trên dữ liệu nhận được từ máy khách / cảm biến, bạn có thể muốn gửi lại lệnh, thậm chí chỉ đơn giản (hiển thị: "nhiệt độ quá cao", có thể chuyển thành đóng van trong hệ thống công nghiệp).
Bạn có thể muốn tăng báo động trong thời gian thực (gửi email nói rằng nhiệt độ quá cao).
Và, bạn cũng có thể muốn nghĩ về việc tạo báo cáo. Bắt đầu với một bảng hiển thị dữ liệu nhận được. Việc xem xét một biểu đồ, hoặc một cái gì đó fancier. Thêm tùy chọn để xuất sang Giá trị phân tách bằng dấu phẩy (CSV) cho phép người dùng cuối nhập dữ liệu vào bảng tính để phân tích và thao tác thêm.
Nếu bạn làm quyết định rằng bạn muốn báo cáo ưa thích, bạn có thể làm điều đó trong PHP, nhưng, sau một vài thập kỷ mà bây giờ tôi đã chuyển sang làm phần lớn các mặt hàng khác báo cáo công cụ, trong trình duyệt.
Đối với các nguyên tắc chung, hãy tìm hiểu tổng quan về Ứng dụng Trang đơn và AJAX . Cá nhân tôi đã nghiên cứu rất nhiều và chọn AngularJS của Google làm ngôn ngữ lập trình của tôi (có rất nhiều hướng dẫn và hỗ trợ tuyệt vời), nhưng bạn có thể tự do sử dụng JS, Jquery, v.v.
Nếu bạn cũng quyết định mã hóa công cụ trình duyệt và bạn cũng có thể sử dụng NodeJ ở phía máy chủ, do đó bạn chỉ phải học một ngôn ngữ lập trình mới.
Quá nhiều sự lựa chọn? Lấy làm tiếc :-(
Tôi hy vọng rằng điều này đã cho bạn một số lời khuyên, nhưng hãy thoải mái đặt câu hỏi, và cho tôi biết nếu có bất kỳ lời khuyên chung nào bị thiếu ở đây.