Inhaltsverzeichnis:
- Schritt 1: Benötigte Teile
- Schritt 2: Montieren Sie die Teile
- Schritt 3: Der Code
- Schritt 4: Bauen Sie die Box zusammen
Video: Arduino-betriebene Staubpartikel-Überwachungsstation - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Sie können ziemlich einfach ein DIY-Internet der Dinge bauen, das die Staubverschmutzung in Ihrem Zuhause für weniger als 50 US-Dollar überwacht und benachrichtigt wird, wenn der Staubgehalt zu hoch wird, damit Sie den Raum belüften können, oder Sie können es nach draußen stellen und benachrichtigt werden, wenn dies der Fall ist Sie können sicher nach draußen gehen, wenn Sie in einer stark verschmutzten Gegend leben.
Ich habe dies als Schulprojekt erstellt, daher hatte ich nicht genug Zeit, um einen Dienst zu finden, der MQTT-Nachrichten entgegennimmt und sie wie Benachrichtigungen oder E-Mails an Sie sendet.
Beachten Sie auch, dass die ständige Stromversorgung des Sensors die Lebensdauer des Lüfters verkürzt.
Schritt 1: Benötigte Teile
Was du brauchen wirst
- Arduino Uno
- Arduino-Ethernet-Schild
- Partikellasersensor (normalerweise für 10 bis 30 US-Dollar bei eBay / aliexpress)
- DHT11 Temperatur- und Feuchtigkeitssensor (optional)
- Steckbrett
- Überbrückungskabel
Schritt 2: Montieren Sie die Teile
Zuerst müssen Sie das Ethernet-Shield auf den Arduino stecken
Der PM-Sensor hat mehrere Drähte, aber die, die wir brauchen, sind VCC, GND, TX, RX.
Verbinden Sie VCC und GND mit + bzw. - auf dem Steckbrett.
Der Arduino hat Hardware-RX- und TX-Pins, aber wir verwenden die Software-Emulation von RX- und TX-Pins an den Pins 2 bzw. 3. Stecken Sie den RX des Sensors auf den TX des Arduino und den TX des Sensors auf den RX des Arduino.
Wenn Sie den Temperatursensor verwenden möchten, stecken Sie die VCC- und GND-Leitungen an + und - am Steckbrett und die Datenleitung an Pin 7.
Schritt 3: Der Code
Sie können den MQTT-Broker entweder auf einem Raspberry Pi oder einem Computer installieren, den Sie immer zu Hause haben, oder einen Cloud-MQTT-Dienst wie Cloud MQTT verwenden. Dann können Sie ein Skript schreiben, das die Daten als HTTP an einen IFTT-Webhook sendet, da diese MQTT-Webhooks noch nicht unterstützen, und Benachrichtigungen einrichten, wenn die Staubbelastung in Ihrem Zuhause zu hoch wird.
Arduino-Flugstation
#enthalten |
#enthalten |
#enthalten |
#enthalten |
#enthalten |
#enthalten |
#enthalten |
#enthalten |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
IP-Adresse ip(169, 169, 100, 98); |
Byte-Mac = { |
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 |
}; |
constchar *mqtt_server = "m23.cloudmqtt.com"; |
konstant mqtt_port = 11895; |
constchar *mqtt_user = "jhetjewk"; |
constchar *mqtt_pass = "QB2p9PiMV6pn"; |
constchar *mqtt_client_name = "arduinoClient1"; // Clientverbindungen dürfen nicht denselben Verbindungsnamen haben |
EthernetClient ethClient; |
PubSubClient-Client (ethClient); |
SoftwareSerial pmSerial(RX_PIN, TX_PIN); |
dht-DHT; |
int pm1; |
int pm2_5; |
int pm10; |
unsignedlong id; |
//Datei meineDatei; |
Zeichenfolge s; |
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("Ethernet konnte nicht mit DHCP konfiguriert werden"); |
// Versuch mit fester IP-Adresse |
Ethernet.begin(mac, ip); |
} |
client.setServer(mqtt_server, mqtt_port); |
client.setCallback (Rückruf); |
Verzögerung (2000); |
Serial.println (Ethernet.localIP()); |
client.connect("arduinoClient", mqtt_user, mqtt_pass); |
Serial.print("rc="); |
Serial.print (client.state ()); |
Serial.print("\n"); |
} |
Leerschleife () { |
intindex = 0; |
Zeichenwert; |
char vorherigerWert; |
if (!client.connected()) |
{ |
if (client.connect("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("verbunden"); |
} |
} |
while (pmSerial.available()) { |
Wert = pmSerial.read(); |
if ((Index == 0 && Wert != 0x42) || (Index == 1 && Wert != 0x4d)) { |
Serial.println ("Kann den Datenheader nicht finden."); |
Rückkehr; |
} |
if (Index == 4 || Index == 6 || Index == 8 || Index == 10 || Index == 12 || Index == 14) { |
vorherigerWert = Wert; |
} |
sonst (index == 5) { |
pm1 = 256 * vorherigerWert + Wert; |
root["pm1"] = abs(pm1); |
} |
sonst (index == 7) { |
pm2_5 = 256 * vorherigerWert + Wert; |
root["pm2_5"] = abs(pm2_5); |
} |
sonst (index == 9) { |
pm10 = 256 * vorherigerWert + Wert; |
root["pm10"] = abs(pm10); |
} |
sonst (Index >15) { |
brechen; |
} |
index++; |
} |
while (pmSerial.available()) pmSerial.read(); |
int chk = DHT.read11(DHT11_PIN); |
if (DHT. Temperatur == -999 || DHT. Luftfeuchtigkeit == -999) { |
root["Temperatur"] = "N/A"; |
root["Luftfeuchtigkeit"] = "N/A"; |
} anders { |
root["temperatur"] = DHT.temperatur; |
root["Luftfeuchtigkeit"] = DHT. Luftfeuchtigkeit; |
} |
sendResults(); |
id++; |
Verzögerung (5000); |
} |
voidsendResults() { |
// in MQTT veröffentlichen |
char jsonChar[100]; |
root.printTo(jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// Debug auf seriell |
root.printTo(Seriell); |
Serial.print ('\n'); |
} |
// Behandelt eingehende Nachrichten zu abonnierten Themen |
voidcallback(char* topic, byte* payload, unsignedint Länge) { |
} |
view rawair_quality.ino hosted with ❤ by GitHub
Schritt 4: Bauen Sie die Box zusammen
Ich habe einfach eine Box benutzt, die ich herumgelegt hatte, und ein Loch für den Sensor gebohrt, um Luft zu bekommen, und ein Loch für die Kabel ausgeschnitten (obwohl es etwas zu groß war).
Ich habe Klebepads verwendet, um den Sensor an der Box zu befestigen und das Eingangsloch des Sensors mit dem gebohrten Loch auf der Box auszurichten.
Schließlich habe ich das Ethernet- und das Stromkabel angeschlossen.
Empfohlen:
Einen Arduino-Gitarren-Tuner herstellen – wikiHow
So bauen Sie einen Arduino-Gitarren-Tuner: Dies sind die Anweisungen, um einen Gitarren-Tuner aus einem Arduino und mehreren anderen Komponenten zu machen. Mit Grundkenntnissen in Elektronik und Codierung können Sie dieses Gitarrenstimmgerät herstellen. Zuerst müssen Sie wissen, was die Materialien sind. Ma
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: 9 Schritte
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: Este proyecto consiste en a alarma básica que Detecta presencia, activa una sirena de 108dB y visa al usuario mediante un SMS (opcional). Permite también el control remoto básico por parte del usuario a través de SMS (encendido, apagado, reinicio
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i