Სარჩევი:

Fanair: ამინდის სადგური თქვენი ოთახისთვის: 6 ნაბიჯი (სურათებით)
Fanair: ამინდის სადგური თქვენი ოთახისთვის: 6 ნაბიჯი (სურათებით)

ვიდეო: Fanair: ამინდის სადგური თქვენი ოთახისთვის: 6 ნაბიჯი (სურათებით)

ვიდეო: Fanair: ამინდის სადგური თქვენი ოთახისთვის: 6 ნაბიჯი (სურათებით)
ვიდეო: Ac in rainy weather 2024, ნოემბერი
Anonim
Fanair: ამინდის სადგური თქვენი ოთახისთვის
Fanair: ამინდის სადგური თქვენი ოთახისთვის

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

Fanair იყენებს მრავალ სენსორს გრძნობისთვის:

  • ტემპერატურა
  • ტენიანობა
  • მსუბუქი
  • გარკვეული გაზები
  • ჰაერის წნევა

ის ძალიან კომპაქტურია და იყენებს Raspberry Pi 3 B- ს, ღირებულებების მისაღებად, მათ MySQL მონაცემთა ბაზაში შენახვისთვის და შემდეგ მათ ადვილად ხელმისაწვდომობისთვის ვებგვერდზე. კოდსა და ვებსაიტში შედის შესაძლებლობა მიიღოთ რეალური ამინდის მონაცემები თქვენი მდებარეობისთვის, რათა ვებგვერდი გამოყენებულ იქნას გარე ამინდის შემოწმებისთვისაც.

ნაბიჯი 1: მიიღეთ ყველა საჭირო ნივთი

მიიღეთ ყველა საჭირო ნივთი
მიიღეთ ყველა საჭირო ნივთი

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

უფრო კონკრეტული ნივთებისთვის შევადგინე ეს მასალების ბილი.

  • ჟოლო პი 3 ბ
  • MPC3008-8 არხიანი 10 ბიტიანი ADC
  • AM2301 თერმომეტრი ტემპერატურისა და ტენიანობის სენსორი
  • WR Rademacher WR-tyoe 930-1 PCB
  • ABS ქეისი პროტოტიპისთვის (შავი)
  • LDR
  • MQ135 გაზის სენსორი
  • 2x BC517 დარლინგტონის ტრანზისტორი
  • RGB LED
  • რეზისტორული პაკეტი
  • ბუზერი
  • მავთულები
  • BMP280 ბარომეტრი
  • მშვიდი USB ვენტილატორი (5V)

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

ნაბიჯი 2: მოამზადეთ თქვენი ჟოლო პი

მიიღეთ თქვენი Raspian Jessie Pixel ოპერაციული სისტემით Raspberry Pi ოფიციალური საიტიდან და გადმოტვირთვის შემდეგ გათიშეთ იგი. თქვენ მიიღებთ გამოსახულების ფაილს. Pi– ზე მის მისაღებად თქვენ უნდა ჩაწეროთ იგი SD ბარათზე Win32 Disk Imager– ის გამოყენებით. მისი ინსტალაციის შემდეგ შეარჩიეთ გამოსახულების ფაილი და დისკი, რომელშიც მდებარეობს თქვენი SD ბარათი. შემდეგ დააჭირეთ ჩაწერას და დაელოდეთ სანამ ის დასრულდება.

როდესაც ის დასრულდება, დააწკაპუნეთ თქვენს SD ბარათზე File Explorer– ში და გახსენით ფაილი სახელწოდებით 'cmdline.txt', გადადით ტექსტის ფაილის ბოლომდე rootwait- მდე და ჩაწერეთ 'ip = 254.169.10.2', რა თქმა უნდა, ფართებით. მისი შენახვის შემდეგ თქვენ უნდა დააჭიროთ მარჯვენა ღილაკს სადღაც ფანჯრის შიგნით და შექმნათ ახალი ფაილი სახელწოდებით 'ssh'. გაითვალისწინეთ, რომ ამ ფაილს არ გააჩნია ფაილის გაფართოება. იმისათვის, რომ დარწმუნდეთ, რომ მას არ აქვს გაფართოება, დააწკაპუნეთ 'View' ფაილების მკვლევარში და შეამოწმეთ 'ფარული ფაილები'. თუ ის ნამდვილად გადარქმევს მას და წაშლის გაფართოებას, ის უბრალოდ კითხულობს "ssh".

ამის დასრულების შემდეგ თქვენ საბოლოოდ შეგიძლიათ განათავსოთ თქვენი SD ბარათი Raspberry Pi- ში. ჩამოტვირთეთ ssh კლიენტი (მე გირჩევთ MobaXterm). და ssh- ის გამოყენებით დაუკავშირდით თქვენს მიერ ადრე მითითებულ IP- ს "254.169.10.2". მომხმარებლის სახელი არის "pi", პაროლი "ჟოლო". თუ გსურთ, შეგიძლიათ შეცვალოთ პაროლი ტერმინალში ბრძანების 'sudo passwd' აკრეფით და მიჰყევით ინსტრუქციას. ვინაიდან ჩვენ ვაპირებთ გამოვიყენოთ SD ბარათის კარგი ნაწილი Fanair– ისთვის, თქვენ უნდა გააფართოვოთ არსებული საცავი, აკრიფეთ „sudo rapi-config“, აირჩიეთ „Advanced Options“და შემდეგ „File File System“-ის გაფართოება. თუ მოთხოვნილია გადატვირთვა.

ჩვენ ვიყენებთ 1 მავთულის, SPI და I2C ინტერფეისს. იმისათვის, რომ შეძლოთ მათი გამოყენება, ჯერ უნდა დააინსტალიროთ ისინი!

ნაბიჯი 3: შეაერთეთ ყველაფერი ერთად

შეაერთეთ ყველაფერი ერთად
შეაერთეთ ყველაფერი ერთად
შეაერთეთ ყველაფერი ერთად
შეაერთეთ ყველაფერი ერთად

დროა გააკეთოთ წრე! პირველად თქვენ უნდა სცადოთ ის პურის დაფაზე, მაგრამ თუ ამის დრო არ გაქვთ, შეგიძლიათ სცადოთ მისი ერთად შედუღება.

წრე, რომელიც დაგჭირდებათ, გარეგნულად ჰგავს, მოხერხებულობისთვის ასევე შედის დაფის ვერსია.

ნაბიჯი 4: შექმენით თქვენი მონაცემთა ბაზა

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

  • 'sudo apt-get განახლება'
  • 'sudo apt-get upgrade'
  • 'sudo apt-get dist-upgrade'

მიიღეთ ყველა მოთხოვნა აკრეფით 'y' და შეიყვანეთ.

MySQL ტიპის დასაყენებლად:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

მოთხოვნისთანავე შექმენით თქვენი არჩევანის ძირეული პაროლი.

მას შემდეგ რაც დასრულდება შესვლის ინსტალაცია გამოყენებით:

'mysql -uroot -p'

და ჩაწერეთ თქვენი პაროლი.

მიიღეთ Fanair კოდი ჩემი Github– დან! დააწკაპუნეთ "კლონირება ან ჩამოტვირთვა" და შემდეგ "გადმოტვირთვა ZIP". გახსენით კოდი თქვენი არჩეული საქაღალდეში. სრულად ოპერატიული მონაცემთა ბაზის შესაქმნელად მოთხოვნა არის მონაცემთა ბაზის საქაღალდეში. გახსენით ფაილი დააკოპირეთ კოდი და ჩასვით ტერმინალში MySQL ღია. შემდეგ დააჭირეთ Enter- ს და მონაცემთა ბაზა მზად არის!

ნაბიჯი 5: დროა კოდისთვის

ყველა სენსორის გამოსაყენებლად თქვენ აშკარად გჭირდებათ პროგრამის გაშვება. საბედნიეროდ კოდი უკვე დასრულებულია (უმეტესწილად) და ჩვენ უკვე გადმოვიღეთ იგი მონაცემთა ბაზის SQL მოთხოვნის მიღებისას.

როგორც ვთქვი, არის რამდენიმე რამ, რაც ჯერ კიდევ უნდა შეიცვალოს / დაემატოს პროგრამის გამართულად მუშაობისთვის. უპირველეს ყოვლისა, პროგრამა იყენებს Darksky API– ს ამინდის მონაცემების მისაღებად გრძედი და გრძედი. იმისათვის, რომ გამოიყენოთ ის, თქვენ უნდა დარეგისტრირდეთ. პირველი 1000 ზარი უფასოა და შემდეგ ღირს 0.0001 აშშ დოლარი თითო ზარზე. გავიგე, თუ არ გადაიხდით, თქვენი ანგარიში დაიბლოკება. სამართლიანობისთვის 0,0001 აშშ დოლარი თითო ზარზე საკმაოდ იაფია. Fanair ურეკავს უახლეს მონაცემებს ყოველ საათში, რაც იმას ნიშნავს, რომ წელიწადში სრული დატვირთვით დაგიჯდებათ მხოლოდ 0,876 აშშ დოლარი. თქვენ ასევე მიიღებთ 41 დღეს უფასოდ, თუ Fanair მუშაობს სრულ განაკვეთზე.

დარეგისტრირების შემდეგ მოძებნეთ თქვენი API გასაღები. მოძებნეთ თქვენი მდებარეობის გრძედი და გრძედი google რუქებზე ან სცადეთ მისი Google ძებნა. შექმენით ახალი ტექსტური ფაილი ფანაირის ძირეული დირექტორია (კლასებით, main.py…). დაასახელეთ ფაილი 'key_location.txt'. გახსენით ტექსტური ფაილი და პირველ სტრიქონზე ჩასვით Darksky API გასაღები. მეორე ხაზზე ჩასვით თქვენი გრძედი და მესამე სტრიქონში ჩასვით თქვენი გრძედი (ორივე ათობითი ფორმატში). როდესაც დასრულდება, შეინახეთ ფაილი.

იმავე დირექტორიაში შექმენით სხვა ტექსტური ფაილი სახელწოდებით 'database_dsn.txt'. პირველ სტრიქონში უნდა იყოს "localhost". მეორე ხაზი არის "ფესვი". მესამე ხაზში თქვენ უნდა ჩაწეროთ თქვენი პაროლი, რომელიც ადრე გააკეთეთ მონაცემთა ბაზისთვის, ხოლო მეოთხე და ბოლო სტრიქონი უნდა ჩაწეროთ 'fanair'.

მარჯვენა ღილაკით დააჭირეთ main.py ფაილს და აირჩიეთ რედაქტირება. "Fanair = Fanair (5, 26, 17, 27, 22, 4," AM2301 ", 1, 0, 0, 0," key_location.txt "," database_dsn.txt ") 'უნდა შეიცვალოს. თუ სურათს მიჰყევით, პირველი 5 მნიშვნელობა უნდა შეიცვალოს '5, 26, 17, 27, 22, 4' '20, 21, 26, 19, 13'. '/home/muhsin/Applications/Fanair' ასევე უნდა შეიცვალოს თქვენი Fanair ძირეული ბილიკით (სადაც main.py არის). დარწმუნდით, რომ დახაზეთ "სახლის" წინ, მაგრამ არა "ფანაირის" შემდეგ.

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

ჩემი გამოცდილებით, მე ყოველთვის არ ვიღებ სწორ თარიღსა და დროს Raspberry Pi– ში. იმისათვის, რომ დარწმუნდეთ, რომ მიიღებთ ზუსტ თარიღს, გირჩევთ მიყევით ამ სახელმძღვანელოს: Raspberry Pi სინქრონიზაციის თარიღი და დრო.

და ბოლოს, სულ მცირე, რამდენიმე ბიბლიოთეკა უნდა იყოს დაინსტალირებული და რამდენიმე ინტერფეისი უნდა გააქტიურდეს:

'sudo apt-get install install-essential python-dev'

ადაფრუტის DHT:

'pip3 დააინსტალირეთ adafruit_python_dht'

1-მავთული:

  1. 'sudo raspi-config'
  2. "ინტერფეისის პარამეტრები"
  3. "1 მავთული"
  4. ჩართვა
  5. 'sudo nano /boot/config.txt'
  6. დაამატეთ ეს ხაზი ფაილში: 'dtoverlay = w1-gpio'
  7. "sudo გადატვირთვა"

SPI:

  1. 'sudo raspi-config'
  2. "ინტერფეისის პარამეტრები"
  3. "SPI"
  4. ჩართვა
  5. "sudo გადატვირთვა"
  6. 'sudo nano /boot/config.txt'
  7. მოძებნეთ 'dtparam = spi = on' და გამოაქვეყნეთ კომენტარი ჰეშტეგის ამოღებით.
  8. 'sudo apt-get install python3-dev

სიმბუსი:

  1. 'sudo raspi-config'"
  2. "ინტერფეისის პარამეტრები"
  3. 'I2C'
  4. ჩართვა
  5. "sudo გადატვირთვა"
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c- ინსტრუმენტები'
  8. 'sudo nano /boot/config.txt'
  9. მოძებნეთ dtparam = i2c_arm = ჩართეთ და გაუკეთეთ კომენტარი მას ჰეშტეგის ამოღებით.

კოლბა

pip3 დააინსტალირეთ Flask

mysql კონექტორი

'pip3 install -Iv mysql -connector == 2.1.4'

სპიდევი

pip3 დააინსტალირეთ py-spidev

ბნელი ცა

pip3 დააინსტალირეთ darkskylib

ნაბიჯი 6: სცადეთ

თუ თქვენ მოახერხეთ ამის მიღწევა, შეეხეთ საკუთარ თავს ზურგზე. ახლა ყველაფერი კეთდება იმისათვის, რომ ფანაირი სწორად იმუშაოს. ასე რომ გამოსაცდელად ჩაწერეთ 'cd ""'. ფაილის ადგილმდებარეობა არის "/home/pi" მაგალითად, თუ თქვენ უბრალოდ ჩასვით თქვენი სახლის დირექტორიაში. შემდეგ ჩაწერეთ 'python3 main.py' და დატოვეთ 15 წუთი ისე, რომ დასრულების შემდეგ მას ექნება მონაცემები მონაცემთა ბაზაში. ამის შემდეგ დააჭირეთ 'ctrl + c' პროგრამის გაჩერება და აკრიფეთ 'python3 Flask.py'. იმის დასადგენად, მუშაობს თუ არა თქვენი ვებ გვერდი, თქვენ უნდა დაათვალიეროთ თქვენი Pi მისამართის IP მისამართი, რომელიც თქვენ გააკეთეთ მის შემდეგ: (5000) (მაგალითად: 169.254.10.1:5000 ').

ჩატვირთვის შემდეგ ავტომატურად რომ გაუშვა:

'sudo nano /etc/rc.local'

ფაილის ბოლოს მაგრამ 0 გასასვლელის წინ:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

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

გირჩევთ: