Am decis să implementez un detector de fum/gaze si flacara, care emite avertizari luminoase și sonore si transmite starea atmosferei spre un database hostat pe PC cu ajutorul unui shield ethernet.
Detectorul are următoarele componente:
pragul limita
Schema Bloc:
Lista componente:
Componentă | Scop | Site Achizionare |
---|---|---|
Arduino Uno | baza proiectului | https://cleste.ro/arduino-uno-r3-atmega328p.html |
Breadboard HQ (830 Puncte) | unirea componentelor | https://www.optimusdigital.ro/ro/prototipare-breadboard-uri/8-breadboard-830-points.html |
LCD Display 16×02 | afisarea mesajelor de atentionare | https://ardushop.ro/ro/electronica/36-lcd-1602.html |
Shield Ethernet pentru Arduino cu chip Wiznet W5100 | transmiterea valorilor inregistrate de senzori prin Ethernet la un database | https://www.robofun.ro/shield/shield-ethernet-pentru-arduino-cu-chip-wiznet-w5100.html |
Modul Senzor Gaz MQ-2 | detectarea scurgerilor de gaz | https://www.optimusdigital.ro/ro/senzori-de-gaze/107-modul-senzor-gas-mq-2.html |
LED Verde de 3 mm cu Lentile Transparente | indica un nivel normal de gaz in atmosfera | https://www.optimusdigital.ro/ro/optoelectronice-led-uri/931-led-verde-de-3-mm-cu-lentile-transparente.html |
LED Roșu de 3 mm cu Lentile Difuze | indica un nivel anormal de gaz in atmosfera | https://www.optimusdigital.ro/ro/optoelectronice-led-uri/696-led-rou-de-3-mm-cu-lentile-difuze.html |
Fludor la tub 1mm 10 gr | folosit impreuna cu pistolul de lipit pentru lipirea pinilor la display-ul LCD si conectarea pinilor de spatele shield-ului prin 2 rezistente de 100 OHMI | https://www.optimusdigital.ro/ro/fludor/23-fludor-la-tub-1mm-10-gr.html |
Pompa Fludor Metal | dezlipirea componentelor electronice lipite gresit | https://www.optimusdigital.ro/ro/toate-produsele/22-pompa-fludor-metal.html |
Fire Colorate Tată-Tată | cablare | https://www.optimusdigital.ro/ro/fire-fire-mufate/885-set-fire-tata-tata-10p-10-cm.html |
Modul Buzzer pasiv | emitere semnale sonore in cazul detectarii unui nivel anormal de gaz | https://cleste.ro/modul-buzzer-pasiv.html |
2 Rezistente 220 Ohmi | evitarea trecerii unui curent prea mare prin leduri | Magazin Dioda Tg-Jiu |
2 Rezistente 100 Ohmi | lipirea pe pinii 1-2 și 3-6 ai shield-ului ce avea o rezistenta gresita | Magazin SigmaNortec Tg-Jiu |
Senzor de flacara 4 pini | detectarea flacarii | Magazin SigmaNortec Tg-Jiu |
Schema electrica:
Schema nu include shield-ul Ethernet, care va fi introdus deasupra placii Arduino.
Am scris codul in mediul de dezvoltare Arduino IDE, folosindu-ma de urmatoarele biblioteci:
Cu ajutorul define-urilor, am setat pinii la care sunt conectate LED-urile, buzzer-ul si cei doi senzori.
Variabile globale:
FUNCTII:
CREAREA BAZEI DE DATE & TRIMITEREA DATELOR DE LA ARDUINO LA DATABASE
Starea montajului pentru parametrii normali ai atmosferei
Starea montajului cand se detecteaza flacara
Starea montajului cand se detecteaza gaz/fum
Pinii shield-ului intra in pinii placii Arduino.Placa Arduino e legata la PC printr-un cablu USB, iar shield-ul este legat la router printr-un cablu Ethernet.PC-ul este conectat la router prin WiFi.
Am incarcat initial sketch-ul Ethernet/DHCPAddressPrinter pe shield. Acesta a rulat cu succes, asignandu-i shield-ului o adresa IP.Apoi am incarcat pe shield codul pentru intreg montajul si am observat ca apelul client.connect() esueaza.Astfel nu se realizeaza conectarea la IP-ul PC-ului, unde se hosteaza database-ul.Pentru debug, am rulat in CMD “netsat -aon”, am observat ca portul 80 este ocupat de alta aplicatie.Am modificat portul pe care asculta Apache(initial erau 80&443, acum sunt 81&443).Nu a functionat, am primit acelasi mesaj “connection failed”.
DEMO-ul proiectului:
https://drive.google.com/drive/folders/1awkwqkRAgy7ggPcwSw7hwPuuXMC_0ANY?usp=sharing
Intregul proiect a fost o experienta din care am avut multe lucruri de invatat, inclusiv cum sa folosesc pistolul de lipit electric.
In arhiva se gasesc fisierele php (incluse in xampp/htdocs), fisierul Arduino cu codul legat de Ethernet comentat (pentru a nu afecta functionarea intregului montaj) si un fisier Arduino cu intreg codul.