Taula de continguts:
Vídeo: Estació de control de partícules de pols alimentades per Arduino: 4 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Podeu construir bastant fàcilment un dispositiu de bricolatge Internet de les coses que supervisi la contaminació de la pols a casa vostra per menys de 50 dòlars i us notifiqui quan el nivell de pols sigui massa elevat perquè pugueu airejar l'habitació o podeu configurar-lo a l'exterior i rebre'n una notificació si sortir segur si viu en una zona altament contaminada.
Ho vaig fer com a projecte escolar, de manera que no vaig tenir prou temps per trobar un servei que agafés missatges MQTT i us els enviés com a notificacions o correus electrònics.
Tingueu en compte també que el manteniment del sensor en tot moment reduirà la vida del ventilador.
Pas 1: parts necessàries
El que necessiteu
- Arduino Uno
- Escut Ethernet Arduino
- Sensor làser de matèria de partícules (normalment costa entre 10 i 30 dòlars a eBay / AliExpress)
- Sensor de temperatura i humitat DHT11 (opcional)
- Taula de pa
- Cables de pont
Pas 2: Munteu les peces
En primer lloc, heu de connectar l’escut Ethernet a l’Arduino
El sensor PM té diversos cables, però els que necessitem són VCC, GND, TX, RX.
Connecteu el VCC i el GND a + i - a la taula de suport, respectivament.
L'Arduino té pins RX i TX de maquinari, però utilitzarem l'emulació de programari de pins RX i TX als pins 2 i 3 respectivament. Connecteu l'RX del sensor a TX de l'Arduino i TX del sensor a RX de l'Arduino.
Si utilitzeu el sensor de temperatura, connecteu les línies VCC i GND a + i - a la taula de pa i la línia de dades al pin 7.
Pas 3: el codi
Podeu instal·lar el broker MQTT en un raspberry pi o en un ordinador que tingueu sempre a casa o fer servir un servei MQTT al núvol, com Cloud MQTT. A continuació, podeu escriure un script que enviï les dades com a HTTP a un webhook IFTT, ja que encara no admeten els webhook MQTT i configureu notificacions per quan els nivells de pols de la vostra llar augmentin massa.
Estació aèria Arduino
#incloure |
#incloure |
#incloure |
#incloure |
#incloure |
#incloure |
#incloure |
#incloure |
# defineDHT11_PIN7 |
# defineRX_PIN2 |
# defineTX_PIN3 |
Adreça IP 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"; // Les connexions de clients no poden tenir el mateix nom de connexió |
EthernetClient ethClient; |
Client de PubSubClient (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
unsignedlong id; |
// Arxiva el meu fitxer; |
Cordes; |
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 ("No s'ha pogut configurar Ethernet mitjançant DHCP"); |
// intentar amb addr ip fix |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (devolució de trucada); |
endarreriment (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; |
valor del caràcter; |
charValor anterior; |
if (! client.connected ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("connectat"); |
} |
} |
while (pmSerial.available ()) { |
valor = pmSerial.read (); |
if ((índex == 0 && valor! = 0x42) || (índex == 1 && valor! = 0x4d)) { |
Serial.println ("No es pot trobar la capçalera de dades."); |
tornar; |
} |
if (índex == 4 || índex == 6 || índex == 8 || índex == 10 || índex == 12 || índex == 14) { |
ValorValor = valor; |
} |
elseif (índex == 5) { |
pm1 = 256 * ValorValor + valor anterior; |
arrel ["pm1"] = abs (pm1); |
} |
elseif (índex == 7) { |
pm2_5 = 256 * Valor anterior + valor; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (índex == 9) { |
pm10 = 256 * Valor anterior + valor; |
root ["pm10"] = abs (pm10); |
} |
elseif (índex> 15) { |
trencar; |
} |
índex ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
if (DHT.temperature == -999 || DHT.humidity == -999) { |
root ["temperature"] = "N / A"; |
root ["humiditat"] = "N / A"; |
} més { |
root ["temperature"] = temperatura DHT; |
arrel ["humitat"] = DHT.humitat; |
} |
sendResults (); |
id ++; |
retard (5000); |
} |
voidsendResults () { |
// publica a MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// depuració a sèrie |
root.printTo (sèrie); |
Serial.print ('\ n'); |
} |
// Gestiona els missatges arribats als temes subscrits |
voidcallback (tema char *, byte * càrrega útil, longitud sense signar) { |
} |
veure rawair_quality.ino allotjat amb ❤ per GitHub
Pas 4: munteu la caixa
Acabo d’utilitzar una caixa que tenia al voltant i vaig perforar un forat perquè el sensor tregués aire i retallar un forat perquè els cables sortissin (tot i que era una mica massa gran).
Vaig utilitzar coixinets per fixar el sensor a la caixa, alineant el forat d’entrada del sensor amb el forat de la caixa.
Finalment, vaig endollar els cables d’alimentació i Ethernet.
Recomanat:
Estació meteorològica NaTaLia: l'estació meteorològica amb energia solar Arduino s'ha fet correctament: 8 passos (amb imatges)
Estació meteorològica NaTaLia: Estació meteorològica amb energia solar Arduino feta de la manera correcta: després d’un any d’exitació en 2 llocs diferents, comparteixo els plans del projecte de la meva estació meteorològica amb energia solar i explico com va evolucionar cap a un sistema que realment pot sobreviure durant molt de temps períodes des de l'energia solar. Si segueixes
Estació meteorològica de bricolatge i estació de sensor WiFi: 7 passos (amb imatges)
Estació meteorològica de bricolatge i estació de sensor WiFi: en aquest projecte us mostraré com crear una estació meteorològica juntament amb una estació de sensor WiFi. L'estació del sensor mesura les dades de temperatura i humitat locals i les envia, mitjançant WiFi, a l'estació meteorològica. L'estació meteorològica mostra llavors
Tires de llum LED amb decoloració controlades per sensor, alimentades per Arduino: 6 passos (amb imatges)
Tires de llum LED amb desconnexió controlades per sensor Arduino: recentment he actualitzat la cuina i sabia que la il·luminació “elevaria” l’aspecte dels armaris. Vaig optar per "True Handless", així que tinc un buit sota la superfície de treball, així com un kickboard, sota l'armari i a la part superior dels armaris disponibles i
Alimentador de gats IoT amb fotó de partícules integrat amb Alexa, SmartThings, IFTTT, Fulls de càlcul de Google: 7 passos (amb imatges)
Alimentador de gats IoT que utilitza fotó de partícules integrat amb Alexa, SmartThings, IFTTT, Fulls de càlcul de Google: la necessitat d’un alimentador automàtic de gats s’explica per si mateixa. Els gats (el nostre gat es diu Bella) poden ser desagradables quan tenen gana i, si el vostre gat és com el meu, menjarà el bol sec cada vegada. Necessitava una manera de distribuir automàticament una quantitat controlada d'aliments
Pols (LED activats per volum): 7 passos (amb imatges)
Pulse (LED activats per volum): alguna vegada heu volgut crear alguna cosa amb LED, però no sabíeu per on començar? Aquesta guia us proporcionarà alguns passos senzills per dissenyar el vostre propi codi de visualització de volum per a llums LED adreçables. Es tracta d'un divertit mesurador de soroll d'escriptori, rave de