AirOwl - Weet wat je ademt!
Componenten en benodigdheden
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 10 | ||||
| × | 3 |
Apps en online services
| ||||
|
Over dit project
AirOwl is het realtime apparaat voor het bewaken van de luchtkwaliteit. Het wordt gebruikt om de luchtkwaliteit te bewaken en haalt gegevens op van de sensor en geeft output op de Blynk-app met behulp van BLE van Arduino/Genuino 101. Een project dat ons kan helpen te weten wat we ademen!
Menselijke activiteiten beïnvloeden het milieu. Daarom hebben we besloten om een apparaat te maken dat helpt om de omgeving te leren kennen en op basis daarvan stappen te ondernemen.
De onderstaande afbeelding is de afbeelding van de AirOwl die draait op Arduino 101.
Luchtkwaliteit kan worden bepaald door 3 factoren:-
1) Blynk-app (BLE)
2) Kleur van de ogen van Airowl
Als de kleur van de ogen groen is, bevindt u zich in een veiligere omgeving.
als de kleur van de ogen blauw is, moet u voorzichtig zijn.
als de kleur van de ogen rood is, is er gevaar.
3) Seriële monitor
Ga voor de schema's en het ontwerp van de Airowl naar:-
https://github.com/anithp/AirOwl_Genuino101
Nadat u de schema's hebt doorlopen, sluit u het circuit aan.
Een basisschema voor het project wordt hieronder getoond.
Het gegevensblad van de stofsensor vindt u hieronder voor meer informatie over de sensor:
https://goo.gl/17Vgeg
Laten we nu iets gaan maken:-
Na het maken van verbindingen vanuit schema's, upload de code. (Ervan uitgaande dat u de vereiste bibliotheken hebt geïnstalleerd.)
Raadpleeg voor meer informatie:- http://docs.blynk.cc/
Laten we nu blynk instellen:
Eerste intall blynk van playstore/appstore
Playstore - https://play.google.com/store/apps/details?id=cc.blynk&hl=nl
Appstore - https://itunes.apple.com/us/app/blynk-iot-for-arduino-rpi-particle-esp8266/id808760481?mt=8
Maak na de installatie een account aan.
Maak eerst een nieuw project in Blynk
Selecteer vervolgens Board en geef de projectnaam op
Klik na het selecteren van het bord op maken.
Nadat u Aanmaken hebt geselecteerd, wordt de authenticatiesleutel naar uw geregistreerde account verzonden. En u kunt e-mail ook opnieuw verzenden vanuit de instelling.
Er wordt nu een venster geopend waarin we een lege werkruimte zullen zien.
Klik op de knop Toevoegen en voeg BLE en 3 Gauge toe.
Nadat u de meter hebt geselecteerd, klikt u in de werkruimte op de meter en selecteert u pin als respectievelijk V1, V2, V3 voor alle meters.
Na het instellen ziet deze laatste werkruimte eruit als
Houd nu de Arduino 101 aangesloten op de voeding en selecteer vervolgens het Bluetooth-pictogram op de werkruimte om Bluetooth in te stellen (PS- Houd Bluetooth van mobiel AAN).
En ga dan naar de hoofdwerkruimte en begin met het simuleren van het project.
Gegevens worden weergegeven in het blynk-venster.
Voor degene die dit wil prototypen met behulp van breadboard, het volgende schema is voor jou, ik hoop dat het je ervaring met Airowl geweldig kan maken.
Gegevens zijn ook te zien op een seriële monitor.
Schema van de PCB wordt hieronder getoond.
Bordbestand wordt hieronder weergegeven.
3D-beeld van pcb ziet eruit.
Alle bestanden van deze afbeeldingen zijn te vinden op de onderstaande github-link.
https://github.com/anithp/AirOwl_Genuino101
Nu kunt u de Airowl gebruiken en weten wat u inademt, hopelijk helpt het.
Bedankt :)
Code
- Air_owl
Air_owlC/C++
/* Copyright (C) 2017 Anith Patel en Sohil Patel. Er wordt toestemming verleend om dit document te kopiëren, distribueren en/of wijzigen onder de voorwaarden van de GNU-licentie voor vrije documentatie, versie 1.3 of enige latere versie gepubliceerd door de Free Software Foundation; zonder invariante secties, zonder vooromslagteksten en zonder achteromslagteksten. Een kopie van de licentie is opgenomen in de sectie getiteld "GNU Free Documentation License". */#include#include #define BLYNK_SERIAL Gegevens afdrukken //schrijven voor blynkbyte-gegevens [24];//verwijs naar de datasheet van de stofsensorunsigned int PM1 =0; // initialisatie van waarden voor de fijnstofunsigned int PM25 =0;unsigned int PM10 =0;unsigned int count =0;const int PIN1 =3;const int PIN2 =5;const int PIN3 =6;char auth[] ="Auth sleutel"; // plak de auth-sleutel van BlynkBLEPeripheral blePeripheral; void setup () { blePeripheral.setLocalName ("Airowl"); // BLE instellen voor blynk blePeripheral.setDeviceName ("Airowl"); blePeripheral.setAppearance (384); Blynk.begin(blePeripheral, auth); blePeripheral.begin(); Serial1.begin (9600); // initialisatie van uart-communicatie Serial.begin (9600); pinMode (PIN1, UITGANG); // led setup pinMode (PIN2, OUTPUT); pinMode(PIN3, OUTPUT);}void loop() { Blynk.run(); // roept blynk blePeripheral.poll(); Serial.println ("Concentratie van PM1 is:"); // drukt af in seriële monitor Serial.println (PM1/count); Serial.println ("Concentratie van PM25 is:"); Serial.println (PM25/count); Serial.println ("Concentratie van PM10 is:"); Serial.println(PM10/count); vertraging (500); SchrijfData(); // roept de writedata-functie aan als ((PM1+PM25+PM10)/3 <=100) {LedColor (0, 255, 0); vertraging (500); } else if ((PM1+PM25+PM10)/3 <=300 &&(PM1+PM25+PM10)/3> 100){ LedColor(255, 0, 0); vertraging (500); } else{ LedColor (0, 0, 255); vertraging (500); } //logica voor de led-gegevens} ongeldig LedColor (int rood, int blauw, int groen) {analogeWrite (PIN1, rood); analogWrite(PIN2, blauw); analogWrite(PIN3, groen); }nietig getWinsenData(void) //functie voor het verkrijgen van gegevens van de sensor{ // voor het begrijpen van deze logica raadpleegt u de datasheet van de sensorbyte i =0; int controlesom =0; Serieel1.flush(); while (Serial1.available()) { data[i] =Serial1.read(); // leest seriële gegevens van sensor als (i <=21) // voorwaarde voor de sensorleesgegevens {checksum +=data [i]; } if (i ==23) { if (checksum ==((256 * data[22]) + data[23])) { if (data[0] ==66) { if (data[1] ==77) { if (i ==23) { PM1 +=((data[4] * 256) + data[5]); // haalt gegevens op en slaat ze op voor PM1 PM25 +=((data [6] * 256) + data [7]); // haalt gegevens op en slaat ze op voor PM2.5 PM10 +=((data[8] * 256) + data[9]); // haalt gegevens op en slaat ze op voor PM10 count++; Serieel1.flush(); // wacht op seriële gegevens om pauze te verzenden; } } } } else { breken; } } ik++; vertraging(10); } } void WriteData () // gegevens verzenden naar blynk { getWinsenData (); // roept getWinsendata-functie Blynk.virtualWrite (V1, PM1/count) op; // schrijf gegevens naar Blynk Blynk.virtualWrite (V2, PM25/count); Blynk.virtualWrite(V3, PM10/count); vertraging (1000); }
Aangepaste onderdelen en behuizingen
AirOwl
https://github.com/IndiaOpenDataAssociation/AirOwlSchema's
AirOwl Genuino 101
https://github.com/anithp/AirOwl_Genuino101Productieproces
- Een inleiding tot teenklemmen:wat u moet weten
- Koolstofvezelgieten:wat u moet weten
- Voorspellend onderhoud – Wat u moet weten
- 7 React-bibliotheken die je moet kennen
- Weet u wat uw bedrijf waard is?
- Wat zijn Jig Feet-knoppen? Dit is wat u moet weten
- AC- en DC-motoren:wat u moet weten
- Wat u moet weten over PCB-fabricage
- Wat u moet weten over apparatuurfinanciering
- Wat u moet weten over onderwatermotorpompen?
- Wat u moet weten over de centrifugaalpomp