Агуулгын хүснэгт:
- Алхам 1: Шаардлагатай эд анги
- Алхам 2: эд ангиудыг угсрах
- Алхам 3: Код
- Алхам 4: Хайрцгийг угсарна уу
Видео: Arduino хөдөлгүүртэй тоосны тоосонцорыг хянах станц: 4 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
Та гэрийнхээ тоосны бохирдлыг 50 доллараас бага үнээр хянадаг төхөөрөмжүүдийн DIY интернэтийг хялбархан бүтээж, тоосны хэмжээ хэт өндөр байх үед өрөөндөө агаар оруулах боломжтой болно. Хэрэв та маш их бохирдолтой газарт амьдардаг бол гадаа аюулгүй явах боломжтой.
Би үүнийг сургуулийн төсөл болгон хийсэн тул MQTT мессежийг хүлээн авч, танд мэдэгдэл эсвэл имэйл илгээх үйлчилгээ олох хангалттай цаг байгаагүй.
Мэдрэгчийг байнга асааж байх нь сэнсний ашиглалтын хугацааг богиносгох болно гэдгийг анхаарна уу.
Алхам 1: Шаардлагатай эд анги
Танд хэрэгтэй зүйл
- Ардуино Уно
- Arduino Ethernet бамбай
- Бөөмийн лазер мэдрэгч (ихэвчлэн eBay/aliexpress дээр 10-30 доллараар зарагддаг)
- DHT11 температур ба чийгшлийн мэдрэгч (заавал биш)
- Талхны самбар
- Холбогч кабель
Алхам 2: эд ангиудыг угсрах
Нэгдүгээрт, та Ethernet бамбайг Arduino дээр залгах хэрэгтэй
PM мэдрэгч нь олон утастай боловч бидэнд хэрэгтэй зүйл бол VCC, GND, TX, RX юм.
VCC ба GND -ийг талхны самбар дээрх тус тусад нь + ба - руу холбоно уу.
Arduino нь техник хангамжийн RX ба TX тээглүүртэй боловч бид 2 болон 3 -р зүү дээр RX ба TX тээглүүрийн програм хангамжийг ашиглах болно. Мэдрэгчийн RX -ийг Arduino -ийн TX -д, мэдрэгчийн TX -ийг Arduino -ийн RX -д залгаарай.
Хэрэв та температур мэдрэгчийг ашиглах гэж байгаа бол VCC ба GND шугамыг Breadboard дээрх + ба - ба залгаас руу холбоно уу.
Алхам 3: Код
Та MQTT брокерыг бөөрөлзгөнө пи эсвэл гэртээ байнга ашигладаг компьютер дээр суулгаж эсвэл Cloud MQTT гэх мэт үүл MQTT үйлчилгээг ашиглаж болно. Дараа нь та өгөгдлийг IFTT вэб хуук руу HTTP хэлбэрээр илгээдэг скрипт бичиж болно, учир нь тэд MQTT вэб хуукуудыг хараахан дэмждэггүй бөгөөд танай гэрт тоосны хэмжээ хэт өндөр байх үед мэдэгдэл тохируулдаг.
Arduino агаарын станц
#оруулах |
#оруулах |
#оруулах |
#оруулах |
#оруулах |
#оруулах |
#оруулах |
#оруулах |
#тодорхойлохDHT11_PIN7 |
#тодорхойлохRX_PIN2 |
#defineTX_PIN3 |
IP хаяг IP (169, 169, 100, 98); |
байт мак = { |
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"; // Үйлчлүүлэгчийн холболт ижил холболтын нэртэй байж болохгүй |
EthernetClient ethClient; |
PubSubClient үйлчлүүлэгч (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
DHT; |
int pm1; |
int pm2_5; |
int pm10; |
гарын үсэг зураагүй урт id; |
// myFile файл хийх; |
Мөр; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Цуваа.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
хэрэв (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("DHCP ашиглан Ethernet -ийг тохируулж чадсангүй"); |
// тогтмол ip addr ашиглан оролдох |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (буцааж залгах); |
саатал (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; |
char үнэ; |
char өмнөхValue; |
if (! client.connected ()) |
{ |
хэрэв (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("холбогдсон"); |
} |
} |
байхад (pmSerial.available ()) { |
утга = pmSerial.read (); |
хэрэв ((индекс == 0 && утга! = 0x42) || (индекс == 1 && утга! = 0x4d)) { |
Serial.println ("Өгөгдлийн толгойг олж чадсангүй."); |
буцах; |
} |
хэрэв (индекс == 4 || индекс == 6 || индекс == 8 || индекс == 10 || индекс == 12 || индекс == 14) { |
previousValue = утга; |
} |
elseif (индекс == 5) { |
pm1 = 256 * өмнөхValue + утга; |
root ["pm1"] = abs (pm1); |
} |
elseif (индекс == 7) { |
pm2_5 = 256 * өмнөхValue + утга; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (индекс == 9) { |
pm10 = 256 * өмнөхValue + утга; |
root ["pm10"] = abs (pm10); |
} |
elseif (индекс> 15) { |
завсарлага; |
} |
индекс ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
хэрэв (DHT.temperature == -999 || DHT. чийгшил == -999) { |
root ["температур"] = "Боломжгүй"; |
үндэс ["чийгшил"] = "Боломжгүй"; |
} өөр { |
root ["температур"] = DHT.temperature; |
root ["чийгшил"] = DHT. чийгшил; |
} |
sendResults (); |
id ++; |
саатал (5000); |
} |
voidsendResults () { |
// MQTT дээр нийтлэх |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// цуврал руу дибаг хийх |
root.printTo (Цуваа); |
Serial.print ('\ n'); |
} |
// Захиалсан сэдвээр ирсэн зурвасуудыг зохицуулдаг |
voidcallback (char* сэдэв, байт* ачаа, гарын үсэг зураагүй урт) { |
} |
GitHub -аас ❤ зохион байгуулсан rawair_quality.ino -г үзэх
Алхам 4: Хайрцгийг угсарна уу
Би дөнгөж хэвтэж байсан хайрцгийг ашиглаж, мэдрэгчийг агааржуулах нүх өрөмдөж, кабелийг гадагш гаргах нүхийг хайчилсан (энэ нь арай том байсан ч гэсэн).
Мэдрэгчийг хайрцагт холбохын тулд би цавуу дэвсгэр ашигласан бөгөөд мэдрэгчийн оролтын нүхийг хайрцаг дээрх өрөмдсөн нүхтэй уялдуулав.
Эцэст нь би ethernet болон цахилгаан кабелийг залгасан.
Зөвлөмж болгож буй:
Arduino, хэт авианы мэдрэгч ба Servo мотор ашиглан ухаалаг тоосны хайрцаг: 3 алхам
Arduino, хэт авианы мэдрэгч ба Servo мотор ашиглан ухаалаг хогийн сав: Энэ төсөлд би Arduino ашиглан ухаалаг хогийн савыг хэрхэн яаж хийхийг танд үзүүлэх болно. Хогийн савтай ойртох үед хогийн савны таг автоматаар нээгдэнэ. Энэхүү ухаалаг хогийн савыг хийхэд ашигладаг бусад чухал бүрэлдэхүүн хэсгүүд нь HC-04 хэт авианы сенс юм
Magicbit -ээс ухаалаг тоосны хайрцаг: 5 алхам
Magicbit -ээс авсан ухаалаг хогийн сав: Энэхүү гарын авлагад бид Magicbit dev ашиглан ухаалаг хогийн сав хэрхэн хийх талаар сурах болно. Arduino IDE бүхий самбар. Эхлээд үзье
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 8 алхам (зурагтай)
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 1 жилийн турш 2 өөр байршилд амжилттай ажилласны дараа би нарны эрчим хүчээр ажилладаг цаг уурын станцын төслийн төлөвлөгөөгөө хуваалцаж, хэрхэн урт хугацаанд үнэхээр оршин тогтнож чадах систем болж хөгжсөн тухай тайлбарлаж байна. нарны эрчим хүчнээс үүссэн үе. Хэрэв та дагах бол
DIY цаг уурын станц ба WiFi мэдрэгч станц: 7 алхам (зурагтай)
DIY цаг уурын станц ба WiFi мэдрэгч станц: Энэхүү төсөлд би WiFi мэдрэгч станцын хамт цаг агаарын станцыг хэрхэн яаж хийхийг танд үзүүлэх болно. Мэдрэгч станц нь орон нутгийн температур, чийгшлийн өгөгдлийг хэмжиж, WiFi -ээр цаг уурын станц руу илгээдэг. Цаг уурын станц дараа нь
Дотуур байрны цахилгаан станц/NiMH цэнэглэх станц: 3 алхам
Дотуур байрны цахилгаан станц/NiMH цэнэглэх станц: Надад цахилгаан станц замбараагүй байна. Би нэг ажлын ширээн дээр цэнэглэгдсэн бүх зүйлийг нягтруулж, дээр нь гагнах газар байрлуулахыг хүсч байна. Цахилгаан зүйлсийн жагсаалт: Гар утас (эвдэрсэн, гэхдээ энэ нь миний утасны батерейг цэнэглэж байгаа тул үргэлж залгаж, цэнэглэдэг