Სარჩევი:

UCL - IIOT სასათბურე მეურნეობა: 11 ნაბიჯი
UCL - IIOT სასათბურე მეურნეობა: 11 ნაბიჯი

ვიდეო: UCL - IIOT სასათბურე მეურნეობა: 11 ნაბიჯი

ვიდეო: UCL - IIOT სასათბურე მეურნეობა: 11 ნაბიჯი
ვიდეო: UCL-IIoT-Datalogger 2024, ივლისი
Anonim
UCL - IIOT სათბური
UCL - IIOT სათბური

ეს პროექტი არის ჩვენი წინა პროექტის გაგრძელება სათბურთან (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).

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

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

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

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

ნაბიჯი 1: ინსტალაციის სახელმძღვანელო

ინსტალაციის სახელმძღვანელო
ინსტალაციის სახელმძღვანელო

პირველი ნაბიჯი არის ყველა განსხვავებული კომპონენტის დაყენება.

ფრჩხილებში (), ჩვენ ჩამოვთვალეთ, სად არის დაკავშირებული კომპონენტი. მაგალითად, Arduino უკავშირდება Raspberry Pi– ს USB კაბელის საშუალებით.

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

  • არდუინო (ჟოლო პი)
  • ჟოლო Pi 3 B+
  • ნიადაგის ჰიგირომეტრი (არდუინო)
  • DHT11 სენსორი (Arduino)
  • HG-320 წყალქვეშა წყლის ტუმბო (სარელეო)
  • 5V სარელეო (არდუინო)
  • კომპიუტერის ვენტილატორი (სარელეო)
  • 230V დენის წყარო (ტუმბო)

გამოყენებული პროგრამული უზრუნველყოფა:

  • Raspbian (OS Raspberry Pi– სთვის)
  • Arduino IDE
  • პითონი (ჟოლო Pi)- PySerial- MySQLclient
  • Node-Red (Raspberry Pi)- Pythonshell- შემაჯამებელი- MySQL- დაფა
  • MySQL სერვერი (freemysqlhosting.net)

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

შემდეგ თქვენ უნდა დააინსტალიროთ Raspbian OS თქვენს Raspberry Pi– ზე. ამის შემდეგ თქვენ მოგიწევთ პითონის დაყენება, შემდეგ კი პითონის ბიბლიოთეკების დაყენება.

შემდეგი ნაბიჯი არის Raspberry Pi- ზე Node-Red- ის დაყენება, შემდეგ კი ნავიგაცია პალეტის მენეჯერთან და ინსტალაცია ადრე ნახსენები მოდულებისა.

შემდეგ გადადით ამ საიტზე უფასო MySQL სერვერი და შექმენით უფასო MySQL სერვერი.

როდესაც ეს ყველაფერი დასრულდება, თქვენ მზად ხართ პითონის სკრიპტი გადაიტანოთ თქვენს Raspberry Pi– ში, შემოიტანოთ Node-Red სკრიპტი და ატვირთოთ კოდი Arduino– სთვის.

ნაბიჯი 2: კონტროლის ჩვენება

Image
Image

ნაბიჯი 3: პროექტში გამოყენებული ნაწილების/პროგრამული უზრუნველყოფის ჩამონათვალი

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

  • არდუინო
  • ჟოლო პი
  • კვანძი-წითელი
  • პითონი
  • PHPMyAdmin

ნაბიჯი 4: I/0 სია

გაყვანილობის დიაგრამა
გაყვანილობის დიაგრამა

ნაბიჯი 5: გაყვანილობის დიაგრამა

ნაბიჯი 6: Arduino კოდი

არდუინოს კოდი მუშაობს მონაცემების დაბეჭდვით, გაზომილი სენსორებით, სერიულ კავშირზე, სადაც მას კითხულობს Raspberry Pi და გადადის მონაცემთა ბაზაში.

Arduino– ს ასევე აქვს ციფრული შეყვანის ნიშნები, რომლებიც დაკავშირებულია Raspberry Pi– სთან, რომელსაც Arduino კითხულობს და თუ სამიდან ერთი გახდება HIGH, პროფილი შეიცვლება IF განცხადების გამო.

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

ნაბიჯი 7: ჟოლო Pi 3 B+

ჟოლო Pi 3 B+
ჟოლო Pi 3 B+

ჩვენ გამოვიყენეთ Raspberry Pi 3 B+ ჩვენი Arduino– ს ინტერნეტთან და MySQL მონაცემთა ბაზასთან დასაკავშირებლად. ამან შესაძლებელი გახადა ჩვენი სენსორების მონაცემების შენახვა და საბოლოო მომხმარებლის ვიზუალური ინტერფეისის შექმნა. მომხმარებლის ინტერფეისისთვის ჩვენ გამოვიყენეთ Node-Red Dashboard პალიტრასთან ერთად.

მაგრამ სანამ ჩვენ შევძლებდით ჩვენი სენსორული მონაცემების ჩვენებას Node-Red– ზე, ჩვენ გვჭირდებოდა გზა მონაცემების ატვირთვა MySQL მონაცემთა ბაზაში და ამისთვის ჩვენ შევქმენით პითონის სკრიპტი, რომელიც იმუშავებდა ჩვენს Raspberry Pi– ზე.

ნაბიჯი 8: პითონი

პითონი
პითონი

პითონის სკრიპტი გამოიყენება არდუინოს სერიული კომუნიკაციის მონაცემების მისაღებად. შემდეგ სკრიპტი აგზავნის მონაცემებს MySQL მონაცემთა ბაზაში.

ჩვენ გამოვიყენეთ ორი ბიბლიოთეკა, pyserial და mysqlclient.

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

  1. PySerial
  2. MySQL კლიენტი

PySerial გამოიყენება Arduino– დან მონაცემების სერიული კომუნიკაციის შესაგროვებლად.

მოწყობილობა = '/dev/ttyUSB0'

arduino = სერიული. სერიული (მოწყობილობა, 9600)

პირველი ხაზი გამოიყენება ჩვენი COM პორტის განსაზღვრისათვის. Raspberry Pi– ზე არის /dev /ttyUSB0, რომელსაც ჩვენ ვიყენებთ Arduino– სთვის. მეორე ხაზი არის სერიული პორტის არდუინოს გასახსნელად. ჩვენ უბრალოდ განვსაზღვრავთ რომელი COM პორტი და რა სიჩქარით მუშაობს კავშირი.

დანარჩენი კოდი მუშაობს ცოტა ხნის მარყუჟში.

შემდეგ ჩვენ ვიყენებთ მრავალჯერ Try and Except ბლოკების გარდა. ჯერ კოდი ცდილობს გაუშვას Try ბლოკში, თუ ეს ვერ მოხერხდა, მაშინ ის გადის გარდა ბლოკისა. მაგრამ თუ Try ბლოკი კარგად მუშაობს, ის არ მუშაობს გარდა ბლოკისა, ის უბრალოდ მუშაობს დანარჩენ კოდზე.

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

ჰიგიროლისტი = arduino.readlines (1)

templist = arduino.readlines (2) humidlist = arduino.readlines (3)

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

როდესაც მონაცემები Arduino– დან მიიღება, ჩვენ გამოვიყენეთ mysqlclient მოდული მონაცემების გასაგზავნად ჩვენს MySQL სერვერზე.

db = _mysql.connect (host = "sql7.freemysqlhosting.net", მომხმარებელი = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")

ეს ხაზი განკუთვნილია ჩვენს MySQL მონაცემთა ბაზასთან დასაკავშირებლად. ის განსაზღვრავს სერვერს, მომხმარებლის სახელს, პაროლს და რომელ მონაცემთა ბაზას უნდა დაუკავშირდეს ის სერვერის შიგნით. აქ თქვენ უნდა მიუთითოთ კავშირი თქვენს MySQL DB– სთან.

db.query ("INSERTINTO` TempHumid` (`temp`,` humid`, `hygro`) VALUES (%s, %s, %s)" %(temp, humid, hygro))

ასე რომ, ჩვენ ვიღებთ ჩვენს DB კავშირს და ვაკეთებთ SQL შეკითხვას. მოთხოვნა ამბობს, რომ მნიშვნელობები უნდა იყოს ჩასმული ცხრილში "TempHumid" და შემდეგ სვეტებში "temp", "humid" და "hygro". ბოლო ნაწილი "(%s, %s, %s)" არის სტრიქონის ფორმატირება და გამოიყენება მონაცემთა ბაზისათვის ფორმატის მისაცემად, რომლის წაკითხვაც მას შეუძლია.

და მთელი ეს მოქმედება ჩადებულია მარყუჟში, ასე რომ ჩვენ ვიღებთ მონაცემებს იგზავნება MySQL სერვერზე.

თუ გსურთ ყველა კოდის ნახვა, გადმოწერეთ პითონის სკრიპტი (TempHumid.py).

ნაბიჯი 9: MySQL

MySQL
MySQL
MySQL
MySQL

MySQL სერვერისთვის ჩვენ გამოვიყენეთ უფასო სერვისი www.freemysqlhosting.net– ზე. ჩვენ შეგვეძლო გვექნა სერვერი Raspberry Pi– ზე, მაგრამ ჩვენ უფასო სერვისით მივედით, რათა ის სრულად იყოს დაკავშირებული ღრუბელთან/ინტერნეტთან.

თქვენს MySQL– ზე წვდომისათვის, თქვენ უნდა შეხვიდეთ phpmyadmin.co– ზე და შეხვიდეთ თქვენი freemysqlhosting ანგარიშის სერთიფიკატებით.

როდესაც შიგნით ხართ, თქვენ უნდა შექმნათ ცხრილი სახელწოდებით "TempHumid", ამ ცხრილის შიგნით თქვენ უნდა შექმნათ 4 სვეტი სახელწოდებით "ID", "temp", "humid" და "hygro". პირველ სვეტში (ID) თქვენ უნდა მონიშნოთ ყუთი A_I (ავტომატური ზრდა). ეს ხდება ისე, რომ ID სვეტი აძლევს თითოეულ მონაცემთა ნაკრებს ID. ყველა მომდევნო სვეტი უნდა იყოს მითითებული როგორც INT (მთელი რიცხვი) და სტანდარტული მნიშვნელობა იყოს NULL.

ნაბიჯი 10: კვანძი-წითელი

კვანძი-წითელი
კვანძი-წითელი
კვანძი-წითელი
კვანძი-წითელი
კვანძი-წითელი
კვანძი-წითელი

ჩვენს პროექტში ჩვენ გამოვიყენეთ Node-Red გრაფიკული ინტერფეისის შესაქმნელად. Node-Red მუშაობს Raspberry Pi– ზე და აგროვებს მონაცემებს ჩვენი MySQL მონაცემთა ბაზიდან და აჩვენებს ამ მონაცემებს დონატის ფორმის საზომი და გრაფიკული სქემები, რათა საბოლოო მომხმარებელს შეეძლოს მონაცემების მონიტორინგი. Node-Red– ის ჭკვიანური თვისება ის არის, რომ მისი ნახვა შესაძლებელია ნებისმიერ მოწყობილობაზე, რაც იმას ნიშნავს, რომ საიტის ზომა შეიცვლება მოცემული მოწყობილობისთვის, რომელიც ათვალიერებს შინაარსს.

ჩვენი Node-Red პროგრამირების ინსტალაციისთვის გადახედეთ ნაბიჯ 1-ს და გადმოწერეთ დოკუმენტი სახელწოდებით "Node-Red.docx". შემდეგ დააკოპირეთ და ჩასვით ტექსტი Node-Red ზედა მარჯვენა კუთხეში იმპორტის ფუნქციის საშუალებით.

ამის შემდეგ შეცვალეთ DB პარამეტრები თქვენი MySQL DB– სთვის.

გირჩევთ: