Мазмұны:
Бейне: Arduino шаң бөлшектерін бақылау станциясы: 4 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Сіз өзіңіздің үйіңіздегі шаңның ластануын бақылайтын заттардың DIY интернетін 50 доллардан оңай құра аласыз және шаң деңгейі жоғарылаған кезде хабар аласыз, осылайша бөлмені желдете аласыз немесе оны сыртта орнатып, ол туралы хабарлауға болады. егер сіз өте ластанған жерде тұрсаңыз, көшеге шығу қауіпсіз.
Мен мұны мектептің жобасы ретінде жасадым, сондықтан 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 -дегі + және - -ге, ал деректер желісін 7 -істікке қосыңыз.
3 -қадам: Кодекс
Сіз MQTT брокерін таңқурайға немесе үйде үнемі болатын компьютерге орната аласыз немесе Cloud MQTT сияқты бұлтты MQTT қызметін қолдана аласыз. Содан кейін сіз IFTT веб -ілмегіне деректерді HTTP ретінде жіберетін сценарий жаза аласыз, себебі олар MQTT веб -ілмектерін әлі қолдамайды және үйдегі шаң деңгейі тым жоғары болған кезде хабарландыруларды орнатады.
Arduino әуе станциясы
#қосу |
#қосу |
#қосу |
#қосу |
#қосу |
#қосу |
#қосу |
#қосу |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
IPAddress 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; |
қол қойылмаған идентификатор; |
// myFile файл; |
Жолдар s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Serial.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 previousValue; |
if (! client.connected ()) |
{ |
егер (client.connect («arduinoClient», mqtt_user, mqtt_pass)) { |
Serial.println («қосылған»); |
} |
} |
while (pmSerial.available ()) { |
мән = pmSerial.read (); |
егер ((индекс == 0 && мәні! = 0x42) || (индекс == 1 && мәні! = 0x4d)) { |
Serial.println («Деректер тақырыбы табылмады.»); |
қайтару; |
} |
егер (индекс == 4 || индекс == 6 || индекс == 8 || индекс == 10 || индекс == 12 || индекс == 14) { |
previousValue = мән; |
} |
elseif (индекс == 5) { |
pm1 = 256 * алдыңғыValue + мәні; |
түбір [«pm1»] = абс (pm1); |
} |
elseif (индекс == 7) { |
pm2_5 = 256 * алдыңғыValue + мәні; |
түбір [«pm2_5»] = абс (pm2_5); |
} |
elseif (индекс == 9) { |
pm10 = 256 * алдыңғыValue + мәні; |
түбір [«pm10»] = абс (pm10); |
} |
elseif (индекс> 15) { |
үзіліс; |
} |
индекс ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
егер (DHT.температурасы == -999 || DHT. ылғалдылығы == -999) { |
түбір [«температура»] = «Жоқ»; |
түбір [«ылғалдылық»] = «Жоқ»; |
} басқа { |
түбір [«температура»] = DHT.температура; |
түбір [«ылғалдылық»] = 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 және қуат кабельдерін қостым.
Ұсынылған:
DIY ауа райы станциясы мен WiFi сенсорлық станциясы: 7 қадам (суреттермен)
DIY ауа райы станциясы мен WiFi сенсорлық станциясы: Бұл жобада мен сізге WiFi сенсор станциясымен бірге ауа райы станциясын қалай жасау керектігін көрсетемін. Сенсорлық станция жергілікті температура мен ылғалдылық деректерін өлшейді және WiFi арқылы метеостанцияға жібереді. Содан кейін метеостанция мыналарды көрсетеді
SMD бөлшектерін стандартты жетілдіру тақтасына салыңыз: 6 қадам (суреттермен)
SMD бөлшектерін стандартты жетілдіру тақтасына салыңыз: Instructables электронды кеңестер мен амалдар байқауын өткізеді, сондықтан мен SMD бөлшектері мен әдістерін стандартты, бір жақты, жақсы оле тақтасында қолдану туралы өз пікіріммен бөлісемін деп ойладым. Біздің көпшілігіміз отыздан астам түрді жиі табады
SMD бөлшектерін қалай дәнекерлеу керек: 6 қадам (суреттермен)
SMD бөлшектерін қалай дәнекерлеу керек: Бұл нұсқаулықта мен сізге SMD бөлшектерін дәнекерлеудің 3 әдісін көрсетемін, бірақ нақты әдістерге келмес бұрын, қолданылатын дәнекерлеуіштің түрі туралы айтқан жөн деп ойлаймын. Сіз қолдануға болатын дәнекерлеудің екі негізгі түрі бар, олар қорғасын немесе л
Ноутбуктің ескі бөлшектерін арзан портативті жүйе құру үшін қайта пайдалану: 3 қадам (суреттермен)
Ноутбуктің ескі бөлшектерін арзан портативті жүйе құру үшін қайта пайдалану: Жақында менің ескі ноутбугым қайтыс болды, мен жаңасын сатып алуға мәжбүр болдым (RIP! 5520 сізді жіберіп алады). Ноутбуктің аналық тақтасы қайтыс болды және зақым жөнделді Соңғы уақытқа дейін мен таңқурай пирогын алып келдім және IOT sutff -пен тоқуды бастадым, бірақ арнайы жабдық қажет болды
Xbox Controller арқылы бетті бақылау және бақылау арқылы қайырымдылық робот - Arduino: 9 қадам (суреттермен)
Xbox Controller арқылы бетті бақылау және бақылау арқылы қайыршы робот - Arduino: Біз қайыршы робот жасамақпыз. Бұл робот тітіркендіруге немесе өтіп бара жатқан адамдардың назарын аударуға тырысады. Бұл олардың беттерін анықтап, оларға лазермен оқ атуға тырысады. Егер сіз роботқа тиын берсеңіз, ол ән айтып, би билейді. Роботқа қажет болады