Სარჩევი:

AirPi - ჰაერის ხარისხის სენსორი: 8 ნაბიჯი
AirPi - ჰაერის ხარისხის სენსორი: 8 ნაბიჯი

ვიდეო: AirPi - ჰაერის ხარისხის სენსორი: 8 ნაბიჯი

ვიდეო: AirPi - ჰაერის ხარისხის სენსორი: 8 ნაბიჯი
ვიდეო: EZ-WifiBroadcast , AirPi 1-я часть 2024, დეკემბერი
Anonim
AirPi - ჰაერის ხარისხის სენსორი
AirPi - ჰაერის ხარისხის სენსორი

ოდესმე გიფიქრიათ რატომ გტკივათ თავი? და თუ ეს გამოწვეულია ჰაერის ცუდი ხარისხით? ამ მოწყობილობის საშუალებით თქვენ შეგიძლიათ შეამოწმოთ ეს ასეა თუ არა. ეს მოწყობილობა ზომავს CO2 მნიშვნელობას, TVOC მნიშვნელობას, ტემპერატურასა და ტენიანობას. თქვენ შეგიძლიათ ნახოთ ჰაერის ხარისხი პირდაპირ LCD ეკრანზე და ნახოთ მკაფიო მითითება, თუ ის საშიში ხდება. ამ გზით თქვენ შეგიძლიათ გახსნათ თქვენი ფანჯრები დროულად.

თუ თქვენ შეიყვანთ IP მისამართს - ნაჩვენებია მოწყობილობის გაშვებისას თქვენს ბრაუზერში - ვებგვერდი გაიხსნება. თქვენ შეგიძლიათ ნახოთ ბევრი ინფორმაცია შიდა გარემოს შესახებ, გასული წუთების / საათების გრაფიკებთან ერთად. ასევე არის პირდაპირი მითითება და ზოგიერთი ინფორმაცია და რჩევა დაფაზე.

ეს პროექტი შეასრულა სტუდენტმა Howest Kortrijk– ში, NMCT (ახალი მედია და საკომუნიკაციო ტექნოლოგია).

ნაბიჯი 1: მასალები

მასალები
მასალები

ეს არის ყველაფერი, რაც შევიძინე ამ პროექტის შესაქმნელად. ეს არის შედარებით იაფი პროექტი, რაც დამოკიდებულია 3D ბეჭდვის ღირებულებაზე. თუ თქვენ შეძლებთ მისი დაბეჭდვას სკოლაში, ეს შეიძლება იყოს ძალიან იაფი. წინააღმდეგ შემთხვევაში, ეს დამოკიდებულია იმაზე, თუ სად ბეჭდავთ და მასალას, რომელშიც ბეჭდავთ. თქვენ შეამჩნევთ, რომ ბევრი ვიყიდე ნაყარი, უბრალოდ იმიტომ, რომ ძნელია იპოვოთ ინდივიდუალური რეზისტორები ან ლედები და ეს კიდევ უფრო იაფს ხდის. თუ დრო გაქვთ, შეგიძლიათ შეუკვეთოთ ნივთების უმეტესობა aliexpress.com– ზე, მიწოდებას შეიძლება გარკვეული დრო დასჭირდეს, მაგრამ ამ გზით თქვენ შეგიძლიათ შეზღუდოთ თქვენი ხარჯები.

ბეჭდვის გარეშე, ამ პროექტზე დახარჯული ფული არის 81,80 ევრო.

ეს არის თქვენთვის საჭირო მასალები:

წრე:

  • ჟოლო პი 3
  • SD ბარათი 8 GB (მინიმალური)
  • CCS811 ჰაერის ხარისხის სენსორი
  • ტემპერატურისა და ტენიანობის სენსორი DHT22
  • პოტენომეტრი (კონტრასტული LCD)
  • LCD 16x2
  • ქალი მდე ქალი jumper მავთულები
  • მწვანე და წითელი LED
  • რეზისტორები (2x470ohm და 1 4700ohm)

საქმე:

  • 3D- ბეჭდვა
  • ხრახნები
  • 2 კომპონენტიანი წებო (ან სხვა ცხელი წებო)
  • ძაფის ჭრის ინსტრუმენტი

მხოლოდ თქვენ იყენებთ PCB- ს:

  • გასაყიდი რკინა
  • ნაკადი (აადვილებს)
  • Ქილა
  • ექსპერიმენტი pcb 2x4 სმ

ნაბიჯი 2: კავშირები

კავშირები
კავშირები

შეაერთეთ მავთულები, როგორც ზემოთ. თქვენ შეგიძლიათ ნახოთ ელექტრული წრე მოციმციმე ფაილში. ეს არ არის ძალიან რთული წრე, მაგრამ თუ გსურთ გახადოთ ის რაც შეიძლება პატარა, აუცილებლად გინდათ მიიღოთ ექსპერიმენტის PCB დაფა. გაყვანილობა იგივე იქნება, გარდა GND და Vin იქნება დაკავშირებული PCB დაფაზე. სენსორები დაუკავშირდება ქალი ჯუმბერის მავთულხლართებს ან მამაკაცებს შედუღებით. ნუ დაგავიწყდებათ, რომ შევაერთოთ რეზისტორი DHT22 სენსორზე.

მე ასევე გირჩევთ გამოიყენოთ მოკლე კაბელები, 10 სმ უნდა გააკეთოთ. წინააღმდეგ შემთხვევაში ყუთი კიდევ უფრო სავსე იქნებოდა კაბელით. თქვენ არ გჭირდებათ ძალიან გრძელი, რადგან ბეჭდვის ზომა დამზადებულია რაც შეიძლება მცირე ზომის.

ნაბიჯი 3: 3D ბეჭდვა

3D- ბეჭდვა
3D- ბეჭდვა
3D- ბეჭდვა
3D- ბეჭდვა

პირველი ნააზრევი, რომელიც თავში გამიჩნდა, როდესაც საქმეზე ვფიქრობდი, იყო 3D ბეჭდვა. მას შემდეგ, რაც მამაჩემმა დაბეჭდა სხვა სახის ნივთები და მან თვითონ შექმნა ისინი. ჩვენ ერთად შევქმენით ეს დიზაინი და ვიფიქრეთ ყველა ასპექტზე. ის საკმარისად კარგად უნდა გაცივდეს, ყველაფერი შეიძლება დაიშალოს თავის ადგილზე და თუ არა, ის შეიძლება ჩაითრიოს თავის ადგილას.

ჩვენ კი ყველა კომპონენტი გავამახვილეთ იმის შესამოწმებლად, შეესაბამება თუ არა ყველაფერი. ჩვენ ძალიან კმაყოფილები ვართ შედეგით.

ნაბიჯი 4: კოდი

ამ პროექტის კოდი შეგიძლიათ იხილოთ Github– ზე. თუ თქვენ იყენებთ სხვა ქინძისთავებს (მაგალითად, სხვა GPIO-pin LED- ებისთვის, თქვენ მოგიწევთ ამ ცვლადების მორგება. იქნება ორი პითონის სკრიპტი გაშვებული, web.py ვებსაიტისთვის და sensor.py სენსორების წასაკითხად და განახლებისთვის. ჩვენ ვატარებთ კლასის LCD– ს lcd.py– დან.

კონფიგურირებული ჟოლოს პი შეგიძლიათ დაიწყოთ. უპირველეს ყოვლისა, თქვენ უნდა განაახლოთ და განაახლოთ ყველა პაკეტი:

sudo apt-get განახლება && sudo apt-get განახლება

ამის შემდეგ თქვენ უნდა დააინსტალიროთ შემდეგი პაკეტები:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

ახლა შექმენით ვირტუალური გარემო:

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

me@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi:/project1 $ python3 -m venv --system-site-packages env me@my-rpi:/project1 $ source env/bin/ გააქტიურება (env) me@my-rpi:/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

მას შემდეგ რაც ეს კეთდება, თქვენ შეგიძლიათ კლონირება მოახდინოთ ჩემი GitHub– ის ვირტუალურ გარემოში. ეს შეიძლება გაკეთდეს მრავალი გზით.

დირექტორიის კონფიგურაციაში შეგიძლიათ ნახოთ ოთხი ფაილი, რომელთა საჭიროების შემთხვევაში მოგიწევთ მორგება. თქვენ აუცილებლად უნდა შეცვალოთ მომხმარებელი და მთავარი დირექტორია ყველა ფაილში. UWSGI ini უნდა იყოს კარგი მანამ, სანამ თქვენ არ შეცვლით ჩემს კოდს, დარწმუნდით, რომ შეცვალეთ მომხმარებელი და virtualenv საჭიროების შემთხვევაში.

ვინაიდან CCS811 სენსორი მიზანმიმართულად იქნა გამოყენებული არდუინოსთვის, მას არ შეუძლია კომუნიკაცია i2c ავტობუსით ჟოლოს პი სიჩქარით. თქვენ უნდა შეამციროთ სიჩქარე 10000 baudrate– მდე (მე გამოვიყენე 9600) კონფიგურაციის ფაილში.

თქვენ ასევე უნდა მიიღოთ ადაფრუტის სენსორის ბიბლიოთეკა. მე შემიძლია ამის ახსნა აქ, მაგრამ არსებობს სრულყოფილი ადაფრუტის სახელმძღვანელო, რომელიც ამ ყველაფერს ძალიან კარგად ხსნის.

იმის გამო, რომ ჩვენ გვსურს პითონის სკრიპტები ავტომატურად იმუშაოს ჟოლოსთან დაკავშირებისას, თქვენ მოგიწევთ სერვისების გამოყენება. ისინი კარგად იქნებიან, თუ ჩემს კოდს ინახავ. ყველაფერი რაც თქვენ უნდა გააკეთოთ მათ გასაშვებად არის მათი ჩართვა. სანამ ამას გააკეთებ, არის ერთი ბოლო რამ.

ვინაიდან ჩვენ ვიყენებთ nginx ვებ სერვერს, ჩვენ მოგვიწევს გამორთვა ნაგულისხმევი და შეცვალეთ იგი საკუთარი კონფიგურაციით. ამისათვის ეს ნაბიჯები უნდა დაიცვას:

  • დააკოპირეთ conf/nginx *საიტებზე-ხელმისაწვდომი *
  • წაშალეთ ნაგულისხმევი კონფიგურაციის ბმული
  • დაამატეთ ბმული ახალ კონფიგურაციაზე
  • გადატვირთეთ nginx ცვლილებების შესანახად

me@my-rpi: ~/project1 $ sudo cp conf/project1-*. სერვისი/etc/systemd/system/

me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi:/project1 $ sudo systemctl პროექტის დაწყება1-* me@my-rpi:/project1 $ sudo systemctl სტატუსი პროექტი1-*

Nginx და mysql უნდა მუშაობდეს ნებისმიერ დროს. ისინი იწყებენ ჟოლოს პითან ერთად. ვებ სკრიპტი და სენსორული სკრიპტი ჯერ კიდევ არ არის.

ამისათვის თქვენ ჯერ კიდევ უნდა ჩართოთ ეს ორი სერვისი ამ ბრძანებებით:

sudo systemctl ჩართვა project1-flask.service

sudo systemctl ჩართვა project1-sensor.service

ნაბიჯი 5: მონაცემთა ბაზა

Მონაცემთა ბაზა
Მონაცემთა ბაზა

ჩემი მონაცემთა ბაზა სამი ცხრილისგან შედგება. მომხმარებელს არანაირი კავშირი არ აქვს სხვა ცხრილებთან. ეს გამოიყენება მხოლოდ საიტზე შესასვლელად და წვდომისათვის. როდესაც მოწყობილობა ჩართულია, CO2 მნიშვნელობა და TVOC მნიშვნელობა მონაცემთა ბაზაში ჩაიწერება ყოველ 50 წამში. ტემპერატურა და ტენიანობა ყოველ 5 წუთში. ამ გზით ჩვენ ვიღებთ ნათელ მიმოხილვას წარსულის შესახებ.

SQL ფაილი შეგიძლიათ იხილოთ აქ, მაგრამ ჟოლოს პიზე მონაცემთა ბაზის მისაღებად თქვენ უნდა შეასრულოთ ეს ნაბიჯები:

წინა ეტაპზე პაკეტების დაყენების შემდეგ, mariadb/mysql დაუყოვნებლივ უნდა გაშვებულიყო. ამის შემოწმება შეგიძლიათ ამ ხაზით:

me@my-rpi: su $ sudo systemctl სტატუსი mysql

მონაცემთა ბაზისა და მომხმარებლების შესაქმნელად შეგიძლიათ უბრალოდ გაუშვათ sql- სკრიპტები კოდში GitHub– დან. თუ ეს სწორად გააკეთეთ, თქვენ უნდა ნახოთ თქვენი ცხრილები ამ ბრძანების გამოყენებით:

me@my-rpi: ~ $ echo 'მაგიდების ჩვენება;' | mysql project1 -t -u project1 -admin -p

ჩვენ უკვე მზად ვართ, თქვენ შეგიძლიათ შეამოწმოთ ეს საქმის გარეშე, რათა დარწმუნდეთ, რომ ყველაფერი მუშაობს. თუ არ ხართ დაკავშირებული wifi– ზე, თქვენ უნდა დაუკავშიროთ იგი Ethernet კაბელს და გაუშვათ ხელით.

ნაბიჯი 6: დაუკავშირდით Wi-Fi- ს

გახსენით wpa-supplicant კონფიგურაციის ფაილი ნანოში (არ აქვს მნიშვნელობა, უბრალოდ დარწმუნდით, რომ შეგიძლიათ იმუშაოთ ტექსტის რედაქტორთან).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

გადადით ფაილის ბოლოში და დაამატეთ შემდეგი (შეცვალეთ ssid სახელი და პაროლი თქვენი სახელით):

ქსელი = {

ssid = "ssid-name" psk = "პაროლი-სახელი"}

დაშიფრული პაროლის შესაქმნელად შეგიძლიათ გამოიყენოთ wpa_passphrase და უბრალოდ დააკოპიროთ wpa_supplicant.conf psk, რომ რამე უფრო უსაფრთხო გახადოთ.

wpa_passphrase "ssid-name" "password-name"

თუ გსურთ, რომ ის ავტომატურად დაუკავშირდეს ამ Wi-Fi ქსელს და არის სხვა კონფიგურაციის ფაილში, დარწმუნდით, რომ პრიორიტეტი უფრო მაღალ დონეზე შეცვალეთ, კონფიგურაციის ფაილში ამ ხაზის დამატებით ქსელში:

პრიორიტეტი = 2

არ დაგავიწყდეთ ინტერფეისის კონფიგურაცია შემდეგით:

wpa_cli -i wlan0 ხელახლა კონფიგურაცია

ახლა თქვენ მზად ხართ და დაკავშირებული ხართ wifi ქსელთან.

ნაბიჯი 7: ყველაფრის ერთად შედგენა

ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა

მას შემდეგ, რაც ყველაფერი მავთულხლართებით და soldered, ჩვენ შეგვიძლია მივიღოთ საქმე. ეს შექმნილია ისე, რომ თქვენ შეძლოთ საქმის გახსნა ყოველგვარი გაფუჭებული მავთულის გარეშე. ეს ნიშნავს, რომ ყველაფერი მიმაგრებულია ქვედა ნაწილზე. პირველი რაც უნდა გააკეთოთ არის ჟოლოს მცირე მორგება. მას აქვს ხვრელები ყველა კუთხეში, მაგრამ ეს არ არის ისეთი დიდი, როგორც უნდა იყოს. დიამეტრი უნდა იყოს საკმარისი იმისათვის, რომ მოთავსდეს 3 მმ ხრახნი შიგნით. ჩვენ უნდა გავპრიალეთ ხვრელები ისე, რომ ისინი ოდნავ გაფართოვდნენ.

მეორე რაც უნდა გააკეთოთ არის ხრახნიანი ძაფის გაჭრა თითოეულ ხვრელში. ეს შეიძლება რთულად ჟღერდეს, მაგრამ ადვილად შეიძლება გაკეთდეს სწორი ხელსაწყოებით. მე გირჩევთ ამის გაკეთებას ადგილობრივ ტექნიკის მაღაზიაში, უბრალოდ მოითხოვეთ ძაფის მოჭრის ინსტრუმენტი. ვინაიდან მამაჩემი ოქრომჭედელია, მას ჰქონდა ამის საშუალება სამსახურში. შეიძლება ატვირთო ახალი stl ფაილი ისე, რომ მოგვიანებით დაიბეჭდოს, მაგრამ ამას დასჭირდება ძალიან ზუსტი პრინტერი.

მესამე ნაბიჯი არის pi ბოლოზე გადატანა. თქვენ დაგჭირდებათ 4 7 მმ სიგრძის ხრახნები 3 მმ დიამეტრით. ამის შემდეგ თქვენ შეგიძლიათ ჩაყაროთ PCD დაფა გათვალისწინებულ ადგილას ქვედა ნაწილის ზედა ნაწილში. CCS811 სენსორი შეიძლება შეიყვანოთ მარცხენა მხარეს მოცემულ ადგილას და DHT11 შეიძლება მიმაგრდეს მარჯვენა ფირფიტაზე. ორივე იზოლირებული და საკმარისად ვენტილირებადია, მაგრამ შემდეგ ჩვენ შევამჩნიეთ, რომ ის ჯერ კიდევ ცხელოდა შიგნით. ამის შესახებ უფრო მოგვიანებით.

შემდეგ თქვენ უნდა დაურთოთ LED- ები მათ მილს. ჩვენ გავაკეთეთ ეს 2 კომპონენტის წებოთი, მაგრამ თქვენ შეგიძლიათ გააკეთოთ ის, როგორც გსურთ. დარწმუნდით, რომ ისინი იქ დარჩებიან.

ახლა თქვენ შეგიძლიათ მიამაგროთ LCD ეკრანი, თქვენ დაგჭირდებათ ხრახნები იგივე დიამეტრით, როგორც წინა, მაგრამ ცოტა უფრო გრძელი. ჩემი იყო 1 სმ. თუ ოთხი ხრახნი ხრახნიან, მხოლოდ ერთი რამ რჩება გასაკეთებელი. მიამაგრეთ ზედა ნაწილი. ყველაფერი რაც თქვენ გჭირდებათ არის ოთხი ხრახნი, იგივე დიამეტრით და ეს არის 2 სმ. ახლა ყველაფერი თავის ადგილზე უნდა იყოს და თქვენ შეგიძლიათ დაიწყოთ იგი.

ნაბიჯი 8: დაიწყეთ

ამ პროექტის დაწყების პროცესი ძალიან მარტივია:

  1. მიამაგრეთ კვების კაბელი საქმის მარცხენა მხარეს. ეს არ არის ძალიან შესამჩნევი, მაგრამ თქვენ შეგიძლიათ ნახოთ ხვრელებიდან. თუ ერთხელ მიიღეთ, ეს აღარ იქნება პრობლემა.
  2. მიეცით დრო დასაწყებად.
  3. IP მისამართი გამოჩნდება ეკრანზე ათი წამის განმავლობაში. ერთადერთი რაც თქვენ უნდა გააკეთოთ არის დარწმუნდეთ, რომ თქვენ ხართ ერთსა და იმავე ქსელში და შეიყვანეთ IP მისამართი თქვენი ბრაუზერის მისამართების ზოლში.
  4. თქვენ ახლა საიტზე ხართ. თქვენ ჯერ არ გაქვთ ანგარიში, ასე რომ შექმენით ანგარიში.
  5. თუ დარეგისტრირებული ხართ, შედით სისტემაში.
  6. Შესრულებულია! თქვენ შეგიძლიათ ნახოთ ყველა მონაცემი ვებგვერდზე და LCD ეკრანი აჩვენებს ჰაერის მიმდინარე ხარისხს.

მას შემდეგ რაც სითბო იზრდება, ჩვენ სენსორები განვათავსეთ საქმის ბოლოში. ამრიგად, ტემპერატურა დიდ გავლენას არ მოახდენს რეგისტრირებულ მნიშვნელობებზე. ასე რომ, ოპტიმალური გაზომვისთვის, აწიეთ მოწყობილობა ან შეგიძლიათ უბრალოდ კედელზე ჩამოკიდოთ.

გირჩევთ: