Mục lục:
Video: Trạm giám sát các hạt bụi được hỗ trợ bởi Arduino: 4 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Bạn có thể khá dễ dàng xây dựng một thiết bị kết nối vạn vật tự làm theo dõi ô nhiễm bụi trong nhà của bạn với giá dưới 50 đô la và nhận được thông báo khi mức bụi quá cao để bạn có thể thông gió trong phòng hoặc bạn có thể đặt thiết bị bên ngoài và nhận thông báo nếu an toàn để đi ra ngoài nếu bạn sống trong một khu vực ô nhiễm cao.
Tôi thực hiện dự án này như một dự án dành cho trường học, vì vậy tôi không có đủ thời gian để tìm một dịch vụ nhận tin nhắn MQTT và gửi chúng cho bạn như thông báo hoặc email.
Cũng lưu ý rằng luôn luôn cấp nguồn cho cảm biến sẽ làm giảm tuổi thọ của quạt.
Bước 1: Các bộ phận cần thiết
Những gì bạn cần
- Arduino Uno
- Lá chắn Arduino Ethernet
- Cảm biến laser vật chất dạng hạt (thường có giá $ 10- $ 30 trên eBay / aliexpress)
- Cảm biến nhiệt độ và độ ẩm DHT11 (tùy chọn)
- Breadboard
- Cáp nhảy
Bước 2: Lắp ráp các bộ phận
Đầu tiên, bạn cần cắm lá chắn ethernet trên Arduino
Cảm biến PM có nhiều dây, nhưng những dây chúng ta cần là VCC, GND, TX, RX.
Kết nối VCC và GND tương ứng với + và - trên breadboard.
Arduino có các chân RX và TX phần cứng, nhưng chúng tôi sẽ sử dụng mô phỏng phần mềm của các chân RX và TX trên các chân 2 và 3 tương ứng. Cắm RX của cảm biến với TX của Arduino và TX của cảm biến với RX của Arduino.
Nếu bạn đang sử dụng cảm biến nhiệt độ, hãy cắm các đường VCC và GND vào + và - trên Breadboard và đường dữ liệu vào chân 7.
Bước 3: Mã
Bạn có thể cài đặt nhà môi giới MQTT trên raspberry pi hoặc máy tính bạn luôn sử dụng ở nhà hoặc sử dụng dịch vụ MQTT đám mây, như Cloud MQTT. Sau đó, bạn có thể viết tập lệnh gửi dữ liệu dưới dạng HTTP đến IFTT webhook, vì chúng chưa hỗ trợ webhook MQTT và thiết lập thông báo khi mức bụi trong nhà của bạn quá cao.
Trạm hàng không Arduino
#bao gồm |
#bao gồm |
#bao gồm |
#bao gồm |
#bao gồm |
#bao gồm |
#bao gồm |
#bao gồm |
# xác địnhDHT11_PIN7 |
# xác địnhRX_PIN2 |
# defineTX_PIN3 |
IPAddress ip (169, 169, 100, 98); |
byte mac = { |
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 |
}; |
constchar * mqtt_server = "m23.cloudmqtt.com"; |
constint mqtt_port = 11895; |
constchar * mqtt_user = "jhetjewk"; |
constchar * mqtt_pass = "QB2p9PiMV6pn"; |
constchar * mqtt_client_name = "arduinoClient1"; // Các kết nối máy khách không thể có cùng tên kết nối |
EthernetClient ethClient; |
Ứng dụng khách PubSubClient (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
id không dấu; |
// Tập tin myFile; |
Dây; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Serial.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
if (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Không thể định cấu hình Ethernet bằng DHCP"); |
// thử với ip addr cố định |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (gọi lại); |
chậm trễ (2000); |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Serial.print ("rc ="); |
Serial.print (client.state ()); |
Serial.print ("\ n"); |
} |
voidloop () { |
intindex = 0; |
giá trị char; |
char beforeValue; |
if (! client.connected ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("được kết nối"); |
} |
} |
while (pmSerial.available ()) { |
value = pmSerial.read (); |
if ((index == 0 && value! = 0x42) || (index == 1 && value! = 0x4d)) { |
Serial.println ("Không thể tìm thấy tiêu đề dữ liệu."); |
trở lại; |
} |
if (index == 4 || index == 6 || index == 8 || index == 10 || index == 12 || index == 14) { |
beforeValue = giá trị; |
} |
elseif (chỉ mục == 5) { |
pm1 = 256 * giá trị trước + giá trị; |
root ["pm1"] = abs (pm1); |
} |
elseif (chỉ mục == 7) { |
pm2_5 = 256 * trước Giá trị + giá trị; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (chỉ mục == 9) { |
pm10 = 256 * giá trị trước + giá trị; |
root ["pm10"] = abs (pm10); |
} |
elseif (chỉ mục> 15) { |
nghỉ; |
} |
chỉ số ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
if (DHT.tempether == -999 || DHT.humidity == -999) { |
root ["nhiệt độ"] = "N / A"; |
root ["độ ẩm"] = "N / A"; |
} khác { |
root ["nhiệt độ"] = nhiệt độ DHT; |
root ["độ ẩm"] = DHT.humidity; |
} |
sendResults (); |
id ++; |
chậm trễ (5000); |
} |
voidsendResults () { |
// xuất bản lên MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// gỡ lỗi thành nối tiếp |
root.printTo (Serial); |
Serial.print ('\ n'); |
} |
// Xử lý tin nhắn đến (các) chủ đề đã đăng ký |
voidcallback (char * topic, byte * payload, unsignedint length) { |
} |
xem rawair_quality.ino được lưu trữ với ❤ bởi GitHub
Bước 4: Lắp ráp hộp
Tôi chỉ sử dụng một chiếc hộp mà tôi đã đặt xung quanh và khoan một lỗ để cảm biến lấy không khí và khoét một lỗ để dây cáp đi ra ngoài (mặc dù nó hơi quá lớn).
Tôi đã sử dụng miếng keo để gắn cảm biến vào hộp, căn chỉnh lỗ đầu vào của cảm biến với lỗ đã khoan trên hộp.
Cuối cùng, tôi cắm ethernet và cáp nguồn.
Đề xuất:
Chuyển văn bản thành giọng nói Nhấp vào UChip được hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác: 3 bước
Chuyển văn bản thành giọng nói Nhấp vào UChip hỗ trợ bởi ARM cơ bản và các SBC được hỗ trợ bởi ARM cơ bản khác: Giới thiệu: Chúc một ngày tốt lành. Tên tôi là Tod. Tôi là một chuyên gia hàng không và quốc phòng, cũng là một chuyên gia về lĩnh vực hàng không và quốc phòng
Hệ thống giám sát vật nuôi được hỗ trợ bởi Arduino và Raspberry Pi: 19 bước (có hình ảnh)
Hệ thống giám sát vật nuôi được hỗ trợ bởi Arduino và Raspberry Pi: Gần đây, khi đang đi nghỉ, chúng tôi nhận ra sự thiếu kết nối với con vật cưng Beagle của mình. Sau một số nghiên cứu, chúng tôi đã tìm thấy các sản phẩm có camera tĩnh cho phép một người theo dõi và giao tiếp với thú cưng của mình. Những hệ thống này có những lợi ích nhất định b
Pi Home, Trợ lý ảo được hỗ trợ bởi Raspberry: 11 bước (có hình ảnh)
Pi Home, Trợ lý ảo được hỗ trợ bởi Raspberry: Google Home rất hữu ích khi ở quanh nhà. Đây là một thiết bị tuyệt đẹp được tích hợp Google Assistant - Một trợ lý cá nhân kỹ thuật số hiện đại của Google. Nó có thể phát phương tiện, lưu lời nhắc và ghi chú của bạn, cho bạn biết khoảng thời gian đi lại của bạn
Star Track - Con trỏ và theo dõi sao được hỗ trợ bởi Arduino: 11 bước (có hình ảnh)
Star Track - Con trỏ sao được hỗ trợ bởi Arduino và Tracker: Star track là một hệ thống theo dõi sao lấy cảm hứng từ GoTo-mount dựa trên Arduino. Nó có thể trỏ và theo dõi bất kỳ vật thể nào trên bầu trời (tọa độ Thiên thể được cung cấp làm đầu vào) với 2 Arduinos, một con quay hồi chuyển, mô-đun RTC, hai động cơ bước chi phí thấp và một cấu trúc in 3D
20 giờ $ 20 Bảng xây dựng trò chơi điện tử hàng đầu với hàng trăm trò chơi được tích hợp sẵn.: 7 bước (có hình ảnh)
20 giờ $ 20 Table Top Arcade Build với hàng trăm trò chơi được tích hợp sẵn. Vì tôi không quá vội vàng nên tôi chỉ đợi cho đến khi tích lũy được tất cả các thành phần cần thiết cho việc xây dựng với giá rẻ. Đây là