Სარჩევი:

ავტომატური მცენარეული ქოთანი - პატარა ბაღი: 13 ნაბიჯი (სურათებით)
ავტომატური მცენარეული ქოთანი - პატარა ბაღი: 13 ნაბიჯი (სურათებით)

ვიდეო: ავტომატური მცენარეული ქოთანი - პატარა ბაღი: 13 ნაბიჯი (სურათებით)

ვიდეო: ავტომატური მცენარეული ქოთანი - პატარა ბაღი: 13 ნაბიჯი (სურათებით)
ვიდეო: ბჰაგავან შრი სატია საი ბაბა - "მაცოცხლებელი წვიმები ბრინდავანში 1979" - აუდიო წიგნი 2024, ივლისი
Anonim
ავტომატური მცენარეული ქოთანი - პატარა ბაღი
ავტომატური მცენარეული ქოთანი - პატარა ბაღი

მე ვარ სტუდენტი მულტიმედიური და საკომუნიკაციო ტექნოლოგიებიდან Howest Kortrijk– ში. ჩვენი საბოლოო დავალებისთვის, ჩვენ უნდა შევიმუშაოთ IoT პროექტი ჩვენი არჩევანით.

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

ამ ავტომატური ქარხნის ქოთნის, პატარა ბაღის ძირითადი ამოცანებია:

  • გაზომეთ

    • ტემპერატურა
    • სინათლის ინტენსივობა
    • ტენიანობა
    • Მიწის ტენიანობა

შეინახეთ გაზომვები მონაცემთა ბაზაში

გააუმჯობესეთ პირობები მცენარის ზრდისთვის, თუ გარკვეული მნიშვნელობა ძალიან დაბალია

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

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

ნაბიჯი 1: მარაგი

მარაგები
მარაგები
მარაგები
მარაგები
მარაგები
მარაგები

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

ძირითადი კომპონენტები:

  • ჟოლო Pi 4 მოდელი B
  • ჟოლო Pi კვების წყარო
  • ჟოლო Pi T-cobbler
  • 16 GB მიკრო SD ბარათი
  • პურის დაფის კვების წყარო 3.3V და 5V
  • პურის დაფა
  • 12V კვების ბლოკი

სენსორები:

  • DHT11: ტენიანობისა და ტემპერატურის სენსორი
  • BH1750: სინათლის ინტენსივობის სენსორი
  • ნიადაგის ტენიანობის სენსორი
  • MCP3008

გამააქტიურებელი კომპონენტები:

  • 220V წყლის ტუმბო
  • 12V LED ზოლები
  • სარელეო მოდული Velleman
  • რჩევა 50: NPN ტრანზისტორი
  • 16X2 LCD მოდემი
  • PCF8574a

რეზისტორები:

  • 3 x 330 Ohm რეზისტორები
  • 1 x 5k Ohm რეზისტორი
  • 2 x 10k Ohm რეზისტორები
  • 1 x 1k Ohm რეზისტორი
  • 1 x 10k პოტენციური რეზისტორი

მასალები:

  • ასაწყობი სათბური/მცენარეული ქოთანი
  • კავშირის ყუთი
  • პლასტიკური წყლის ბოთლი
  • ბრუნავს
  • ჯუმბერის მავთულები + ჩვეულებრივი მავთული
  • სკრუსი
  • შედუღების კალის + სითბოს შემცირების მილები
  • ორმხრივი ducktape
  • საღებავი

ინსტრუმენტები:

  • წებო იარაღი
  • საბურღი
  • Ხერხის პირი
  • გასაყიდი რკინა
  • ყუთის საჭრელი
  • საღებავის ფუნჯი

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

ნაბიჯი 2: გაყინვის სქემა

გაყინვის სქემა
გაყინვის სქემა
გაყინვის სქემა
გაყინვის სქემა

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

კომპონენტების მუშაობის ზოგადი ახსნა:

  • DHT11 ზომავს ჰაერის ტენიანობას % და ტემპერატურა ° C- ში. მასთან კომუნიკაციას ახორციელებს I2C bu.
  • BH1750 ზომავს სინათლის ინტენსივობას ლუქსში. კომუნიკაციას მართავს I2C ავტობუსი
  • ნიადაგის ტენიანობის სენსორი ქმნის ციფრულ სიგნალს, რომელიც MCP3008- ით გარდაიქმნება ჟოლოს პიისთვის წაკითხულ ციფრულ სიგნალად
  • 16x2 LCD მოდული აჩვენებს IP მისამართებს Pi- დან, ერთმანეთის მიყოლებით. ის დაკავშირებულია PCF8574a– სთან, რომელიც იღებს სიგნალს Raspberry Pi– სგან, რომელიც მას გარდაქმნის არაერთ სიგნალად ეკრანის ბიტ ქინძისთავებისთვის. LCD– დან E და RS ქინძისთავები პირდაპირ Pi– ს უკავშირდება. პოტენციური რეზისტორი განსაზღვრავს ეკრანის სიკაშკაშეს.
  • წყლის ტუმბო უკავშირდება რელეს, რომელიც არის მის შორის და მისი 220V კვების ბლოკი/სოკეტი. Raspberry Pi- ს შეუძლია სიგნალი გაუგზავნოს სარელეოს, რომ დახუროს ელექტრული წრე და ჩართოს ტუმბო.
  • LED ზოლები დაკავშირებულია 12V კვების ბლოკთან და TIP 50 (NPN ტრანზისტორი), რომელიც ცვლის ელექტრო დენს. 1k Ohm რეზისტორი გამოიყენება Raspberry Pi– დან გამოყვანილი ენერგიის შეზღუდვის მიზნით, წინააღმდეგ შემთხვევაში ის შემწვარი იქნებოდა.

ნაბიჯი 3: მოამზადეთ ჟოლო პი

მოამზადეთ ჟოლო პი
მოამზადეთ ჟოლო პი

თუ ჯერ არ გაქვთ, თქვენ უნდა მოათავსოთ ერთი Raspberry Pi OS სურათი SD ბარათზე. მე არ გირჩევთ Lite– ს გამოყენებას, რადგან ამან თავიდანვე პრობლემები შემიქმნა. ამის შემდეგ თქვენ უნდა დარწმუნდეთ, რომ თქვენი Pi განახლებულია შემდეგი ბრძანებების გამოყენებით, სანამ Pi ინტერნეტთან არის დაკავშირებული:

  1. sudo apt-get განახლება
  2. sudo apt-get განახლება

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

  • SPI
  • I2C
  • MySQL: შემდეგი ნაბიჯი
  • SocketIO: pip install flask-socketio

დაყენების შემდეგ შეგიძლიათ დაამატოთ საჭირო ფაილები, რომლებიც დაწერილია html, CSS, Javascript და Python. მთელი ჩემი კოდი შეგიძლიათ იხილოთ ჩემს github საცავში.

ნაბიჯი 4: მონაცემთა ბაზის მოდელი - MySQL

მონაცემთა ბაზის მოდელი - MySQL
მონაცემთა ბაზის მოდელი - MySQL

ზემოთ თქვენ შეგიძლიათ ნახოთ ERD დიაგრამა, რომელიც განთავსებულია MariaDB– ის საშუალებით. მე გირჩევთ მიჰყევით ამ MariaDB ინსტალაციის გზამკვლევს, არა მხოლოდ MariaDB– ის ინსტალაციისთვის, არამედ იმის უზრუნველსაყოფად, რომ თქვენი Pi დაცულია.

მათთვის, ვისაც სურს გაიგოს, მონაცემთა ბაზა მუშაობს შემდეგნაირად:

გაზომვები და გამაქტიურებელი გადართვები ინახება რიგების სახით მეტინგენის ცხრილში.

  • metingId = გაზომვის/გადართვის რიგის ID
  • deviceId = ცხრილში ამ სტრიქონზე პასუხისმგებელი მოწყობილობის ID
  • waarde = სენსორის გაზომვის ან ამომრთველის გადართვის მნიშვნელობა

    • სენსორი: გაზომვის მნიშვნელობა შესაბამის ერთეულებში
    • აქტივატორები: 0 = გამორთული და 1 = ჩართული
  • commentaar = კომენტარები გამოიყენება დამატებითი ინფორმაციის დასამატებლად, როგორიცაა შეცდომები
  • datum = თარიღი და დრო, როდესაც მოხდა გაზომვა/გადართვა

მოწყობილობის პარამეტრები ინახება პარამეტრებში.

  • settingId = ამ რიგის ID და პარამეტრის მნიშვნელობა
  • deviceID = შესაბამისი მოწყობილობის/სენსორის ID
  • waarde = პარამეტრის მნიშვნელობა
  • ტიპი = დასახლების ტიპი, ეს არის მაქსიმალური თუ მინიმალური?

დაბოლოს, მაგრამ არანაკლებ მნიშვნელოვანია, მოწყობილობების ცხრილი შეიცავს ინფორმაციას სენსორებისა და გამტარებლების შესახებ.

  • deviceId = მოწყობილობის ID ამ ცხრილში
  • naam = მოწყობილობის/კომპონენტის სახელი
  • მერკი = ბრენდი
  • prijs = კომპონენტის ფასი
  • beschrijving = კომპონენტის შეჯამება
  • eenheid = ერთეული გაზომილი მნიშვნელობებისათვის
  • typeDevice = განსაზღვრავს კომპონენტი სენსორია თუ აქტივატორი

ნაბიჯი 5: Frontend: ვებ სერვერის დაყენება

ფრონტონდი: ვებ სერვერის დაყენება
ფრონტონდი: ვებ სერვერის დაყენება

Pi მოითხოვს თქვენ დააყენოთ Apache ვებ სერვერი, რათა გაუშვათ ვებ სერვერი ამ მოწყობილობისთვის. ეს შეიძლება გაკეთდეს შემდეგი ბრძანებით:

sudo apt-get დააინსტალირეთ apache2.

ამის დასრულების შემდეგ, შეგიძლიათ გადახვიდეთ საქაღალდეში:/var/www/html. აქ თქვენ უნდა განათავსოთ ფრონტონის ყველა კოდი. ამის შემდეგ, თქვენ შეგიძლიათ შეხვიდეთ ვებსაიტზე IP მისამართის დათვალიერებით.

ნაბიჯი 6: უკანა მხარე

უკანა პროგრამის გასაშვებად, თქვენ უნდა გაუშვათ app.py ფაილი, ხელით ან მისთვის სერვისის შექმნით Pi- ზე, რათა ის ავტომატურად დაიწყოს.

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

მოკლე ახსნა:

app.py: მთავარი ფაილი, სადაც გაერთიანებულია მონაცემთა ბაზა, აპარატურის კოდი და უკანა კოდი

config.py: მონაცემთა ბაზის საცავების კონფიგურაციის ფაილი

საცავი: მონაცემთა საცავზე წვდომისათვის

  • დამხმარე

    • devices_id: კლასები, რომლებიც დაგეხმარებათ მონაცემთა ბაზაში არსებული მოწყობილობის ინფორმაციის იდენტიფიცირებაში
    • LCD: გაუშვით PCF და LCD
    • აქტივატორები: კლასები აქტივატორების გასაშვებად
    • სენსორები: სენსორების გაშვების კლასები

ნაბიჯი 7: განათავსეთ LED ზოლები

LED ზოლის განთავსება
LED ზოლის განთავსება

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

ნაბიჯი 8: მილების განთავსება

მილების განთავსება
მილების განთავსება

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

ნაბიჯი 9: მოათავსეთ LCD

LCD– ის განთავსება
LCD– ის განთავსება

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

LCD აჩვენებს Raspberry Pi– ს IP მისამართებს, რაც შესაძლებელს ხდის იცოდეთ რა მისამართის გამოყენება შეგიძლიათ ვებ – გვერდზე დასათვალიერებლად.

ნაბიჯი 10: სენსორების განთავსება და LED ზოლის დაკავშირება

სენსორების განთავსება და LED ზოლის დაკავშირება
სენსორების განთავსება და LED ზოლის დაკავშირება
სენსორების განთავსება და LED ზოლის დაკავშირება
სენსორების განთავსება და LED ზოლის დაკავშირება

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

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

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

ნაბიჯი 11: Pi- ს გაყვანილობა

გაყვანილობა Pi
გაყვანილობა Pi
გაყვანილობა Pi
გაყვანილობა Pi
გაყვანილობა Pi
გაყვანილობა Pi

მე გავჭრა ხვრელები ყუთის გვერდით, რათა შემდგომში მავთულები გადიოდეს.

ამის შემდეგ, მე მოვათავსე პურის დაფა (T-cobbler– ით, PCF8574a, MCP3008, რეგულირებადი წინააღმდეგობით და TIP50), სარელეო და ჟოლოს პი ქვედა კოლოფის ბოლოში, რომელიც დაფარული იყო ორმხრივი ორყელით. კვების ბლოკი არ იდო პურის დაფაზე, ამიტომ მომიწია გვერდით დაყენება და ჯუმბერის მავთულები გამოვიყენე პურის დაფასთან.

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

ნაბიჯი 12: წყლის კონტეინერის დამზადება

წყლის კონტეინერის დამზადება
წყლის კონტეინერის დამზადება

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

ნაბიჯი 13: საბოლოო შედეგი

Საბოლოო შედეგი
Საბოლოო შედეგი
Საბოლოო შედეგი
Საბოლოო შედეგი

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

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

გირჩევთ: