Სარჩევი:

ინტერნეტით ჩართული დენის განყოფილება: 13 ნაბიჯი
ინტერნეტით ჩართული დენის განყოფილება: 13 ნაბიჯი

ვიდეო: ინტერნეტით ჩართული დენის განყოფილება: 13 ნაბიჯი

ვიდეო: ინტერნეტით ჩართული დენის განყოფილება: 13 ნაბიჯი
ვიდეო: არც ქმარი მყავს და არც მეუღლე - ნინიკო ნაცარაშვილი და „ლავასოღლი“ დაშორდნენ ▶️ TIA.GE 2024, ნოემბერი
Anonim
Image
Image
საჭირო მასალები
საჭირო მასალები

PowerHub ვებ სერვერის პროექტი და ინტერნეტი ჩართული განყოფილების დაყენების ინსტრუქცია

ინტერნეტის მუდმივი მონაცემთა ცენტრი ინტერნეტისთვის ჩართულია შუქი და საშუალებები თქვენს სახლში!

ნაბიჯი 1: PowerHub Webserver Project & Internet Enabled Outlet Setup Instructions

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

Flashp RaspberriPi მყარი დისკი/დააინსტალირეთ საჭირო პროგრამული უზრუნველყოფა (Ubuntu Linux– ის გამოყენებით) ჩამოტვირთეთ "RASPBIAN JESSIE LITE"

შექმენით თქვენი ახალი მყარი დისკი DashboardPI– სთვის

ჩადეთ microSD თქვენს კომპიუტერში USB ადაპტერის საშუალებით და შექმენით დისკის სურათი dd ბრძანების გამოყენებით

იპოვეთ თქვენი ჩამონტაჟებული microSD ბარათი df -h ბრძანების საშუალებით, გააუქმეთ იგი და შექმენით დისკის სურათი დისკის ასლი dd ბრძანებით

$ df -h/dev/sdb1 7.4G 32K 7.4G 1%/მედია/XXX/1234-5678

$ umount /dev /sdb1

სიფრთხილე: დარწმუნდით, რომ ბრძანება არის სრულიად ზუსტი, ამ ბრძანებით შეგიძლიათ დააზიანოთ სხვა დისკები

if = RASPBIAN JESSIE LITE გამოსახულების ფაილის ადგილმდებარეობა = თქვენი microSD ბარათის მდებარეობა

$ sudo dd bs = 4M if =/path/to/raspbian-jessie-lite.img of =/dev/sdb (შენიშვნა: ამ შემთხვევაში, ის/dev/sdb,/dev/sdb1 იყო არსებული ქარხნის დანაყოფი microSD)

თქვენი RaspberriPi– ის დაყენება

ჩადეთ ახალი microSD ბარათი ჟოლოში და ჩართეთ HDMI პორტთან დაკავშირებული მონიტორით

Შესვლა

მომხმარებელი: pi pass: ჟოლო

შეცვალეთ თქვენი ანგარიშის პაროლი უსაფრთხოების მიზნით

sudo passwd pi

ნაბიჯი 2: ჩართეთ RaspberriPi დამატებითი პარამეტრები

sudo raspi-config

აირჩიეთ: 1 ფაილის სისტემის გაფართოება

9 დამატებითი პარამეტრები

A2 მასპინძლის სახელი შეცვალეთ "WIFI-OUTLET"-ით

A4 SSH ჩართეთ SSH სერვერი

A7 I2C ჩართეთ i2c ინტერფეისი

ჩართეთ ინგლისური/ამერიკული კლავიატურა

sudo nano/etc/default/კლავიატურა

შეცვალეთ შემდეგი ხაზი: XKBLAYOUT = "ჩვენ"

გადატვირთეთ PI კლავიატურის განლაგების ცვლილებებისთვის / ფაილის სისტემის ზომის შეცვლა ძალაში შესასვლელად

$ sudo გამორთვა -r ახლა

ავტომატურად დაუკავშირდით თქვენს WiFi- ს

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

დაამატეთ შემდეგი ხაზები, რომ თქვენი ჟოლოს ავტომატურად დაუკავშირდეს თქვენს სახლის WiFi- ს (თუ თქვენს უკაბელო ქსელს ეწოდება მაგალითად "linksys", შემდეგ მაგალითში)

network = {ssid = "linksys" psk = "WIRELESS PASSWORD HERE"} გადატვირთეთ PI WiFi ქსელთან დასაკავშირებლად

$ sudo გამორთვა -r ახლა

ახლა, როდესაც თქვენი PI საბოლოოდ არის ადგილობრივ ქსელში, შეგიძლიათ დისტანციურად შეხვიდეთ მასში SSH– ის საშუალებით. მაგრამ ჯერ უნდა მიიღოთ ის IP მისამართი, რომელიც ამჟამად აქვს.

$ ifconfig მოძებნეთ "inet addr: 192.168. XXX. XXX" შემდეგი ბრძანების გამომუშავებაში თქვენი PI- ის IP მისამართისთვის

გადადით სხვა მანქანაზე და შედით თქვენს ჟოლოს ssp საშუალებით

$ ssh [email protected]. XXX. XXX

ნაბიჯი 3: დაიწყეთ საჭირო პაკეტების დაყენება

$ sudo apt-get განახლება

$ sudo apt-get განახლება

$ sudo apt-get ინსტალაცია vim git python- ითხოვს python-gpiozero python-smbus i2c-tools python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev python3-spidev python-spidev

განაახლეთ ადგილობრივი დროის ზონის პარამეტრები

$ sudo dpkg-ხელახლა დააკონფიგურირეთ tzdata

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

დააყენეთ მარტივი დირექტორია l ბრძანება [სურვილისამებრ]

vi ~/.bashrc

დაამატეთ შემდეგი ხაზი:

მეტსახელი l = 'ls -lh'

წყარო ~/.bashrc

VIM ნაგულისხმევი სინტაქსის ხაზგასმა [სურვილისამებრ]

sudo vi/etc/vim/vimrc

დატოვეთ კომენტარი შემდეგ სტრიქონზე:

სინტაქსი ჩართულია

დააინსტალირეთ i2c პითონის დრაივერები

ნაბიჯი 4: ააშენეთ ვებ API

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

დააინსტალირეთ "index.php", "values/" საქაღალდე და settings.php (კონფიგურირებული საკუთარ ღირებულებებზე) PHP ჩართულ ვებ სერვერზე თქვენი არჩევანით. საიდუმლო გასაღების მნიშვნელობა "settings.php" ფაილში უნდა ემთხვეოდეს საიდუმლო გასაღების მნიშვნელობას, რომელსაც თქვენ დააყენებთ "settings.py" ფაილში. ეს ძირითად დონეზე ხელს შეუშლის ნებისმიერი სხვა ვებ - ტრაფიკის მიერ მნიშვნელობების დაყენებას / ჩაწერას, თქვენი მოწყობილობების ჩართვას, ამის გასაკეთებლად ახლა გჭირდებათ ეს hashed API გასაღები HTTP მოთხოვნის სათაურში.

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

მიიღეთ კოდი

კლონირება მოახდინეთ GitHub– ის შემდეგ პროექტზე, რათა მიიღოთ ვებ სერვერის და RaspberryPI განყოფილების გაშვების კოდი.

github.com/khinds10/PowerHub

ვებ სერვერზე გაშვებისას API საბოლოო წერტილები

myhost/შეტყობინება (მიიღეთ მიმდინარე შეტყობინებების ნაკრები)

myhost/message/set (HTTP POST არის ამ URL– ს ნედლი სიმებიანი მნიშვნელობა ახალი შეტყობინების დასაყენებლად)

myhost/flag/{id} (მიიღეთ დროშის ბულანის სტატუსი მთელი რიცხვით: {id})

myhost/flag/all (მიიღეთ ყველა დროშის ლოგიკური სტატუსი ყველა დროშის სახით, როგორც მასივი)

myhost/flag/{id}/set (დააყენეთ მიმდინარე ლოგიკური სტატუსი დროშისათვის "true" მთელი რიცხვით: {id})

myhost/flag/{id}/unset (დააყენეთ მიმდინარე ლოგიკური სტატუსი დროშისათვის "false" მთელი რიცხვით: {id})

myhost/reading/{id} (მიიღეთ მიმდინარე საშუალო მნიშვნელობა კითხვისთვის მთელი რიცხვით: {id})

myhost/reading/all (მიიღეთ მიმდინარე საშუალო მნიშვნელობა ყველა წაკითხვისთვის, როგორც მასივი)

myhost/reading/{id}/set (HTTP POST არის ნედლეული რიცხვითი მნიშვნელობა ამ URL– სთვის, რომ დაამატოთ ახალი მნიშვნელობა მიმდინარე გამოთვლილ საშუალოზე) - იხილეთ ქვემოთ, თუ რამდენი მნიშვნელობა შედგენილია საშუალო მნიშვნელობასთან კონფიგურაცია "კითხვის" მნიშვნელობები გამოითვლება როგორც საშუალო რაოდენობის ბოლოდროინდელი გადარჩენილი კითხვის რიცხვითი მნიშვნელობები. დააყენეთ შემდეგი მუდმივი, თუ რამდენი უახლესი კითხვა უნდა იყოს ჩართული საშუალო მნიშვნელობის მისაღებად.

$ readingsAverageLimit = 5;

მონაცემთა ბაზის სერვერი შეინარჩუნებს მნიშვნელობებს იმ მარტივი ფაილებისათვის, რომლებიც მდებარეობს ქვემოთ მითითებული კონვენციის სახელებით. შენიშვნა: {id} შეიცვლება რეალური რიცხვით, რომელიც წარმოდგენილია შემომავალი მოთხოვნის URL- ით.

$ valueFileFolder = 'ღირებულებები' (საქაღალდის სახელი, რომელიც შეიცავს გაზომვის ფაილებს) $ messageFileName = 'message.msg' (შეტყობინების ტექსტური ფაილის სახელი) $ readingsFilesNames = 'კითხულობს {id}.avg' (საშუალო CSV- ის სახელი წაკითხვის ფაილი) $ flagFilesNames = 'flag {id}.flg' (ლოგიკური დროშის მნიშვნელობის დროშის ფაილის სახელი)

დარწმუნდით, რომ ყველა ღირებულების ფაილი იწერება systemchmod 777 მნიშვნელობებით/*

ნაბიჯი 5: საჭირო მასალები

საჭირო მასალები
საჭირო მასალები
საჭირო მასალები
საჭირო მასალები
საჭირო მასალები
საჭირო მასალები

1 ინჩიანი ხვრელი (საბურღისთვის)

5V 2 არხიანი სარელეო მოდული

დუპლექსის მიმღები კედლის ფირფიტა

დუპლექსის მიმღები

პი ნულოვანი ვ

Surface Mount Backbox Dual Gang

თეთრი განათებული ღილაკები

ნაბიჯი 6: შექმენით განყოფილება

მშენებლობა განყოფილება
მშენებლობა განყოფილება

შესვენება Outlet ჩანართები

გატეხეთ ჩანართი გასასვლელის მხარეს, რომ თითოეული ბუდე დამოუკიდებლად ჩართოთ/გამორთოთ

ნაბიჯი 7: დააინსტალირეთ ღილაკები

დააინსტალირეთ ღილაკები
დააინსტალირეთ ღილაკები
დააინსტალირეთ ღილაკები
დააინსტალირეთ ღილაკები

Outlet faceplate- ის გამოყენებით 1 ხვრელი ხერხი მოჭრილი 2 ხვრელი ღილაკები უნდა განთავსდეს გვერდით

კომპონენტების ზომის ტესტირება

დარწმუნდით, რომ ყველა კომპონენტი მოთავსდება გასასვლელი ზედაპირის სამონტაჟო ყუთში

ნაბიჯი 8: მავთულის სარელეო

მავთულის სარელეო
მავთულის სარელეო
მავთულის სარელეო
მავთულის სარელეო

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

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

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

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

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

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

ნაბიჯი 11: გამოცადეთ მშრალი გაშვება

გამოცადეთ მშრალი გაშვება
გამოცადეთ მშრალი გაშვება
გამოცადეთ მშრალი გაშვება
გამოცადეთ მშრალი გაშვება
გამოცადეთ მშრალი გაშვება
გამოცადეთ მშრალი გაშვება

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

ნაბიჯი 12: დააყენეთ გაშვების სკრიპტები

crontab -e

დაამატეთ შემდეგი სტრიქონები

@reboot python /home/pi/PowerHub/device/outlet/buttons.py @reboot python /home/pi/PowerHub/device/outlet/relay.py

გირჩევთ: