Code C++ cảm biến màu sắc với Arduino + báo cáo
by Tuan Postin C & C++ , Scripts & Code on October 20, 2022Choose Your Desired Option(s)
Code C++ cảm biến màu sắc với Arduino + báo cáo
Module NodeMCU
Thông số kỹ thuật:
- Chip: ESP8266EX
- WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n
- Điện áp hoạt động: 3.3V
- Điện áp vào: 5V thông qua cổng USB
- Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ chân D0)
- Số chân Analog Input: 1 (điện áp vào tối đa 3.3V)
- Bộ nhớ Flash: 4MB
- Giao tiếp: Cable Micro USB
- Hỗ trợ bảo mật: WPA/WPA2
- Tích hợp giao thức TCP/IP
- Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU – Lua
Cảm biến màu sắc TCS3200
Sơ đồ chân DHT11
Cấu tạo của cảm biến độ ẩm
Cấu tạo của biến trở nhiệt độ
Tìm dải RGB tương ứng với mỗi màu: đỏ, xanh lục, xanh lam
Để đo dải R (red), ta kéo S2 và S3 xuống mức thấp để báo cho cảm biến là ta muốn đo dải màu là Red . Sau đó dải tầ số đầu ra được xác định tương đương khi gọi hàm pulseIn(pin, Value)
Hàm pulseIn(pin,Value) sẽ đọc một xung tín hiệu digital (HIGH/LOW) và trả về chu kì của xung tín hiệu, tức là thời gian tín hiệu chuyển từ mức HIGH xuống LOW hoặc ngược lại (LOW -> HIGH).
Frequency = pulseIn(sensorOut,low) nghĩa là nó sẽ đợi tín hiệu tại chân sensorOut xuống mức thấp, khởi động bộ đếm thời gian và chờ đến khi chân sensorOut lên mức cao thì bộ đếm thời gian sẽ dừng. Tương tự với dải G và B ta sẽ kéo S2 và S3 thích hợp để tìm ra khoảng dao động giữa các màu sắc với nhau
Đếm số lượng vật thể thông qua màu sắc
Dựa vào tần số xác định với mỗi dải màu được làm ở bước trước ta phân biệt được các vật thể với các trạng thái màu cơ bản là: đỏ, lục, lam. Từ đó gửi dữ liệu phân biệt lên Broker MQTT. Mỗi lần nhận được giá trị gửi lên, số lượng vật thể tương ứng sẽ tăng lên một và lưu các thông số vật thể nhận diện đó vào cơ sở dữ liệu.
* Hiện thị màu sắc lên Web Server
Để hiển thị được màu sắc lên giao diện web. Ta cần chuyển tần số ứng với các giải màu nhận diện về thang mức sáng. Từ đó ta chuyển đổi dữ liệu R,G,B từ int sang dạng chuỗi JSON và gửi lên web Server . Server sẽ nhận được chuỗi Json tương ứng như sau {“R”:170,”G”:51,”B”:112}. Từ các thông số gửi lên đó sẽ chuyển dữ liệu thành mà sắc tương ứng.
Lấy dữ liệu cảm biến và gửi lên Broker MQTT
Các giá trị nhiệt độ, độ ẩm được đo được bởi các hàm dht.readHumidity() và dht.readTemperature(). Sau đó sẽ được chuyển thành dạng JSON với định dạng như sau:
{“ID”:”NodeMCU”,”Temperature”:26,”Humidity”:74}.
Hàm isnan() để kiểm tra cảm biến có đang hoạt động hay không. Nếu cảm biến không hoạt động mặc định giá trị trả lên sẽ là 0.
Giao diện Web Server
Download Category | C & C++, Scripts & Code |
Product Homepage URL→ | |
Product Version | |
File Type | INO, WINDOWS BATCH, EJS, JS, CSS, JSON , . . |
File Size | 1.41 MB |
Developer | |
Documentation |