Table des matières:
- Étape 1: Pièces nécessaires
- Étape 2: Assembler les pièces
- Étape 3: Le code
- Étape 4: Assemblez la boîte
Vidéo: Station de surveillance des particules de poussière alimentée par Arduino : 4 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Vous pouvez assez facilement créer un appareil Internet des objets de bricolage qui surveille la pollution par la poussière dans votre maison pour moins de 50 $ et être averti lorsque le niveau de poussière devient trop élevé afin que vous puissiez aérer la pièce, ou vous pouvez le placer à l'extérieur et être averti si c'est sortir en toute sécurité si vous habitez dans une zone très polluée.
J'ai fait cela comme un projet scolaire, donc je n'ai pas eu assez de temps pour trouver un service qui prendra les messages MQTT et vous les enverra comme des notifications ou des e-mails.
Notez également que le fait de maintenir le capteur alimenté en permanence réduira la durée de vie du ventilateur.
Étape 1: Pièces nécessaires
Ce dont vous aurez besoin
- Arduino Uno
- Blindage Ethernet Arduino
- Capteur laser de particules (généralement entre 10 et 30 $ sur eBay/aliexpress)
- Capteur de température et d'humidité DHT11 (en option)
- Planche à pain
- Câbles de démarrage
Étape 2: Assembler les pièces
Tout d'abord, vous devez brancher le blindage Ethernet sur l'Arduino
Le capteur PM a plusieurs fils, mais ceux dont nous avons besoin sont VCC, GND, TX, RX.
Connectez le VCC et GND à + et - sur la maquette respectivement.
L'Arduino a des broches matérielles RX et TX, mais nous utiliserons une émulation logicielle des broches RX et TX sur les broches 2 et 3 respectivement. Branchez le RX du capteur au TX de l'Arduino et le TX du capteur au RX de l'Arduino.
Si vous envisagez d'utiliser le capteur de température, branchez les lignes VCC et GND sur + et - sur la planche à pain et la ligne de données sur la broche 7.
Étape 3: Le code
Vous pouvez soit installer le courtier MQTT sur un raspberry pi ou un ordinateur que vous avez toujours à la maison, soit utiliser un service cloud MQTT, comme Cloud MQTT. Ensuite, vous pouvez écrire un script qui envoie les données sous forme de HTTP à un webhook IFTT, car ils ne prennent pas encore en charge les webhooks MQTT et configurent des notifications lorsque les niveaux de poussière dans votre maison deviennent trop élevés.
Station aérienne Arduino
#comprendre |
#comprendre |
#comprendre |
#comprendre |
#comprendre |
#comprendre |
#comprendre |
#comprendre |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
Adresse IP ip(169, 169, 100, 98); |
octet mac = { |
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 |
}; |
constchar *mqtt_server = "m23.cloudmqtt.com"; |
constante mqtt_port = 11895; |
constchar *mqtt_user = "jhetjewk"; |
constchar *mqtt_pass = "QB2p9PiMV6pn"; |
constchar *mqtt_client_name = "arduinoClient1"; // Les connexions clientes ne peuvent pas avoir le même nom de connexion |
EthernetClient ethClient; |
Client PubSubClient (ethClient); |
SoftwareSerial pmSerial(RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
identifiant long non signé; |
//Fichier monFichier; |
Chaîne s; |
StaticJsonBuffer<200> jsonBuffer; |
JsonObject& root = jsonBuffer.createObject(); |
void setup() { |
Serial.begin (57600); |
pmSerial.begin(9600); |
identifiant = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
si (Ethernet.begin(mac) == 0) |
{ |
Serial.println("Impossible de configurer Ethernet à l'aide de DHCP"); |
// tentative avec adresse IP fixe |
Ethernet.begin(mac, ip); |
} |
client.setServer(mqtt_server, mqtt_port); |
client.setCallback(rappel); |
retard (2000); |
Serial.println(Ethernet.localIP()); |
client.connect("arduinoClient", mqtt_user, mqtt_pass); |
Serial.print("rc="); |
Serial.print(client.state()); |
Serial.print("\n"); |
} |
boucle vide() { |
indexent = 0; |
valeur de caractère; |
char previousValue; |
si (!client.connected()) |
{ |
if (client.connect("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println("connecté"); |
} |
} |
while (pmSerial.available()) { |
valeur = pmSerial.read(); |
if ((index == 0 && valeur != 0x42) || (index == 1 && valeur != 0x4d)) { |
Serial.println("Impossible de trouver l'en-tête des données."); |
revenir; |
} |
if (index == 4 || index == 6 || index == 8 || index == 10 || index == 12 || index == 14) { |
valeur précédente = valeur; |
} |
elseif (indice == 5) { |
pm1 = 256 * valeur précédente + valeur; |
racine["pm1"] = abs(pm1); |
} |
elseif (indice == 7) { |
pm2_5 = 256 * valeur précédente + valeur; |
racine["pm2_5"] = abs(pm2_5); |
} |
elseif (indice == 9) { |
pm10 = 256 * valeur précédente + valeur; |
racine["pm10"] = abs(pm10); |
} |
elseif (indice >15) { |
Pause; |
} |
index++; |
} |
while (pmSerial.available()) pmSerial.read(); |
int chk = DHT.read11(DHT11_PIN); |
if (DHT.temperature == -999 || DHT.humidity == -999) { |
racine["température"] = "N/A"; |
racine["humidité"] = "N/A"; |
} autre { |
racine["température"] = DHT.temperature; |
racine["humidité"] = DHT.humidité; |
} |
envoyerRésultats(); |
identifiant++; |
retard (5000); |
} |
voidsendResults() { |
// publier sur MQTT |
char jsonChar[100]; |
root.printTo(jsonChar); |
Serial.println(client.publish("arduino", jsonChar)); |
// débogage en série |
root.printTo(Série); |
Serial.print('\n'); |
} |
// Gère les messages arrivés sur le(s) sujet(s) souscrit(s) |
voidcallback(char* topic, byte* payload, unsignedint length) { |
} |
voir rawair_quality.ino hébergé avec ❤ par GitHub
Étape 4: Assemblez la boîte
J'ai juste utilisé une boîte que j'avais traînée et j'ai percé un trou pour que le capteur puisse extraire de l'air et j'ai découpé un trou pour que les câbles sortent (bien qu'il soit un peu trop grand).
J'ai utilisé des tampons de colle pour fixer le capteur à la boîte, en alignant le trou d'entrée du capteur avec le trou percé sur la boîte.
Enfin, j'ai branché les câbles Ethernet et d'alimentation.
Conseillé:
Lampe(s) LED alimentée par batterie avec charge solaire : 11 étapes (avec photos)
Lampe(s) LED à piles avec charge solaire : ma femme enseigne aux gens comment faire du savon, la plupart de ses cours avaient lieu le soir et ici en hiver, il fait noir vers 16h30, certains de ses étudiants avaient du mal à trouver notre loger. Nous avions un panneau devant mais même avec un éclairage de rue
Système de surveillance de la qualité de l'air pour la pollution par les particules : 4 étapes
Système de surveillance de la qualité de l'air pour la pollution par les particules : INTRO : 1 Dans ce projet, je montre comment construire un détecteur de particules avec affichage des données, sauvegarde des données sur carte SD et IOT. Visuellement, un affichage annulaire en néopixels indique la qualité de l'air. 2 La qualité de l'air est une préoccupation de plus en plus importante t
Machine à brouillard glacé ultime - Contrôlée par Bluetooth, alimentée par batterie et imprimée en 3D. : 22 étapes (avec photos)
Machine à brouillard à glace sèche ultime - Contrôlée par Bluetooth, alimentée par batterie et imprimée en 3D. : J'avais récemment besoin d'une machine à glace sèche pour des effets théâtraux pour un spectacle local. Notre budget ne s'étendrait pas à l'embauche d'un professionnel, c'est donc ce que j'ai construit à la place. Il est principalement imprimé en 3D, contrôlé à distance via Bluetooth, alimentation par batterie
Surveillance de la qualité de l'air à l'aide de photons de particules : 11 étapes (avec photos)
Surveillance de la qualité de l'air à l'aide de photons de particules : Dans ce projet, le capteur de particules PPD42NJ est utilisé pour mesurer la qualité de l'air (PM 2,5) présente dans l'air avec des photons de particules. Il affiche non seulement les données sur Particle console et dweet.io, mais indique également la qualité de l'air à l'aide de LED RVB en la modifiant
Surveillance de salle de conférence à l'aide de photons de particules : 8 étapes (avec photos)
Surveillance de salle de conférence à l'aide de Particle Photon : IntroductionDans ce didacticiel, nous allons créer un moniteur de salle de conférence à l'aide de Particle Photon. Dans cette particule est intégrée à Slack à l'aide de Webhooks pour obtenir des mises à jour en temps réel indiquant si une salle est disponible ou non. Les capteurs PIR sont utilisés pour d