Სარჩევი:
- ნაბიჯი 1: ნივთები, რომლებიც გამოიყენება ამ პროექტში
- ნაბიჯი 2: ისტორია
- ნაბიჯი 3: აპარატურის კავშირი
- ნაბიჯი 4: პროგრამული უზრუნველყოფის პროგრამირება
- ნაბიჯი 5: ოპერაცია
ვიდეო: ნახეთ IoTea LoRa გადაწყვეტა (განახლება 1811): 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ინტერნეტი+ ახლა პოპულარული კონცეფციაა. ამჯერად ჩვენ ვცადეთ ინტერნეტი პლუს სოფლის მეურნეობა, რათა ჩაის ბაღი გაიზარდოს ინტერნეტით.
ნაბიჯი 1: ნივთები, რომლებიც გამოიყენება ამ პროექტში
აპარატურის კომპონენტები
- გროვი - ნახშირბადის დიოქსიდის სენსორი (MH -Z16)
- გროუვი - ციფრული სინათლის სენსორი
- გროვი - მტვრის სენსორი (PPD42NS
- გროვი-ჟანგბადის სენსორი (ME2-O2-Ф20)
- ნიადაგის ტენიანობისა და ტემპერატურის სენსორი
- LoRa LoRaWAN Gateway - 868MHz ნაკრები Raspberry Pi 3 -ით
- გროვი - ტემპერამენტი და ჰუმი და ბარომეტრის სენსორი (BME280)
პროგრამული უზრუნველყოფის პროგრამები და ონლაინ სერვისები
Microsoft Visual Studio 2015
ნაბიჯი 2: ისტორია
მენგდინგის მთაზე იაანის ჩრდილო -აღმოსავლეთით, სიჩუანი, მთის ქედი დასავლეთიდან აღმოსავლეთით გადის მწვანე ზღვაში. ეს არის ყველაზე ნაცნობი სანახაობა 36 წლის დენგისთვის, მისი თაობის მენგდინგის ჩაის ერთ – ერთი იმ მცირერიცხოვანი ადამიანისაგან, რომლის პლანტაციაა 50 მუ (= 3.3 ჰექტარი) ზღვის დონიდან 1100 მეტრზე. დენგი ჩაის მწარმოებელთა ოჯახიდან მოდის, მაგრამ ოჯახის მემკვიდრეობის შენარჩუნება ადვილი საქმე არ არის.”ჩვენი ჩაი იზრდება მაღალ სიმაღლეზე ორგანულ გარემოში, რათა უზრუნველყოს მისი შესანიშნავი ხარისხი. მაგრამ ამავე დროს, ზრდის სიმჭიდროვე დაბალია, ღირებულება მაღალია და ყვავის არათანაბარი, რის გამოც ჩაის მოსავალი რთულდება. სწორედ ამიტომ მაღალმთიანი ჩაი ჩვეულებრივ მცირე მოსავალია და მათი ღირებულებები არ აისახება ბაზარზე.”ბოლო ორი წელია დენგი ცდილობს გაზარდოს მომხმარებელთა ცნობიერება მაღალმთიანი ჩაის შესახებ მათი ღირებულების გასაუმჯობესებლად. და როდესაც ის შეხვდა ფანს, რომელიც ეძებდა პლანტაციას Seeed's IoTea ტექნოლოგიის განსახორციელებლად, გამოსავლის სრულყოფილი შესატყვისი გაკეთდა.
ნაბიჯი 3: აპარატურის კავშირი
ამ პროექტის აპარატურა შეიძლება დაიყოს 4 ნაწილად: Power, Sensors, Node და Gateway. შემდეგი სტატია გაჩვენებთ თუ როგორ უნდა შეავსოთ იგი ეტაპობრივად.
ძალაუფლების ნაწილი
Power ნაწილი ძირითადად შეიცავს მზის პანელს და ლითიუმის ბატარეას, თუ თქვენ უბრალოდ ააშენებთ ამ პროექტს საჩვენებლად, შეგიძლიათ მათი იგნორირება. ან შეგიძლიათ მიყევით წინა გაკვეთილს კვანძის სიმძლავრის დასაყენებლად.
სენსორების ნაწილი
სენსორების ნაწილში, მრავალი სენსორის გამო, ჩვენ გამოვიყენეთ ამინდის სადგური და ასევე გავაკეთეთ აკრილის ფრჩხილი მათი ინსტალაციისთვის.
როგორც ხედავთ ზემოთ სურათზე, ციფრული სინათლის სენსორი ყოველთვის თავზეა, ისე რომ მას შეუძლია შეაგროვოს განათების ინფორმაცია. სენსორები, რომლებიც გამოიმუშავებენ სითბოს, დამონტაჟებულია აკრილის ფრჩხილის შუაგულში, როგორიცაა O2 სენსორი, მტვრის სენსორი და CO2 სენსორი. დაბოლოს, ტემპერატურისა და ტენიანობის სენსორი აკრილის ფრჩხილის ბოლოში.
გარდა ამისა, ნიადაგის ტემპერატურისა და ტენიანობის სენსორი დამონტაჟებულია მარტო მიწაში. კვანძის ნაწილი
Node Part არის Seeeduino LoRaWan, რომელიც დამონტაჟებულია წყალგაუმტარი ყუთში, ის აკავშირებს ენერგიასა და სენსორებს წყლის სახსრების საშუალებით. მათ შორის, Dust Sensor დაკავშირება LoRaWan– ის ციფრულ პინთან D3, CO2 Sensor დაკავშირება pin D4 & D5– თან, ნიადაგის სენსორი დაკავშირება pin D6 & D7– თან, O2 სენსორი დაკავშირება ანალოგიურ pin P1– თან და Light Sensor & Barometer Sensor დაკავშირება I2C პორტთან.
შენიშვნა: 10k რეზისტორი უნდა დაემატოს ნიადაგის სენსორის ლურჯ (მონაცემთა) კაბელს და წითელს (Vcc) კაბელს შორის.
Seeeduino LoRaWan აგროვებს სენსორების მნიშვნელობას დროდადრო და აგზავნის მათ Gateway– ში LoRa– ს საშუალებით. მონაცემთა ფორმატი, როგორიცაა ქვემოთ:
{
[0], /* ჰაერის ტემპერატურა (℃)* /[1], /* ჰაერის ტენიანობა (%)* /[2], /* სიმაღლე (მ) მაღალი ბაიტი* /[3], /* სიმაღლე (მ) დაბალი ბაიტი */[4],/ * CO2 კონცენტრაცია (PPM) მაღალი ბაიტი */[5],/ * CO2 კონცენტრაცია (PPM) დაბალი ბაიტი */[6],/ * მტვრის კონცენტრაცია (ცალი/0.01cf) მაღალი ბაიტი */[7],/ *მტვრის კონცენტრაცია (ცალი/0.01cf) დაბალი ბაიტი */[8],/ *სინათლის ინტენსივობა (ლუქსი) მაღალი ბაიტი */[9],/ *სინათლის ინტენსივობა (ლუქსი) დაბალი ბაიტი */ [10], /* O2 კონცენტრაცია (%)* /[11], /* ნიადაგის ტემპერატურა (℃)* /[12], /* ნიადაგის ტენიანობა (%)* /[13], /* ბატარეის ძაბვა (V) */ [14]/ *სენსორის შეცდომის კოდი */}
სენსორის შეცდომის კოდის ბაიტში თითოეულ ბიტს აქვს განსხვავებული მნიშვნელობა, ისევე როგორც ქვემოთ:
{
ბიტი 0: 1; / * ბარომეტრის სენსორის შეცდომა */ bit1: 1; / * CO2 სენსორის შეცდომა */ bit2: 1; / * მტვრის სენსორის შეცდომა */ bit3: 1; / * სინათლის სენსორის შეცდომა */ bit4: 1; / * O2 სენსორის შეცდომა */ bit5: 1; / * ნიადაგის სენსორის შეცდომა */ დაცულია: 2; / * დაცულია */}
კარიბჭის ნაწილი
Gateway Part არის Raspberry Pi, რომელმაც შეაერთო Gateway მოდული RHF0M301–868 და PRI 2 Bridge RHF4T002, იგი დამონტაჟებულია წყალგაუმტარი ყუთში და დაუკავშირდით დენის და USB კამერას წყლის სახსრების საშუალებით. რადგან ის იყენებს სპეციალურ პროგრამულ უზრუნველყოფას, გთხოვთ, მიჰყევით Seeed Wiki– ს კონფიგურაციისთვის.
ნაბიჯი 4: პროგრამული უზრუნველყოფის პროგრამირება
როგორც აპარატურის კავშირი, ასევე შესაძლებელია პროგრამული პროგრამირების გაყოფა, ის შეიძლება დაიყოს 3 ნაწილად: კვანძი, კარიბჭე და ვებ გვერდი.
კვანძის ნაწილი
დრაივერების უმეტესობა, რომელიც Node Part– ს მოითხოვდა, უკვე შეიცავს Orig_driver საქაღალდეში. ქვემოთ მოყვანილი ბიბლიოთეკები უნდა დაინსტალირდეს ხელით:
Adafruit_ASFcore
იმის გამო, რომ პროექტი გართულებულია, ჩვენ გირჩევთ გამოიყენოთ Arduino IDE ნაცვლად Microsoft Visual Studio. მოდული სახელწოდებით Visual Micro დაგეხმარებათ Arduino პროექტის განხორციელებაში Visual Studio– ს გამოყენებით, დააწკაპუნეთ აქ დამატებითი ინფორმაციისთვის.
უკეთესი წაკითხვისა და შენარჩუნების მიზნით, ჩვენ ვიყენებთ ობიექტზე ორიენტირებულ პროგრამირებას ამჯერად. ამ პროექტის კლასის დიაგრამა ასე გამოიყურება ქვემოთ:
იმ სენსორებს, რომლებსაც უკვე აქვთ OOP დრაივერი, ჩვენ გადავაფარეთ იგი ამ პროექტის შესაცვლელად, სხვებისთვის კი ჩვენ გადავაწერეთ მათი დრაივერები OOP– ის გამოყენებით. სენსორული კლასი საშუალო პროგრამის ფენაში გამოიყენება რეალური სენსორების ინტერფეისების გასაერთიანებლად, მაგალითად, ბარომეტრის სენსორს შეუძლია შეაგროვოს ტემპერატურა, ტენიანობა და სიმაღლე ერთდროულად, ამიტომ მას აქვს 3 ინტერფეისი ტემპერატურის, ტენიანობის და სიმაღლის მოსაპოვებლად. მაგრამ მათ აქვთ განსხვავებული მეთოდის სახელი, რაც სენსორების ღირებულების შეძენის პროგრამას უფრო გაართულებს, ისევე როგორც ეს:
ბარომეტრი-> getTemperature ();
ბარომეტრი-> getHumidity (); ბარომეტრი-> getAltitude (); //… სხვა_სენსორი-> getSomeValue (); //…
მაგრამ OOP– ის გამოყენებით, ასე გამოიყურება:
for (auto i = 0; i getValue ();
}
ჩვენ ასევე შეფუთული გვაქვს აპლიკაციის კლასი, რომელიც ახორციელებს IApplication ინტერფეისს, IoTea.ino– ში setup () და loop () მეთოდს შეუძლია დარეკოს setup () და loop () მეთოდი აპლიკაციის ობიექტში.
შენიშვნა: USB სერიული გამოიყენება მხოლოდ გამართვისთვის. გამართვის შემდეგ, გთხოვთ გამოხატოთ მისი ინიციალიზაციის კოდი setup () მეთოდით.
კარიბჭის ნაწილი
Gateway Part– ის პითონის პროგრამა სახლის საქაღალდეში გამოიყენება ფოტოების გადასაღებად და ატვირთვისთვის Amazon S3 სერვერზე ყოველ საათში. სანამ გამოიყენებ, დარწმუნდი, რომ fswebcam უკვე დაყენებულია შენს Raspberry Pi- ში:
sudo apt- მიიღეთ განახლება && sudo apt-get დააინსტალირეთ fswebcam
თუ გსურთ ფოტოების ატვირთვა, დააკონფიგურირეთ თქვენი AWS შემდეგი ნაბიჯებით. პირველი, დააინსტალირეთ AWS SDK და AWS CLI თქვენს Raspberry Pi– ზე ამ ბრძანებების გამოყენებით:
sudo pip დააინსტალირეთ boto3
sudo pip დააინსტალირეთ awscli
და შემდეგ გაუშვით AWS CLI:
sudo aws კონფიგურაცია
დააკონფიგურირეთ თქვენი AWS წვდომის გასაღების ID, AWS საიდუმლო წვდომის ID და ნაგულისხმევი რეგიონის სახელი.
თუ არ მოგწონთ თქვენი ფოტოების ატვირთვა, შეგიძლიათ გამოტოვოთ AWS კონფიგურაციის ნაბიჯები და გააკეთოთ კომენტარი კოდებზე ფოტოზე. Py ატვირთვასთან დაკავშირებით. ამ პროგრამის გასაშვებად Raspberry Pi– ს ყოველ ჯერზე ჩატვირთვის შემდეგ, თქვენ შეგიძლიათ შექმნათ ფაილის სახელის ფოტო /etc/init.d და ჩაწეროთ მას შემდეგი კოდი.
#!/bin/bash
# /etc/init.d/photo ### INIT INFO # უზრუნველყოფს: seeed_photo # საჭირო-დაწყება: $ remote_fs $ syslog # საჭირო-გაჩერება: $ remote_fs $ syslog # ნაგულისხმევი-დაწყება: 2 3 4 5 # ნაგულისხმევი-გაჩერება: 0 1 6 # მოკლე აღწერა: ფოტოს გადაღება initscript # აღწერა: ეს სერვისი გამოიყენება ფოტო გადაღების მართვის მიზნით ### END INIT INFO საქმე "$ 1" დასაწყისში) ექო "ფოტოს გადაღების დაწყება" /home/rxhf/photo.py &;; გაჩერება) ექო "შეაჩერე ფოტოს გადაღება" kill $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{ბეჭდვა $ 2}');; *) ექო "გამოყენება: სერვისის ფოტო დაწყება | გაჩერება" გასასვლელი 1;; esac გასასვლელი 0
დააყენეთ შესრულების ნებართვა
sudo chmod 777/და ა.შ./init.d/ ფოტო
sudo chmod 777 /home/rxhf/photo.py
და გამოსცადე
sudo /etc/init.d/ ფოტო დაწყება
თუ პრობლემა არ არის, შეწყვიტეთ და დაამატეთ იგი გაშვების პროგრამაში
sudo /etc/init.d/ ფოტო გაჩერება
sudo update-rc.d ფოტო ნაგულისხმევი
შენიშვნა: თუ გსურთ გაშვების კარიბჭე Raspberry Pi ჩატვირთვის შემდეგ, დაამატეთ კარიბჭის საწყისი კოდები Seeed Wiki– ში /etc/rc.local, ასე გამოიყურება:
#!/bin/sh -e
# # rc.local # # ეს სკრიპტი შესრულებულია თითოეული მრავალჯერადი გამოყენების დონის ბოლოს. # დარწმუნდით, რომ სკრიპტი იქნება "გასვლა 0" წარმატებაზე ან სხვა # მნიშვნელობა შეცდომებზე. # # იმისათვის, რომ ჩართოთ ან გამორთოთ ეს სკრიპტი უბრალოდ შეცვალეთ შესრულების # ბიტი. # # სტანდარტულად ეს სკრიპტი არაფერს აკეთებს. # დაბეჭდეთ IP მისამართი _IP = $ (hostname -I) || მართალია, თუ ["$ _IP"]; შემდეგ printf "ჩემი IP მისამართი არის %s / n" "$ _IP" fi cd /home/rxhf/loriot/1.0.2 sudo systemctl stop pktfwd sudo gwrst wget https://cn1.loriot.io/home/gwsw/loriot -risinghf-r… -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io გასასვლელი 0
ვებგვერდი
ჩვენ განვათავსეთ ვებგვერდი CentOS 7. შემდეგ ნაბიჯებზე ნაჩვენებია როგორ განვათავსოთ.
ნაბიჯი 1. დააინსტალირეთ Python3
sudo yum -y დააინსტალირეთ epel -release
sudo yum -y დააინსტალირეთ python36
ნაბიჯი 2. დააინსტალირეთ Python pip და ვირტუალური გარემო
wget
sudo python36 get-pip.py sudo pip დააინსტალირეთ virtualenv
ნაბიჯი 3. დაალაგეთ ჩვენი ვებ გვერდი GitHub– დან
sudo yum -y დააინსტალირეთ git
git კლონი
ნაბიჯი 4. შექმენით და გააქტიურეთ ვირტუალური გარემო
virtualenv -p python36 iotea -hb
cd iotea-hb წყარო bin/activ
ნაბიჯი 5. დააინსტალირეთ დამოკიდებული ბიბლიოთეკები
pip დააინსტალირეთ pymysql
pip დააინსტალირეთ dbutils pip დააინსტალირეთ flask pip დააინსტალირეთ websocket-client pip install cofigparser
ნაბიჯი 6. მონაცემთა ბაზის შექმნა
sudo yum -y დააინსტალირეთ mariadb mariabd -server
sudo systemctl ჩართვა mariadb sudo systemctl დაწყება mariadb mysql -uroot -p
და შემდეგ გამოიყენეთ iotea_hb.sql ცხრილის შესაქმნელად.
ნაბიჯი 7. შექმენით db.ini და ჩაწერეთ ეს კოდები
[დ.ბ]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
შეცვალეთ db.ini გზა db.py
# db.py
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
ნაბიჯი 8. შეცვალეთ პორტი app.py– ში და დაიწყეთ ვებ – გვერდი:
# აპლიკაციაში. py
#app.run (გამართვა = მართალია, პორტი = 6000) app.run (გამართვა = მართალია, პორტი = 8080)
# ტერმინალში
pip დააინსტალირეთ gunicorn gunicorn -w 5 -b 0.0.0.0:8080 აპლიკაცია: აპლიკაცია
ახლა ეწვიეთ 127.0.0.1:8080 თქვენს ბრაუზერში, შეგიძლიათ ნახოთ ვებგვერდი, მაგრამ რეალურ დროში მონაცემები არ არის ნაჩვენები.
ნაბიჯი 9. მიიღეთ ლორიოტის მონაცემები
გახსენით სხვა ტერმინალი, შედით ვირტუალურ გარემოში და დაიწყეთ ლორიოტის აპლიკაცია:
cd iotea-hb
წყაროს ბინ/გააქტიურება gunicorn loriot: აპლიკაცია
დაელოდეთ ცოტა ხანს, თქვენ ნახავთ მონაცემებს, რომლებიც ნაჩვენებია ვებგვერდზე, ან შეგიძლიათ შეცვალოთ wss loriot.py- ში:
# in loriot.py
#ws = შექმნა_კავშირი ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
ნაბიჯი 5: ოპერაცია
თქვენ შეგიძლიათ ეწვიოთ ჩვენს ვებსაიტებს რეალურ დროში მონაცემების სანახავად:
- იაანში
- დემონსტრაციისთვის
გირჩევთ:
გულის ვიზუალიზატორი - ნახეთ თქვენი გულისცემა: 8 ნაბიჯი (სურათებით)
გულის ვიზუალიზატორი | ნახეთ თქვენი გულისცემა: ჩვენ ყველამ ვიგრძენით ან მოვისმინეთ ჩვენი გულის ცემა, მაგრამ ბევრ ჩვენგანს არ უნახავს. ეს იყო აზრი, რამაც მაიძულა ამ პროექტით დამეწყო. მარტივი გზა, რომ ვიზუალურად ნახოთ თქვენი გულისცემა გულის სენსორის გამოყენებით და ასევე გასწავლოთ ელექტროენერგიის საფუძვლები
ნახეთ LoRa IoTea გადაწყვეტა: 5 ნაბიჯი
ნახე LoRa IoTea გადაწყვეტა: ინფორმაციის შეგროვების ავტომატური სისტემა, რომელიც გამოიყენება ჩაის პლანტაციაში. ეს არის ინტელექტუალური სასოფლო -სამეურნეო ინფორმაციის შეგროვების ნაწილი
ნახეთ IoTea LoRa გადაწყვეტა (Azure– ით, განახლება 1812): 5 ნაბიჯი
ნახე IoTea LoRa გადაწყვეტა (Azure– ით, განახლება 1812): Microsoft Azure არის ღრუბლოვანი სერვისი, რომელიც უზრუნველყოფს უფრო მძლავრ და სტაბილურ გამოთვლილ ძალას. ამჯერად ჩვენ ვცადეთ ჩვენი IoTea მონაცემების გაგზავნა
CalClock: უბრალოდ ნახეთ თქვენი განრიგი: 4 ნაბიჯი (სურათებით)
CalClock: უბრალოდ ნახეთ თქვენი განრიგი: კონცენტრაციის ყველაზე უარესი დაკარგვა ხდება მხოლოდ იმისთვის, რომ გაიგოთ, რომ არ არის საჭირო შეფერხება. მე ვფიქრობ, რომ ეს ხშირად ხდება ჩემს გრაფიკთან დაკავშირებით. მე ვიმუშავებ პრობლემაზე და გამიჩნდება უაზრო აზრი, "არის თუ არა
Smart Wearable და Id ბარათი ნახეთ თქვენი გულისცემა იგრძენით: 5 ნაბიჯი
Smart Wearable და ID ბარათი ნახეთ თქვენი გულისცემა იგრძენით: ჭკვიანი ტარებადი ის არის ჭკვიანი O.LED დაფუძნებული ტარებადი, რომელიც აღჭურვილია სენსორებით, რომელიც აჩვენებს თქვენს გულისცემას ცოცხლად და ლიდერს, რომელიც ანათებს თქვენი გულისცემის მიხედვით, რაც ახალ გამოცდილებას მოგცემთ. შენი გულისცემა და ნახე მისი საზრუნავი