Სარჩევი:
- ნაბიჯი 1: ნაწილის შერჩევა, ინსტრუმენტები და მასალები
- ნაბიჯი 2: ჩვენი აპარატურის დაკავშირება
- ნაბიჯი 3: ყველაფრის დაკავშირება: Pi- ს დაყენება
- ნაბიჯი 4: პროგრამული უზრუნველყოფა / კოდი
- ნაბიჯი 5: დანართი
ვიდეო: RPi Weatherstation საპასუხო ვებგვერდით: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
სასკოლო პროექტისთვის ჩვენ უნდა შევადგინოთ IoT მოწყობილობა ვებგვერდით, რათა ვიზუალურად შევიკრიბოთ ინფორმაცია. მე ავირჩიე გამეკეთებინა ამინდი, რომელიც იკვებებოდა Raspberry Pi 3 გაშვებული ბოთლით საპასუხო ვებსაიტისთვის, MySQL (MariaDB) ჩემი მონაცემთა ბაზისთვის და პითონის სკრიპტი ინფორმაციის შესაგროვებლად ყველა ჩემს სენსორთან ერთად. დამჭირდა დაახლოებით 2 კვირა თავიდან ბოლომდე დასრულებამდე.
ჩვენ წავახალისეთ, რომ გაგვეკეთებინა ინსტრუქცია, გაგვეზიარებინა ჩვენი პროგრესი წვრილმანების დანარჩენ საზოგადოებასთან, ასე რომ, აქ არის!
ნაბიჯი 1: ნაწილის შერჩევა, ინსტრუმენტები და მასალები
პირველ რიგში მე უნდა გაერკვია, რა სახის სენსორები იყო აუცილებელი ამინდის სადგურისათვის. მე გადავწყვიტე, რომ მინდოდა გავზომო ყველა ქვემოთ მოცემული მონაცემი:
- ტემპერატურა
- Ჰაერის წნევა
- ტენიანობა
- ქარის სიჩქარე
- ულტრაიისფერი ინდექსი
აქ არის ყველა ინსტრუმენტი, მასალა და ნაწილები, რომლებიც მე გამოვიყენე
ნაწილები:
- DHT22/AM2302 ტემპერატურისა და ტენიანობის მაჩვენებლებისთვის. (15 ევრო)
- Adafruit BMP280 ბარომეტრიული წნევისა და ტემპერატურისთვის. (12 ევრო)
- ადაფრუტი SI1145 ულტრაიისფერი ინდექსის გასაზომად. (10 ევრო)
- ადაფრუტის ანალოგიური ანემომეტრი ქარის სიჩქარის გასაზომად (50 ევრო)
- MCP3008 ანალოგური სიგნალების ციფრულზე გადასაყვანად.
- 10kOhm Resistor როგორც pull-up ჩემი AM2302.
- 9V ადაპტერი ანომეტრის "გააქტიურებისათვის"
- 5V ადაპტერი Raspberry Pi– სთვის
- ჟოლო Pi 3 (ნებისმიერი Pi საკმარისია)
მასალები:
პლასტიკური კონტეინერი ყველაფრის შესანახად და წვიმისგან დამცავი გახდის
ინსტრუმენტები:
- შედუღების რკინა და კალის
- მულტიმეტრი
- სილიკონი
- რაღაც ფირზე
საერთო ჯამში, ყველა სენსორი დამიჯდა დაახლოებით 85 ევრო, რაც საკმაოდ ციცაბოა, მაგრამ მე ნამდვილად მინდოდა ჩემეული ქარის მრიცხველის ჩართვა, ასე რომ მე ვფიქრობ, რომ ღირს.
თქვენ შეგიძლიათ იპოვოთ უფრო დეტალური სია მაღაზიებით, სადაც შეგიძლიათ შეიძინოთ ყველაფერი, ქვემოთ მოცემულ pdf– ში:)
ნაბიჯი 2: ჩვენი აპარატურის დაკავშირება
რა თქმა უნდა, ჩვენ დაგვჭირდება ჩვენი სენსორების დაკავშირება ჩვენს ჟოლოს Pi- სთან. ზემოთ თქვენ შეგიძლიათ ნახოთ მომაბეზრებელი სქემა, რომლის მიხედვითაც შეგიძლიათ ყველაფერი სწორად დააკავშიროთ.
სქემატურ სურათზე ხედავთ, რომ 9 ვ ბატარეა გამოიყენება როგორც ენერგიის წყარო ჩვენი ანემომეტრისთვის, ის საუკეთესოდ გამოიყენება ტესტირებისთვის მხოლოდ მას შემდეგ, რაც დიდხანს არ გასტანს, შეგიძლიათ შეცვალოთ 9 ვ ბატარეა ნებისმიერი 7-12 ვ ენერგიის წყაროსთვის. აირჩიე
ჩვენი SI1145 და BMP280 სენსორები კონტროლდება I2C პროტოკოლის გამოყენებით, ვინაიდან ეს არის ყველაზე მარტივი მუშაობა და საჭიროებს ნაკლებ მავთულს.
სქემატური ანემომეტრი ნაჩვენებია როგორც LDR აქ, რადგან მას აქვს საკმაოდ იდენტური გაყვანილობა, როგორც ანემომეტრი და მე ვერ ვიპოვე რეალური ანემომეტრი, რომ ჩავრთო ჩემი მომაბეზრებელი სქემა:)
ნაბიჯი 3: ყველაფრის დაკავშირება: Pi- ს დაყენება
უპირველეს ყოვლისა, ჩვენ უნდა დავრწმუნდეთ, რომ ინტერნეტთან ვართ დაკავშირებული.
ამის გაკეთება ტერმინალში შეგიძლიათ გადახვიდეთ თქვენს wpa_supplicant ფაილზე შემდეგი ბრძანების გაშვებით: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
ფაილში შეგიძლიათ დაამატოთ ეს:
ქსელი = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK
}
თქვენ ასევე შეგიძლიათ დააყენოთ თქვენი IP მისამართი სტატიკურად მომავალში უფრო ადვილი წვდომისთვის. ამისათვის თქვენ უნდა შეხვიდეთ dhcpcd.conf ფაილზე ამ ბრძანების გაშვებით: sudo nano /etc/dhcpcd.conf
დაამატეთ ეს ფაილში:
ინტერფეისი wlan0static ip_address = 192.168.0.100/24
შემდეგ ჩვენ ვაპირებთ დავრწმუნდეთ, რომ ჩვენს Pi– ზე უკვე დაინსტალირებული პაკეტები სრულად განახლებულია:
sudo apt-get განახლება && sudo apt-get განახლება
ამას შეიძლება გარკვეული დრო დასჭირდეს, ასე რომ არ ინერვიულო
თქვენ უნდა ჩართოთ I2C და SPI პროტოკოლი raspi კონფიგურაციაში. ამის გაკეთება შეგიძლიათ ამ ბრძანების გაშვებით:
sudo raspi-config
შემდეგ გადადით ინტერფეისის პარამეტრებზე და ჩართეთ ორივე, I2C და SPI
პირველ რიგში თქვენ უნდა შეადგინოთ დირექტორია, რომელშიც გსურთ განათავსოთ თქვენი პროექტი (ჩვენ მას დავარქვით 'Weatherstation'):
cd ~ mkdir weatherstation cd weatherstation
შემდეგ ჩვენ შევქმენით ჩვენი python3 ვირტუალური გარემო:
python3 -m pip install-upgrade pip setuptools wheel virtualenvpython3 -m venv-system-site-packages envsource env/bin/activpython -m pip install mysql-connector-python Flask flask-mysql mysql-connector-python passlib mysql-connector -პიტონი-რფ
შემდეგ ჩვენ დაგვჭირდება სხვა პაკეტების დაყენება, რომლებიც საჭიროა ყველაფრის სწორად შესასრულებლად:
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
ახლა ჩვენ ვაპირებთ შევქმნათ ჩვენი მონაცემთა ბაზა:
ჩვენ მაინც უნდა შევქმნათ ჩვენი მონაცემთა ბაზა. ამის გაკეთება შეგიძლიათ "sql" საქაღალდეში მდებარე კოდის/sql ფაილის გაშვებით:
sudo mariadb <sql/db_init.sql
Sql შეკითხვა გახდის ჩვენთვის საჭირო ცხრილებს და ასევე რამდენიმე მომხმარებელს გახდის ჩვენს მონაცემთა ბაზას ცოტა უფრო უსაფრთხო.
ეს ასევე ჩაწერს ისტორიის მონაცემების მაგალითს ჩვენს მონაცემთა ბაზაში, რათა დარწმუნდეთ, რომ ჩვენი ვებ – გვერდი აჩვენებს ყველაფერს სწორად, როდესაც რეალური მონაცემები ჯერ არ არის შეგროვებული.
Adafruit_GPIO და MyPyDHT- ის დასაყენებლად დაგჭირდებათ კიდევ რამდენიმე რამის გაკეთება. ჯერ დაუბრუნდით თქვენს გამოყენების საქაღალდეს და შემდეგ:
git კლონი https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py install
cd..git clone --recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py install
ნაბიჯი 4: პროგრამული უზრუნველყოფა / კოდი
ჩვენ უნდა შევქმნათ უკანა ნაწილი ამინდის შენარჩუნებისთვის, რომელიც მოიცავს:
- მარიადბის მონაცემთა ბაზა ჩემი სენსორული მონაცემების შესანახად და სხვა უმნიშვნელო ნივთებისთვის- ვებ გვერდის გაშვების სერვისი.- სხვა სერვისი, რომელიც მუშაობს პითონის ფაილზე, რომელიც კითხულობს ყველა სენსორს. ზემოთ შეგიძლიათ იხილოთ ჩემი ძალიან მარტივი მონაცემთა ბაზის დაყენება. მომხმარებლების ცხრილი არის არასაჭირო, მაგრამ რადგან მინდოდა სისტემაში შესვლა, რადგან მე (მიუხედავად იმისა, რომ ყველა მონაცემი ყველა მომხმარებლისთვის ერთნაირია) გადავწყვიტე, რომ შევიტანო ჩემს მონაცემთა ბაზაში.
თქვენ შეგიძლიათ გააგრძელოთ და კლონირება ჩემი პროექტის კოდი Github– დან თქვენი პროექტის საქაღალდეში. გადადით თქვენს მომხმარებლის საქაღალდეში და გაუშვით: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/
შემდეგ გადადით conf საქაღალდეში weatherstation და საქაღალდეში არსებული ყველა ფაილი.
შეცვალეთ 'USERNAME' - ის ყველა შემთხვევა თქვენი მომხმარებლის სახელით
თქვენ ასევე დაგჭირდებათ. სერვისის ფაილების კოპირება systemd– ზე და გამოსცადეთ ისინი ასე:
sudo cp conf/weatherstation-*. service/etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl weatherstation-flask.servicesudo systemctl weatherstation-sensor.service
sudo systemctl სტატუსი ამინდის გათბობა-*
შემდეგ ჩვენ უნდა შევცვალოთ nginx კონფიგურაცია.
sudo cp conf/nginx/etc/nginx/sites-available/weatherstationsudo rm/etc/nginx/sites-enabled/defaultsudo ln -s/etc/nginx/sites-available/weatherstation/etc/nginx/sites-enabled/weatherstationsudo systemctl გადატვირთეთ nginx.servicesudo systemctl სტატუსი nginx.service
თუ ყველაფერი კარგად წავიდა, თქვენ უნდა შეძლოთ მისი გაშვება და ტერმინალში დაბეჭდვა html:
wget -qO - localhost
ყველაფერი კარგად უნდა მუშაობდეს. თქვენ შეგიძლიათ დაათვალიეროთ თქვენი ჟოლოს პი-ის IP მისამართი, რომელიც თავიდანვე დავადგინეთ და შეხვდეთ შესვლის ეკრანით.
ნაბიჯი 5: დანართი
ახლა, როდესაც ყველაფერი მუშაობს, ჩვენ უნდა ჩავდოთ ყველაფერი რაღაცაში.
მე ავირჩიე მარტივი პლასტიკური ყუთი გამჭვირვალე სახურავით. ანემომეტრი დამონტაჟებულია მის თავზე და ასევე არის მეორადი პატარა კონტეინერი, რომელიც შეიცავს DHT22 და BMP280 სენსორებს.
ეს სენსორები დამონტაჟებულია ცალკეულ კონტეინერში, რადგან ისინი უნდა იყვნენ ღია ცის ქვეშ (წვიმის გარეშე), მაგრამ ჟოლოს პი არ სჭირდება.
როგორც ხედავთ, მე დავამატე სილიკონი კიდეების გარშემო, რათა ის წყალგაუმტარი გამხდარიყო. მე ასევე გავხსენი რამდენიმე ხვრელი ზედა კონტეინერში, რათა მასში სუფთა ჰაერი შევსულიყო.
ვიმედოვნებ, რომ მოგეწონათ ჩემი გზამკვლევი, თუ როგორ უნდა ავაშენოთ ამინდი, ეს შეიძლება იყოს ცოტა უხეში, რადგან პირველად ვწერ მსგავს გზამკვლევს, მაგრამ იმედი მაქვს, რომ მაინც მოგეწონათ:)
გირჩევთ:
როგორ: ჟოლოს PI 4 Headless (VNC) დაყენება Rpi-imager და სურათებით: 7 ნაბიჯი (სურათებით)
როგორ: ჟოლოს PI 4 უსათაურო (VNC) დაყენება Rpi- გამოსახულებითა და სურათებით: ვგეგმავ გამოვიყენო ეს Rapsberry PI რამოდენიმე სახალისო პროექტში ჩემს ბლოგში. მოგერიდებათ მისი შემოწმება. მინდოდა დავბრუნებულიყავი ჩემი ჟოლოს PI– ს გამოყენებით, მაგრამ მე არ მქონდა კლავიატურა ან მაუსი ახალ ადგილას. დიდი ხანი იყო რაც ჟოლოს დაყენება
Wemos D1 მინი Weatherstation (Plug & Play): 4 ნაბიჯი
Wemos D1 Mini Weatherstation (Plug & Play): ეს პროექტი არის უმარტივესი შესაძლო ამინდის სადგური WeMos D1 Mini– ზე დაყრდნობით. მე ვირჩევ WeMos D1 Mini- ს, რადგან მას აქვს სარგებელი: 1. შეგიძლიათ პროგრამირება და გაშვება გარე მოდულების შეერთების გარეშე, მხოლოდ USB კაბელის გამოყენებით. თქვენ არ გჭირდებათ ძაბვის რეგულირება
Arduino Led Strip გულისცემის საპასუხო სენსორი: 5 ნაბიჯი
Arduino Led Strip გულისცემის მგრძნობიარე სენსორი: პირველი რაც გავაკეთე ეს იყო ჩემი Grove Heart rate სენსორის დაკავშირება ჩემს არდუინოსთან YouTube– ზე ძალიან ადვილად მისასვლელი გაკვეთილის საშუალებით. https://www.youtube.com/watch?v=Dzq4tnJ0LjAhttps://www.kiwi-electronics.nl/grove-finger-clip
შეყვანა: საპასუხო მასალა: 12 ნაბიჯი (სურათებით)
შეყვანა: საპასუხო მასალა: ტევადობა არის ობიექტის უნარი შეინახოს ელექტრული მუხტი. ამ სამეურვეოში ჩვენ შევქმნით და ვიქსოვთ ტექსტილის სენსორებს, რომლებიც პასუხობენ ჩვენს სხეულის ტევადობას და გამოვიყენებთ ამ ელექტროენერგიას სქემის დასასრულებლად. ამ გაკვეთილში თქვენ შეისწავლით ბა
ხმის საპასუხო რობოტი: 4 ნაბიჯი
ხმის საპასუხო რობოტი: ამ გაკვეთილში თქვენ ისწავლით თუ როგორ უნდა შექმნათ ხმის საპასუხო რობოტი, რობოტი პასუხობს თქვენი ხმის მოცულობას. ორი თვალი, რომელიც არის LED მატრიცა, გამოხატავს თქვენი ხმის მოცულობას ძირითადი ემოციების საშუალებით. ეს იდეა მე მომივიდა როგორც