Ứng dụng công nghệ internet of things trong thu thập và đánh giá nhiệt độ, độ ẩm môi trường

84 1.5K 14
Ứng dụng công nghệ internet of things trong thu thập và đánh giá nhiệt độ, độ ẩm môi trường

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

NHIỆM VỤ ĐỒ ÁN Đề tài Ứng dụng công nghệ Internet of Things thu thập đánh giá nhiệt độ, độ ẩm môi trường tập trung vào nội dung sau: - Giới thiệu công nghệ Internet of Things (IoT): Kiến trúc IoT, Các công nghệ truyền thông IoT - Tìm hiểu cấu trúc chương trình C cho ESP8266 Arduino IDE - Tìm hiểu trình xây dựng ứng dụng IoT iot-playground - Tìm hiểu Cảm biến nhiệt độ, độ ẩm DHT22, Module Wifi ESP 8266, Module nguồn LM2596 - Ứng dụng công nghệ IoT xây dựng giao diện giám sát Web theo thời gian thực, kèm theo cảnh báo nhiệt độ, độ ẩm vượt ngưỡng LỜI CẢM ƠN Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới thầy cô giáo trường Đại học Công nghệ Thông tin Truyền thông thầy cô giáo Bộ môn Công nghệ Điện tử, Khoa Công nghệ Điện tử Truyền thông tận tình giảng dạy, truyền đạt cho em kiến thức, kinh nghiệm quý báu suốt thời gian qua Đặc biệt em xin gửi lời cảm ơn đến thầy giáo Thạc sĩ Nguyễn Thanh Tùng tận tình giúp đỡ, trực tiếp bảo, hướng dẫn em suốt trình làm báo cáo Trong thời gian làm việc với thầy, cô, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà học tập tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, điều cần thiết cho em trình học công tác sau Sau xin gửi lời cảm ơn chân thành tới gia đình, bạn bè động viên, đóng góp ý kiến giúp đỡ trình học tâp, nghiên cứu hoàn thành báo cáo Thái nguyên, Tháng 06 Năm 2016 SINH VIÊN THỰC HIỆN Ngô Thị Quỳnh Ánh LỜI CAM ĐOAN Tôi xin cam đoan: Những nội dung đồ án thực hướng dẫn thầy giáo Thạc sĩ Nguyễn Thanh Tùng nghiên cứu Internet, sách báo, tài liệu nước có liên quan, không chép hay sử dụng làm khác Mọi tham khảo dùng đồ án trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố Tôi xin chịu hoàn toàn trách nhiệm lời cam đoan trước thầy cô nhà trường Thái nguyên, Tháng 06 Năm 2016 SINH VIÊN THỰC HIỆN Ngô Thị Quỳnh Ánh MỤC LỤC NHIỆM VỤ ĐỒ ÁN LỜI CẢM ƠN .2 LỜI CAM ĐOAN MỤC LỤC DANH MỤC HÌNH ẢNH LỜI NÓI ĐẦU CHƯƠNG TỔNG QUAN 1.1 Tình hình nghiên cứu thuộc lĩnh vực đề tài 1.1.1 Trên giới 1.1.2 Tình hình nước .12 1.2 Tính cấp thiết đề tài 14 1.3 Phạm vi nghiên cứu đề tài 15 1.4 Mục tiêu đề tài 15 CHƯƠNG GIỚI THIỆU VỀ CÔNG NGHỆ INTERNET OF THINGS 16 2.1 Tổng quan Internet of Things 16 2.1.1 Giới thiệu mô hình Internet of Things (IoT) 16 2.1.2 Các công nghệ thành phần .20 2.1.3 Cấu trúc mạng mở rộng 30 2.1.4 Các mô hình ứng dụng IoT 32 2.2 Kiến trúc tham chiếu IoT 36 2.2.1 Tổng quan 36 2.2.2 Phân loại thiết bị IoT phương thức kết nối internet 37 2.2.3 Các yêu cầu kiến trúc tham chiếu cho IoT 38 2.2.4 Mô hình tham chiếu IoT 38 2.3 Giới thiệu điện toán đám mây .42 2.3.1 Giới thiệu chung 42 2.3.2 Các đặc điểm 43 2.4 Các công nghệ truyền thông IoT 45 2.4.1 Radio Frequency Identification (RFID) 45 2.4.2 Bluetooth 46 2.4.3 Zigbee 47 2.4.4 Wifi 51 2.4.5 RF Links 53 2.4.6 Mạng di động: Internet di động (Cellular Networks: The Mobile Internet) .54 2.4.7 Truyền thông có dây (Wired Communication) 54 2.4.8 Lựa chọn công nghệ truyền thông cho IoT .55 CHƯƠNG PHÂN TÍCH BÀI TOÁN 57 3.1 Yêu cầu toán 57 3.2 Giải pháp thiết kế 57 3.2.1 Sơ đồ khối 57 3.2.2 Nguyên tắc hoạt động hệ thống 57 3.3 Lựa chọn linh kiện 58 3.3.1 Cảm biến nhiệt độ độ ẩm DHT22 58 3.3.2 Module wifi ESP8266 60 3.3.3 Khối nguồn LM2596 61 CHƯƠNG NGÔN NGỮ LẬP TRÌNH PHẦN MỀM PHỤ TRỢ .63 4.1 Giới thiệu môi trường lập trình Arduino IDE 63 4.2 Cấu trúc chương trình lập trình Arduino 65 4.3 Một số ví dụ lập trình ứng dụng 66 4.3.1 Lập trình Điều khiển led 66 4.3.2 Lập trình gửi liệu cổng truyền thông nối tiếp 67 4.4 Lập trình cho ESP8266 Arduino IDE 68 4.4.1 Cấu hình cho Arduino IDE .68 4.4.2 Tập lệnh AT giao tiếp với Module ESP8266 .69 CHƯƠNG THỰC THI THIẾT KẾ 71 5.1 Thiết kế phần cứng 71 5.2 Thiết kế phần mềm .71 5.2.1 Lưu đồ thuật toán .71 5.2.2 Server EasyIoT Cloud Beta cách kết nối với phần cứng 72 5.3 Một số hình ảnh sản phầm 75 KẾT LUẬN HƯỚNG PHÁT TRIỂN 77 TÀI LIỆU THAM KHẢO 78 PHỤ LỤC 79 DANH MỤC HÌNH ẢNH Hình 2.1 Mô hình IoT .16 Hình 2.2 Mô hình công nghệ thành phần IoT 20 Hình 2.3 Mô hình hệ thống nhúng giám sát điều khiển từ xa 20 Hình 2.4 Mô hình Ubiquitous computing 21 Hình 2.5 Xu hướng phát triển Ubiquitous computing 22 Hình 2.6 So sánh Mark Weiser thực ảo Ubiquitous Computing 24 Hình 2.7 Mô hình hệ thống mạng thông tin di động tế bào 25 Hình 2.8 Mô hình đo lưu lượng nước lũ từ xa 26 Hình 2.9 Mô hình mạng cảm biến chuyển tiếp thông tin đến trạm gốc 27 Hình 2.10 Mô hình Mobile Computing 28 Hình 2.11 Mô hình Computing Netwworking 29 Hình 2.12 Mô hình mạng mở rộng 31 Hình 2.13 Mô hình TCP/IP .32 Hình 2.14 Kiến trúc phần cứng hai đối tượng thông minh trang bị loại thiết bị truyền thông khác .35 Hình 2.15 Cấu phần IoT .36 Hình 2.16 Hai mô hình kết nối thiết bị IoT 38 Hình 2.17 Mô hình tham chiếu IoT 39 Hình 2.18 Mô hình điện toán đám mây .43 Hình 2.19 Cơ chế hoạt động thẻ RFID 45 Hình 2.20 Một loại thẻ chip RFID phổ biến 45 Hình 2.21 Hình ảnh module Bluetooth HC05 46 Hình 2.22 Mô hình mạng Zigbee 49 Hình 2.23 Cấu trúc Zigbee 50 Hình 2.24 Mô hình thu phát song Wifi 52 Hình 2.25 Phân loại tần số 53 Hình 2.26 Module GPRS 54 Hình 2.27 Cổng kết nối Ethernet .55 Hình 3.1 Sơ đồ khối hệ thống .57 Hình 3.2 Cảm biến nhiệt độ độ ẩm DHT22 .58 Hình 3.3 Gửi tín hiệu start 59 Hình 3.4 Đọc bit 59 Hình 3.5 Đọc bit 60 Hinh 3.6 Module wifi ESP8266 60 Hình 3.7 Sơ đồ nguyên lý khối nguồn LM2596 61 Hình 3.8 Cầu trúc bên LM2596 .62 Hình 3.9 Module LM2596 62 Hình 4.1 Link download phần mềm Arduino .63 Hình 4.2 Cài đặt Arduino IDE 63 Hình 4.3 Giao diện lập trình Arduino 64 Hình 4.4 Chức Menu 64 Hình 4.5 Mở ứng dụng mẫu Arduino 65 Hình 4.6 Ví dụ điều khiển led 66 Hình 4.7 Kết thu hình Serial .67 Hình 4.8 Chọn Board 68 Hình 4.9 Install ESP8266 vào Arduino IDE 68 Hình 5.1 Sơ đồ nguyên lý 71 Hình 5.2 Lưu đồ thuật toán phần cứng 71 Hình 5.3 Lưu đồ thuật toán server 72 Hình 5.4 Giao diện iot-playground 73 Hình 5.5 Cửa sổ Sign Up 73 Hình 5.6 Đăng nhập tài khoản vào server 73 Hình 5.7 Cửa sổ server 74 Hình 5.8 Cửa sổ chức server 74 Hình 5.9 Thư mục Modules 74 Hình 5.10 Khai báo tên module .75 Hinh 5.11 Thư mục User info 75 Hình 5.12 Hình ảnh thực tế phần cứng sản phẩm (node cảm biến) 75 Hinh 5.13 Dữ liệu thu server .76 Hinh 5.14 Dữ liệu dạng đồ thị thời gian thực 76 Hinh 5.15 Gửi Email cảnh báo 76 LỜI NÓI ĐẦU Ngày khoa học công nghệ ngày phát triển, người ngày chế tạo nhiều vật dụng thông minh hơn, đại Từ tối ưu hóa nhu cầu người cách dễ dàng Mỗi giai đoạn phát triển lịch sử giới gắn liền với cách mạng khoa học kĩ thuật.Và ngày nay, cách mạng Internet of Things tạo nên thay đổi đáng kể cho sống người tương lai Internet of Things ứng dụng vào nhiều mặt sống Ứng dụng công nghiệp, nông nghiệp, giáo dục , y tế… Đặc biệt ứng dụng việc giám sát thay đổi môi trường, việc thu thập đánh giá nhiệt độ độ ẩm môi trường phần đó.Việc giám sát nhiệt độ, độ ẩm môi trường thông qua internet điều mang tính ứng dụng cao Nhiệt độ, độ ẩm đại lượng vật lý quan tâm nhiều có vai trò định nhiều tính chất vật chất Vì đề tài: Ứng dụng công nghệ Internet of Things thu thập đánh giá nhiệt độ, độ ẩm môi trường đảm bảo tính cấp thiết, quan trọng mà xã hội phát triển đặt Đồ án gồm phần với chương cụ thể sau: Phần thứ nhất: Cơ sở lý thuyết, tập trung giới thiệu Internet of Things, tầm quan trọng, tính tương lai phát triển, kiến trúc ứng dụng IoT, công nghệ truyền thông sử dụng IoT Phần gồm chương: Chương Tổng quan Chương Giới thiệu Công nghệ Internet of Things Phần thứ hai: Tập trung vào thiết kế ứng dụng công nghệ IoT xây dựng giao diện giám sát Web theo thời gian thực, kèm theo cảnh báo nhiệt độ, độ ẩm vượt ngưỡng Phần gồm chương: Chương Phân tích toán Chương Ngôn ngữ lập trình phần mềm phụ trợ Chương Thực thi thiết kế CHƯƠNG TỔNG QUAN 1.1 Tình hình nghiên cứu thuộc lĩnh vực đề tài Mỗi giai đoạn phát triển lịch sử giới gắn liền với cách mạng khoa học kĩ thuật.Và ngày nay, cách mạng Internet of Things tạo nên thay đổi đáng kể cho sống người tương lai Với phát triển Internet, smartphone đặc biệt thiết bị cảm biến, Internet of Things (IoT) trở thành xu hướng giới IoT định nghĩa vật dụng có khả kết nối Internet Bạn vào nhà, mở khóa cửa, đèn tự động sáng chỗ bạn đứng, điều hòa tự động điều chỉnh nhiệt độ, nhạc tự động bật để chào đón bạn… điều có phim khoa học viễn tưởng, dần trở thành thực với công nghệ IoT Việc giám sát nhiệt độ, độ ẩm môi trường vấn đề quan trọng ngành công nghiệp nông nghiệp, thật tuyệt vời nơi đâu lúc bạn có internet bạn đề làm điều Công nghệ Internet of Things khiến điều trở lên dễ dàng Nhiệt độ, độ ẩm đại lượng vật lý quan tâm nhiều có vai trò định nhiều tính chất vật chất Một đặc điểm nhiệt độ làm thay đổi liên tục đại lượng chịu ảnh hưởng nó, ví dụ áp suất, thể tích chất khí Nó yếu tố ảnh hưởng lớn đến người tất sống trái đất Ngày công nghiệp phát triển mạnh, sản phẩm tạo ngày phong phú nhu cầu lưu trữ hàng hóa nhà kho lớn.Việc kiểm soát nhiệt độ, độ ẩm bảo quản, lưu trữ sản phảm công – nông nghiệp nhà kho quan trọng Cũng giống vậy, phòng thí nghiệm bệnh viện, nhà kính trồng cảnh, khu sản xuất rau sạch…việc đảm bảo nhiệt độ, độ ẩm yếu tố quan trọng đến đến chất lượng sản phẩm 1.1.1.Trên giới Thế giới chuyển mạnh mẽ trước xu "Internet of Things" (IoT) Tới năm 2021, dự kiến có 28 tỉ thiết bị kết nối có 15 tỉ thiết bị kết nối IoT Theo báo cáo Ericsson Mobility Report, tới năm 2021, dự kiến có 28 tỉ thiết bị kết nối có 15 tỉ thiết bị kết nối IoT bao gồm thiết bị M2M (machine-to9 machine) đồng hồ đo thông minh, cảm biến đường, địa điểm bán lẻ, thiết bị điện tử tiêu dùng ti vi, đầu DVR, thiết bị đeo 13 tỉ lại điện thoại di động, máy tính xách tay PC, máy tính bảng IDC dự kiến năm 2019, tòan cầu chi 1.300 tỉ đô la Mỹ cho IoT Tới năm 2020, theo dự đoán Gartner giá trị gia tăng IoT mang lại 1.900 tỉ đô la Mỹ theo McKinsey, tới năm 2025 IoT đóng góp vào kinh tế toàn cầu 11.000 tỉ đô la Mỹ Tới năm 2021, dự kiến số thuê bao lên tới 9,1 tỉ Số thuê bao cao số dân người sở hữu nhiều thiết bị.Trong kết nối IoT vậy, có bao gồm có đăng ký thuê bao SIM/eSIM gắn thiết bị thiết bị điện tử tiêu dùng không cần dùng SIM (Non-SIM) IoT diễn cách mạnh mẽ 50% doanh nghiệp bắt đầu triển khai dự án IoT IoT mang lại hội doanh thu cho nhiều ngành giải pháp bắt đầu thương mại hóa với tốc độ nhanh Ngành dịch vụ tiện ích, giao thông, tòa nhà thông minh ngành bán lẻ ngành đầu việc ứng dụng IoT Tháng vừa qua IBM giới thiệu công cụ phát triển mã nguồn mở gọi Quarks Công cụ cho giúp nhà sản xuất nhà lập trình phát triển ứng dụng hiệu hơn, dựa liệu từ cảm biến thiết bị Internet of Things (IoT) Ứng dụng Quarks: Thực chất, Quarks dựa tảng sản phẩm IBM Streams, công cụ doanh nghiệp giúp xử lý lượng lớn liệu trực tiếp Nhưng Quarks khác biệt chỗ, thiết kế từ đầu để cung cấp cho nhà sản xuất nhà lập trình công cụ mã nguồn mở, cho việc xây dựng ứng dụng dựa thiết bị kết nối Ý tưởng biện pháp để họ tận dụng lợi để xử lý liệu trực tiếp từ thiết bị IoT theo cách đơn giản hiệu Ví dụ, bạn theo dõi sức khỏe bệnh nhân tiểu đường với thiết bị đeo người, nhân viên làm việc mỏ than với mũ bảo hiểm có gắn cảm biến Mỗi tình liên quan đến việc giám sát liệu cảm biến thu nhận được, sau truy cập truyền liệu theo thời gian thực tới người hay thiết bị cần thiết Ví dụ, cảm biến mũ bảo hiểm người thợ mỏ phát tín hiệu cảnh báo điều kiện không an toàn, họ cần biết Sẽ có độ 10 Đến gửi địa websever mà cần lấy liệu GET / HTTP/1.0 Module trả SEND OK sau module trả loạt liệu module nhận từ web sever (Chuỗi json: JavaScript Object Notation) , phân tích chuỗi json để lấy liệu cần thiết 70 CHƯƠNG THỰC THI THIẾT KẾ 5.1 Thiết kế phần cứng Hình 5.1 Sơ đồ nguyên lý Trongđồ nguyên lý gồm có linh kiện ESP8266, DHT22 LM2596 Chân V_out LM2596 nối với chân 1(VDD) cuả DHT22 chân VCC ESP8266 để cung cấp nguồn phù hợp cho hệ thống hoạt động Chân 2(DATA) DHT22 nối với chân GPIO2 ESP8266 gửi liệu cho ESP8266 xử lý Chân GND LM2596 nối với đất DHT22 ESP8266 5.2 Thiết kế phần mềm (Code chương trình phần phụ lục) 5.2.1 Lưu đồ thuật toán Hình 5.2 Lưu đồ thuật toán phần cứng 71 Giải thích lưu đồ thuật toán phần cứng: Hệ thống bắt đầu hoạt động tiến hành việc khởi tạo thư viện cho ESP8266, DHT22, IoTCloud… ESP8266 hoạt động chế độ TCP Client kết nối tới điểm truy cập internet Cảm biến nhiệt độ độ ẩm DHT22 đo nhiệt độ, độ ẩm từ môi trường gửi liệu cho ESP8266 xử lý để ESP8266 gửi liệu lên server Hình 5.3 Lưu đồ thuật toán server Giải thích lưu đồ thuật toán server: Hệ thống bắt đầu hoạt động tiến hành việc khởi tạo giao diện sau nhận liệu từ node cảm biến gửi Tiến hành hiển thị liệu lên giao diện đồng thời kiểm tra liệu xem có vượt ngưỡng cấu hình trước hay không, có tiến hành gửi email cảnh báo không quay nhận liệu tiếp 5.2.2 Server EasyIoT Cloud Beta cách kết nối với phần cứng Server EasyIoT Beta server miễn phí hỗ trợ người dùng phát triển ứng dụng công nghệ Internet of Things Server phần trang wed iot-playground.com( trang wed hỗ trợ xây dựng phát triển ứng dựng công nghệ Internet of Things) Trong trang wed iot-playground thư mục EASYIOT CLOUD, chứa mục BULD gồm ví dụ nhỏ Internet of Things, mục STORE giúp lựa chọn linh kiện, mục COMMUNITY FORUM nơi chia sẻ hiểu biết tìm giúp đỡ từ người khác Mục DOWNLOAD cho phép tải 72 thư viện cần dùng thứ liên quan cuối mục BLOG nơi ta tìm thấy số viết chia sẻ sản phẩm liên quan đến Internet of Things Hình 5.4 Giao diện iot-playground Để sử dụng Server EasyIoT Beta kết nối với phần cứng Đầu tiên ta phải tạo tài khoản server cách truy cập vào trang wed iot-playground.com  chọn EASYIOT CLOUD  chọn Sign Up Sau điền đầy đủ thông tin nhấn Submit Hình 5.5 Cửa sổ Sign Up Sau có tài khoản ta đăng nhập vào server tài khoản đăng kí Hình 5.6 Đăng nhập tài khoản vào server 73 Sau đăng nhập có cửa sổ sau ra: Hình 5.7 Cửa sổ server Chọn Configure cửa sổ ta chọn Modules Hình 5.8 Cửa sổ chức server Tiếp tục chọn Add Module Hình 5.9 Thư mục Modules điền tên module mà muốn tạo vào mục name nhấn Save module 74 Hình 5.10 Khai báo tên module Nhấn Back để quay lại, sau vào mục User info Trong mục ta thấy có Instance Id, thông số giúp kết nối với phần cứng (node cảm biến) Hinh 5.11 Thư mục User info 5.3 Một số hình ảnh sản phầm Hình 5.12 Hình ảnh thực tế phần cứng sản phẩm (node cảm biến) 75 Hinh 5.13 Dữ liệu thu server Hinh 5.14 Dữ liệu dạng đồ thị thời gian thực Hinh 5.15 Gửi Email cảnh báo 76 KẾT LUẬN HƯỚNG PHÁT TRIỂN Báo cáo thực yêu cầu đặt đề tài vấn đề tìm hiểu công nghệ Internet of Things, xu hướng phát triển tương lai, đưa khái niệm, mô hình, kiến trúc IoT với nội dung chính: - Tìm hiểu cấu trúc chương trình C cho ESP8266 Arduino IDE - Tìm hiểu trình xây dựng ứng dụng IoT iot-playground - Tìm hiểu Cảm biến nhiệt độ, độ ẩm DHT22, Module Wifi ESP 8266, Module nguồn LM2596 - Ứng dụng công nghệ IoT xây dựng giao diện giám sát Web theo thời gian thực, kèm theo cảnh báo nhiệt độ, độ ẩm vượt ngưỡng Sản phẩm phát triển thêm với các tính như: nhỏ gọn, ưu việt, tối ưu hơn, đảm bảo chất lượng, tính xác, tính ổn định, trì tự động kết nối mạng có yêu cầu Tích hợp thêm nhiều chức khác thêm tính giám sát chất lượng khí môi trường, thực công việc cụ thể khác cài đặt nhiệt độ, độ ẩm ngưỡng tưới tiêu nông nghiệp… Thêm nhiều node cảm biến sản phẩm, xây dựng thành mạng cảm biến để thu thập, giám sát cảnh báo diện rộng, tăng tính khách quan đánh giá nhiệt độ, độ ẩm môi trường Bổ sung kết nối không dây khác RF, Bluetooth,… để giám sát, cảnh báo, thực thi công việc thiết bị cầm tay (ví dụ: Smartphone, tay phát RF…) Phát triển thêm kết hợp với Solar cell để hệ thống làm việc độc lập với lượng sẵn có từ tự nhiên Sản phẩm thu thập đánh giá nhiệt độ độ ẩm môi trường ứng dụng thực tiễn nhà thông minh, áp dụng nông nghiệp trang trại cần đảm bảo nhiệt độ, độ ẩm (trang trại chăn nuôi gà, trồng nấm, vườn ươm cây, lò ấm trứng…), ứng dụng công nghiệp để đảm bảo tính xác sản xuất Sản phẩm áp dụng giám sát, quan trắc, thời tiết môi trường… Dựa vào biến đối nhiệt độ, độ ẩm môi trường theo thời gian để có dự báo biện pháp phù hợp với khu vực cần khảo sát, thực nghiệm 77 TÀI LIỆU THAM KHẢO [1] Charalampos Doukas, Building Internet of Things with the Arduino, 2012 [2] Cuno Pfister, Getting Started with the Internet of ThingsPaperback, 2011 [3] http://www.buildinginternetofthings.com/ [4] https://en.wikipedia.org/wiki/Internet_of_Things [5] http://iot-playground.com/ [6] Kiều Xuân Thực, Vũ Thị Thu Hương Vũ Trung Kiên, 2008 Vi điều khiển cấu trúc lập trình ứng dụng Nhà xuất Giáo dục Hà Nội 199 trang [7] Nguyễn Ngọc Cương, Nguyễn Đình Nghĩa, Đỗ Quốc Huy, trần nghi Phú Phạm Thành Công, 2011 Giáo trình Ngôn ngữ lập trình C/C++ Nhà xuất Thông Tin Truyền Thông Hà Nội 191 trang 78 PHỤ LỤC Code chương trình cho ESP8266: #include #include "EIoTCloudRestApiV1.0.h" #include #include "DHT.h" #ifdef DEBUG_PROG #define DEBUG_PRINTLN(x) Serial.println(x) #define DEBUG_PRINT(x) Serial.print(x) #else #define DEBUG_PRINTLN(x) #define DEBUG_PRINT(x) #endif EIoTCloudRestApi eiotcloud; // change those lines #define AP_USERNAME "wifi_xx" #define AP_PASSWORD "hoianhdi@2" #define INSTANCE_ID "57208a5fc943a03eab41a426" #define CONFIG_START #define CONFIG_VERSION "v01" #define REPORT_INTERVAL 60 // in sec struct StoreStruct { // This is for mere detection if they are your settings char version[4]; // The variables of your settings char token[41]; uint moduleId; //bool tokenOk; // valid token } storage = { CONFIG_VERSION, // token "1234567890123456789012345678901234567890", 79 //The default module - invalid module 0, //0 // not valid }; float oldTemp; float oldHum; DHT dht; String moduleId = ""; String parameterId1 = ""; String parameterId2 = ""; void setup() { Serial.begin(115200); DEBUG_PRINTLN("Start "); EEPROM.begin(512); loadConfig(); eiotcloud.begin(AP_USERNAME, AP_PASSWORD); // if first time get new token and register new module // here hapend Plug and play logic to add module to Cloud if (storage.moduleId == 0) { // get new token - alternarive is to manually create token and store it in EEPROM String token = eiotcloud.TokenNew(INSTANCE_ID); DEBUG_PRINT("Token: "); DEBUG_PRINTLN(token); eiotcloud.SetToken(token); // remember token token.toCharArray(storage.token, 41); // add new module and configure it moduleId = eiotcloud.ModuleNew(); DEBUG_PRINT("ModuleId: "); DEBUG_PRINTLN(moduleId); 80 storage.moduleId = moduleId.toInt(); // set module type bool modtyperet = eiotcloud.SetModulType(moduleId, "MT_GENERIC"); DEBUG_PRINT("SetModulType: "); DEBUG_PRINTLN(modtyperet); // set module name bool modname = eiotcloud.SetModulName(moduleId, "Humidity sensor"); DEBUG_PRINT("SetModulName: "); DEBUG_PRINTLN(modname); // add image settings parameter String parameterImgId = eiotcloud.NewModuleParameter(moduleId, "Settings.Icon1"); DEBUG_PRINT("parameterImgId: "); DEBUG_PRINTLN(parameterImgId); // set module image bool valueRet1 = eiotcloud.SetParameterValue(parameterImgId, "humidity.png"); DEBUG_PRINT("SetParameterValue: "); DEBUG_PRINTLN(valueRet1); // now add parameter to display temperature parameterId1 = eiotcloud.NewModuleParameter(moduleId, "Sensor.Parameter1"); DEBUG_PRINT("parameterId1: "); DEBUG_PRINTLN(parameterId1); //set parameter description bool valueRet2 = eiotcloud.SetParameterDescription(parameterId1, "Temperature"); DEBUG_PRINT("SetParameterDescription: "); DEBUG_PRINTLN(valueRet2); //set unit // see http://meyerweb.com/eric/tools/dencoder/ how to encode °C bool valueRet3 = eiotcloud.SetParameterUnit(parameterId1, "%C2%B0C"); 81 DEBUG_PRINT("SetParameterUnit: "); DEBUG_PRINTLN(valueRet3); //Set parameter LogToDatabase bool valueRet4 = eiotcloud.SetParameterLogToDatabase(parameterId1, true); DEBUG_PRINT("SetLogToDatabase: "); DEBUG_PRINTLN(valueRet4); //SetAvreageInterval bool valueRet5 = eiotcloud.SetParameterAverageInterval(parameterId1, "10"); DEBUG_PRINT("SetAvreageInterval: "); DEBUG_PRINTLN(valueRet5); // now add parameter to display humidity parameterId2 = eiotcloud.NewModuleParameter(moduleId, "Sensor.Parameter2"); DEBUG_PRINT("parameterId2: "); DEBUG_PRINTLN(parameterId2); //set parameter description bool valueRet6 = eiotcloud.SetParameterDescription(parameterId2, "Humidity"); DEBUG_PRINT("SetParameterDescription: "); DEBUG_PRINTLN(valueRet2); //set unit bool valueRet7 = eiotcloud.SetParameterUnit(parameterId2, "%"); DEBUG_PRINT("SetParameterUnit: "); DEBUG_PRINTLN(valueRet7); //Set parameter LogToDatabase bool valueRet8 = eiotcloud.SetParameterLogToDatabase(parameterId2, true); DEBUG_PRINT("SetLogToDatabase: "); DEBUG_PRINTLN(valueRet8); //SetAvreageInterval bool valueRet9 = eiotcloud.SetParameterAverageInterval(parameterId2, "10"); DEBUG_PRINT("SetAvreageInterval: "); DEBUG_PRINTLN(valueRet9); 82 // save configuration saveConfig(); } // if something went wrong, wiat here if (storage.moduleId == 0) delay(1); // read module ID from storage moduleId = String(storage.moduleId); // read token ID from storage eiotcloud.SetToken(storage.token); // read Sensor.Parameter1 ID from cloud parameterId1 = eiotcloud.GetModuleParameterByName(moduleId, "Sensor.Parameter1"); DEBUG_PRINT("parameterId1: "); DEBUG_PRINTLN(parameterId1); parameterId2 = eiotcloud.GetModuleParameterByName(moduleId, "Sensor.Parameter2"); DEBUG_PRINT("parameterId2: "); DEBUG_PRINTLN(parameterId2); Serial.println(); Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)"); dht.setup(2); // data pin oldTemp = -1; oldHum = -1; } void loop() { delay(dht.getMinimumSamplingPeriod()); float hum = dht.getHumidity(); float temp = dht.getTemperature(); Serial.print(dht.getStatusString()); Serial.print("\t"); 83 Serial.print(hum, 1); Serial.print("\t\t"); Serial.print(temp, 1); Serial.print("\t\t"); Serial.println(dht.toFahrenheit(temp), 1); if (temp != oldTemp || hum != oldHum) { //sendTeperature(temp); eiotcloud.SetParameterValues("[{\"Id\": \""+String(temp)+"\" },{\"Id\": \""+parameterId1+"\", \""+parameterId2+"\", \"Value\": \"Value\": \""+String(hum)+"\" }]"); oldTemp = temp; oldHum = hum; } int cnt = REPORT_INTERVAL; while(cnt ) delay(1000); } void loadConfig() { // To make sure there are settings, and they are YOURS! // If nothing is found it will use the default settings if (EEPROM.read(CONFIG_START + 0) == CONFIG_VERSION[0] && EEPROM.read(CONFIG_START + 1) == CONFIG_VERSION[1] && EEPROM.read(CONFIG_START + 2) == CONFIG_VERSION[2]) for (unsigned int t=0; t

Ngày đăng: 23/04/2017, 16:34

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan