INHOUDSOPGAWE:

AirPi - luggehalte sensor: 8 stappe
AirPi - luggehalte sensor: 8 stappe

Video: AirPi - luggehalte sensor: 8 stappe

Video: AirPi - luggehalte sensor: 8 stappe
Video: CO2 Sensor für Homematic & ioBroker im Eigenbau! | verdrahtet.info [4K] 2024, November
Anonim
AirPi - luggehalte sensor
AirPi - luggehalte sensor

Het u al ooit gewonder hoekom u hoofpyn kry? En as dit te wyte is aan 'n slegte luggehalte? Met hierdie toestel kan u kyk of dit die geval is. Hierdie toestel meet die CO2-waarde, TVOC-waarde, temperatuur en humiditeit. U kan die luggehalte regstreeks op die LCD-skerm sien en 'n duidelike aanduiding sien of dit gevaarlik raak. Op hierdie manier kan u u vensters betyds oopmaak.

As u die IP -adres invoer - wat verskyn wanneer u die toestel in u blaaier begin, sal die webwerf oopmaak. U kan baie inligting oor die binnenshuise omgewing sien, asook grafieke van die afgelope minute / ure. Daar is ook 'n lewendige aanduiding en inligting en wenke op die paneelbord.

Hierdie projek is gemaak deur 'n student aan Howest Kortrijk, NMCT (New Media and Communication Technology).

Stap 1: materiaal

Materiaal
Materiaal

Dit is alles wat ek gekoop het om hierdie projek te skep. Dit is 'n relatief goedkoop projek, afhangende van die koste van die 3D-druk. As u dit op skool kan druk, kan dit baie goedkoop wees. Anders hang dit af van waar u dit druk en die materiaal waarin u dit druk. U sal agterkom dat ek baie in grootmaat gekoop het, bloot omdat dit moeilik is om individuele weerstande of leds te vind, en dit maak dit selfs goedkoper. As u tyd het, kan u die meeste items op aliexpress.com bestel, die aflewering kan 'n rukkie neem, maar op hierdie manier kan u u uitgawes beperk.

Sonder die afdruk is die geld wat ek aan hierdie projek bestee het, € 81,80.

Dit is die materiaal wat u benodig:

Kring:

  • Framboos Pi 3
  • SD -kaart 8 GB (minimum)
  • CCS811 luggehalte sensor
  • DHT22 temperatuur- en humiditeitsensor
  • Potensiometer (kontras LCD)
  • LCD 16x2
  • Trui van vrou tot vrou
  • Groen en rooi LED
  • Weerstande (2x470ohm en 1 4700ohm)

Saak:

  • 3D-druk
  • Skroewe
  • 2 -komponent gom (of ander warm gom)
  • draad sny gereedskap

Net as u 'n PCB gebruik:

  • Soldeerbout
  • Flux (maak dit makliker)
  • Blik
  • Eksperimenteer PCB 2x4cm

Stap 2: Verbindings

Verbindings
Verbindings

Verbind die drade soos hierbo. U kan 'n elektriese stroombaan in die fritzing -lêer sien. Dit is nie 'n baie ingewikkelde kring nie, maar as u dit so klein as moontlik wil maak, wil u beslis 'n eksperimentele PCB -bord kry. Die bedrading sal dieselfde wees, behalwe dat die GND en Vin aan die printplaat gekoppel word. Die sensors sal met soldeer verbind word deur vroulike springdrade of mannetjies. Moenie vergeet om die weerstand op die DHT22 -sensor te soldeer nie.

Ek beveel ook aan om kort kabels te gebruik, wat 10 cm lank is. Anders sou die boks nog meer met kabel gevul wees. U benodig nie baie lang nie, aangesien die grootte van die afdruk so klein as moontlik is.

Stap 3: 3D-druk

3D-druk
3D-druk
3D-druk
3D-druk

Die eerste gedagte wat by my opgekom het toe ek aan 'n saak dink, was 'n 3D-afdruk. Aangesien my pa verskeie ander items gedruk het en dit self ontwerp het. Saam het ons hierdie ontwerp geskep en oor elke aspek gekyk. Dit moet goed genoeg afgekoel word, alles kan vasgeskroef word en indien nie, kan dit op sy plek geskuif word.

Ons het selfs elke komponent geteken om te kyk of alles inpas. Die lêer is vir almal beskikbaar en ons hoor graag terugvoer. Ons was baie tevrede met die resultaat.

Stap 4: Kode

Die kode vir hierdie projek kan op Github gevind word. As u ander penne gebruik het (byvoorbeeld nog 'n GPIO-pen vir die LED's, moet u hierdie veranderlikes aanpas. Daar sal twee luislangskripte loop, web.py vir die webwerf en sensor.py om die sensors te lees en op te dateer die databasis. Ons sal die klas LCD vanaf lcd.py invoer.

Met 'n gekonfigureerde framboos pi kan u aan die gang kom. Eerstens moet u alle pakkette opdateer en opgradeer:

sudo apt-get update && sudo apt-get upgrade

Daarna moet u die volgende pakkette installeer:

sudo apt installeer -y python3-venv python3-pip python3-mysqldb mariadb-bediener uwsgi nginx uwsgi-plugin-python3

Skep nou 'n virtuele omgewing:

me@my -rpi: ~ $ python3 -m pip install -upgrade pip setuptools wiel virtualenv

my@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi: ~/project1 $ python3 -m venv --system-site-packages env me@my-rpi: ~/project1 $ source env/bin/ aktiveer (env) my@my-rpi: ~/project1 $ python -m pip installeer mysql-connector-python argon2-cffi Flaskfles-HTTPAuth-fles-MySQL mysql-connector-python-passlib

Aangesien dit gedoen is, kan u die kode van my GitHub in u virtuele omgewing kloon. Dit kan op verskeie maniere gedoen word.

In die gids conf kan u vier lêers vind wat u indien nodig moet aanpas. U sal beslis die gebruiker en tuisgids in elke lêer moet verander. Die uWSGI ini behoort goed te wees, solank u my kode nie verander het nie; maak seker dat u die gebruiker verander en, indien nodig, virtualenv.

Aangesien die CCS811 -sensor doelbewus vir die arduino gebruik is, kan dit nie met die snelheid van die framboos -pi oor die i2c -bus kommunikeer nie. U moet die spoed verminder tot 'n baudrate van 10000 (ek het 9600 gebruik) in die config -lêer.

U moet ook die biblioteek van die adafruit -sensor kry. Ek kan dit hier verduidelik, maar daar is 'n perfekte adafruitgids wat dit alles baie goed verduidelik.

Omdat ons wil hê dat die python -skrifte outomaties moet loop wanneer die framboos verbind is, moet u die dienste gebruik. Dit moet goed gaan as u my kode bewaar. Al wat u hoef te doen om hulle te laat loop, is om hulle in staat te stel. Voordat jy dit doen, is daar nog 'n laaste ding.

Aangesien ons 'n nginx -webbediener gebruik, moet ons die standaard deaktiveer en vervang deur ons eie config. Om dit te kan doen, moet hierdie stappe gevolg word:

  • kopieer conf/nginx na *beskikbare webwerwe *
  • Verwyder die skakel na die standaardopstelling
  • Voeg 'n skakel by die nuwe konfigurasie
  • Herbegin nginx om die veranderinge te stoor

my@my-rpi: ~/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/

my@my-rpi: ~/project1 $ sudo systemctl daemon-herlaai my@my-rpi: ~/project1 $ sudo systemctl begin project1-* me@my-rpi: ~/project1 $ sudo systemctl status project1-*

Nginx en mysql moet te alle tye werk. Hulle begin saam met die framboos pi. Die webskrif en sensorscript nog nie eers nie.

Om dit te kan doen, moet u nog steeds hierdie twee dienste met hierdie opdragte aktiveer:

sudo systemctl aktiveer project1-flask.service

sudo systemctl aktiveer project1-sensor.service

Stap 5: Databasis

Databasis
Databasis

My databasis bestaan uit drie tabelle. Die gebruiker het geen verband met ander tabelle nie. Dit word slegs gebruik om aan te meld en toegang tot die webwerf te verleen. As die toestel aangeskakel word, word die CO2-waarde en TVOC-waarde elke 50 sekondes na die databasis geskryf. Die temperatuur en humiditeit elke 5 minute. Op hierdie manier kry ons 'n duidelike oorsig van die verlede.

Die SQL-lêer kan hier gevind word, maar om die databasis op die framboos pi te kry, moet u die volgende stappe volg:

Na die installering van die pakkette in die vorige stap, moet mariadb/mysql onmiddellik werk. U kan dit met hierdie reël nagaan:

my@my-rpi: ~ $ sudo systemctl status mysql

Om die databasis en gebruikers te skep, kan u eenvoudig die sql-scripts in die kode van GitHub uitvoer. As u dit korrek gedoen het, moet u u tabelle met hierdie opdrag sien:

me@my-rpi: ~ $ echo 'toon tabelle;' | mysql project1 -t -u project1 -admin -p

As ons gereed is, kan u dit sonder die toets toets om seker te maak dat alles werk. Tensy u aan wifi gekoppel is, moet u dit met 'n ethernetkabel verbind en dit met die hand uitvoer.

Stap 6: Koppel aan Wi-Fi

Maak die wpa-aanvullende konfigurasielêer in nano oop (maak nie regtig saak nie, maak net seker dat u met die teksredakteur kan werk).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Gaan onderaan die lêer en voeg die volgende by (vervang die ssid-naam en wagwoordnaam deur joune):

netwerk = {

ssid = "ssid-name" psk = "password-name"}

Om 'n geïnkripteer wagwoord te skep, kan u wpa_passphrase gebruik en dit eenvoudig na die wpa_supplicant.conf psk kopieer om dinge veiliger te maak.

wpa_passphrase "ssid-name" "password-name"

As u wil hê dat dit outomaties aan hierdie Wi-Fi-netwerk moet koppel, en daar is ander in die config-lêer, moet u die prioriteit na 'n hoër vlak verander deur hierdie reël by die netwerk in die config-lêer te voeg:

prioriteit = 2

Moenie vergeet om die koppelvlak te herkonfigureer met:

wpa_cli -i wlan0 herkonfigureer

Nou is u gereed en gekoppel aan 'n wifi -netwerk.

Stap 7: Alles saamvoeg

Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit

Aangesien alles bedraad en gesoldeer is, kan ons by die saak uitkom. Dit is ontwerp sodat u die kas sonder los drade kan oopmaak. Dit beteken dat alles aan die onderkant vasgemaak is. Die eerste ding om te doen is 'n bietjie aanpassing by die framboos. Dit het gate op elke hoek, maar dit is nie so groot soos dit behoort te wees nie. Die deursnee moet genoeg wees om 'n skroef van 3 mm binne te sit. Ons moes die gate poets sodat dit 'n bietjie wyer word.

Die tweede ding om te doen is om 'n skroefdraad in elke gat te sny. Dit klink miskien moeilik, maar kan maklik met die regte gereedskap gedoen word. Ek beveel aan om dit by 'n plaaslike hardewarewinkel te doen; vra net 'n draadgereedskap. Aangesien my pa 'n goudsmid is, het hy die gereedskap gehad om dit by die werk te doen. Ek sal moontlik 'n nuwe stl-lêer oplaai sodat dit later gedruk kan word, maar dit benodig 'n baie akkurate drukker.

Die derde stap is om die pi op die onderste deel vas te skroef. U benodig 4 7 mm lang skroewe met 'n deursnee van 3 mm. Daarna kan u die PCD -bord bo -op die onderste deel op die gegewe plek skuif. Die CCS811 -sensor kan aan die linkerkant op die gegewe plek ingedruk word en die DHT11 kan aan die regterplaat geheg word. Albei is voldoende geïsoleer en geventileer, maar daarna het ons opgemerk dat dit steeds warm word binne. Meer hieroor later.

Dan moet u die LED's aan hul buis heg. Ons het dit met 2 -komponent gom gedoen, maar u kan dit doen soos u wil. Maak seker dat hulle daar plak.

As u nou die LCD-skerm kan aanbring, benodig u skroewe met dieselfde deursnee as die vorige, maar 'n bietjie langer. Myne was 1 cm. As die vier skroewe vasgeskroef is, bly daar net een ding oor. Bevestig die boonste deel. Al wat u nodig het, is vier skroewe met dieselfde deursnee en dit is 2 cm. Nou moet alles op sy plek wees, en u kan begin.

Stap 8: Begin dit

Die opstartproses van hierdie projek is baie maklik:

  1. Koppel die kragkabel aan die linkerkant van die omhulsel. Dit is nie baie sigbaar nie, maar u kan deur die vents sien. As u dit een keer gekry het, sal dit nie weer 'n probleem wees nie.
  2. Gee dit 'n rukkie om te begin.
  3. Die IP-adres verskyn tien sekondes lank op die skerm. Die enigste ding wat u hoef te doen, is om seker te maak dat u aan dieselfde netwerk gekoppel is en die IP-adres in die adresbalk van u blaaier in te voer.
  4. U is nou op die webwerf. U het nog nie 'n rekening nie, so skep 'n rekening.
  5. As u geregistreer is, meld aan.
  6. Klaar! U kan alle data op die webblad sien en die LCD-skerm toon die huidige luggehalte.

Sedert die warmte styg, het ons die sensors aan die onderkant van die omhulsel opgespoor. Op hierdie manier het die temperatuur nie 'n groot invloed op die geregistreerde waardes nie. Laat die toestel dus vir optimale metings staan, of u kan dit eenvoudig aan die muur hang.

Aanbeveel: