Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Hoe de luchtkwaliteit op OpenSensors te meten

Hoe de luchtkwaliteit van het Open Data Institute te meten met behulp van een Arduino en een Shinyei PPD-42.

Inleiding

Dus, terwijl we dachten aan een goede demonstratie voor het Opensensors-platform, dachten we waarom niet eens kijken hoe vervuild onze werkplek is door een sensor aan te sluiten om een ​​continue gegevensstroom naar de Opensensors-berichtenmakelaar te publiceren. Hiervoor hebben we een gemakkelijk op te pakken en te gebruiken sensor nodig, we hebben gekozen voor de Shinyei PPD-42. We zullen dit gebruiken om het aantal potentieel gevaarlijke kleine deeltjes in de lucht te meten, met een Arduino aangesloten op een Linux-pc (of Raspberry PI).

Om dit miniproject uit te voeren heb je nodig:

  • Shinyei PPD-42
  • Arduino UNO
  • Computer met Linux geïnstalleerd (u kunt een Raspberry PI gebruiken)

We baseren deze doorloop op een project genaamd DustDuino dat de Shinyei PPD-42-sensor gebruikt met een arduino en een wifi-module. Bekijk het hier. We hebben dit project als referentie gebruikt bij het instellen van de sensor en het schrijven van de Arduino-code.

Eerst volgen we stap 2 van de instructies voor het aansluiten van de sensor op de Arduino. Vervolgens downloaden we de code uit de github-repository van het project door de link voor de code DustDuinoSerial.ino te openen, raw te selecteren en die pagina op te slaan.

Als we dit openen in de arduino IDE, uploaden we het nu naar onze Arduino UNO door de Arduino aan te sluiten en op uploaden te drukken.

U kunt controleren of de gegevens binnenkomen door de seriële monitor van de Arduino IDE te gebruiken.

We moeten dan uitzoeken hoe we het inkomende seriële bericht naar de Opensensors message broker kunnen sturen.

Om dit te doen hebben we ervoor gekozen om een ​​Python-script te schrijven. We gebruikten de Mosquitto Python-module. Ik ga ervan uit dat je Python al hebt geïnstalleerd, omdat het voorverpakt is op de meeste versies van Linux. Als je het nog niet hebt, moet je pip installeren om de Mosquitto python-module te downloaden en in te stellen. Op Ubuntu of Debian kan dit met het volgende commando:

sudo apt-get install python-pip  

Zodra pip is geïnstalleerd, kunnen we de Mosquitto python-clientmodule installeren met behulp van de volgende opdracht:

sudo pip install paho-mqtt  

U kunt ontdekken hoe u de python-module gebruikt door de website te lezen die we hierboven hebben gelinkt. Het schrijven en compileren van python is heel eenvoudig.

Hallo Python-wereld

Open uw favoriete platte-teksteditor. Voer de regel in:

print "Hallo wereld"  

Sla het op als hi.py. Navigeer vervolgens in terminal naar uw document en voer de opdracht in:

python hi.py  

Je zou je "Hallo wereld" -reactie moeten zien. Zo eenvoudig is het.

Hallo Opensensors

Om de Mosquitto-client python-module te gebruiken, kunnen we de volgende code uitvoeren om publicatie te testen. U moet mijn gebruikersnaam "Louis" (met behoud van de spraakmarkeringen) en wachtwoord vervangen door uw gegevens:

De muggenbibliotheek die we nodig hebben om te communiceren met de Opensensors-berichtenmakelaar:

importeer paho.mqtt.client als mqtt  

Initialiseer de clientoptie met onze client-ID van ons apparaat:

mqttc =mqtt.Client(client_id="939")  

Stel onze gebruikersnaam en wachtwoord in:

mqttc.username_pw_set("Louis", password="AbcDEFgH")  

Maak verbinding met de Opensensors-server:

mqttc.connect("mqtt.opensensors.io")  

Publiceer een bericht om hallo te zeggen:

mqttc.publish("/users/Louis/test2", payload="Hallo Opensensors!", qos=0, retain=False)  

Verbinding verbreken:

mqttc.disconnect();  

Succes, je zou nu een werkende sensor moeten hebben 🙂

Vervolgens moeten we de serie werkend krijgen. Om erachter te komen hoe uw arduino seriële poort eruit ziet, hebben we het volgende commando uitgevoerd in terminal:

dmesg | grep tty  

De uitvoer was ongeveer zo...

[ 0.000000] console [tty0] ingeschakeld[ 3522.192687] cdc_acm 7-1:1.0:ttyACM0:USB ACM-apparaat  

De tweede regel bevat details van onze Ardiuno. De ttyACM0 is de apparaatnaam en '/dev/ttyACM0' is de seriële poort.

Het openen en lezen van de seriële poort Python maakt het heel gemakkelijk. U kunt een kleine test uitvoeren om te controleren of het werkt door de volgende code te gebruiken:

Voor communicatie met de Arduino moeten we de seriële bibliotheek gebruiken:

import serialser =serial.Serial('/dev/ttyACM0') # open eerste seriële poortwhile True:print ser.readline() # drukt elke regel af die van serieel wordt gelezen  

Ten slotte hoeven we alleen nog maar de twee stukken in elkaar te hakken. Dit is de code die we hebben gebruikt:

import serialimport paho.mqtt.client as mqttimport timemqttc =mqtt.Client(client_id="939")mqttc.username_pw_set("Louis", password="AbcDEFgH") mqttc.connect("mqtt.opensensors.io")ser =serial.Serial('/dev/ttyACM0') # open eerste seriële poortwhile True:message=ser.readline()print messagemqttc.publish("/users/Louis/ ODI/luchtkwaliteit", payload=bericht, qos=0, behouden=False)time.sleep(1);  

Toen we dit deden, publiceerden we onze sensorgegevens naar Opensensors!

WE raden aan om de Arduino-code aan te passen om de gegevens in JSON-indeling uit te voeren. Dit maakt het gemakkelijker om te lezen en functionaliteit toe te voegen.

Bekijk hier het onderwerp dat we hebben gemaakt over het produceren van Open Data!

Code

importeer serialimport paho.mqtt.client als mqttimport timemqttc =mqtt.Client(client_id="939")mqttc.username_pw_set("Louis", password="AbcDEFgH")mqttc.connect ("opensensors.io")ser =serial.Serial('/dev/ttyACM0') # open eerste seriële poortwhile True:message=ser.readline()print messagemqttc.publish("/users/Louis/ODI/airquality", payload=bericht, qos=0, behouden=False)time.sleep(1); 

Bron:Luchtkwaliteit meten op OpenSensors


Productieproces

  1. Helium luchtkwaliteitssensor
  2. Hoe slechte luchtkwaliteit onze gezondheid beïnvloedt
  3. IR-afstandsbedieningen hacken
  4. Hoe gemakkelijk is het om een ​​thermistor te gebruiken?!
  5. Hoe de efficiëntie van de luchtcompressor te verhogen?
  6. Hoe de dikte van het soldeermasker te meten
  7. Hoe IoT de ontwikkeling van indoor AQMS faciliteert?
  8. Hoe werken luchtdrogers?
  9. Hoe verontreinigingen in perslucht te verwijderen
  10. Siliconen polsbandjes gebruiken om de luchtkwaliteit te meten
  11. Op koolstof gebaseerde luchtkwaliteitssensor