Სარჩევი:
- ნაბიჯი 1: საწყისი დაყენება
- ნაბიჯი 2: დააინსტალირეთ Ngrok
- ნაბიჯი 3: პითონის სკრიპტი სინათლის გადამრთველის კონტროლისთვის
- ნაბიჯი 4: პითონის სკრიპტი გულშემატკივართა კონტროლისთვის
- ნაბიჯი 5: LIRC პაკეტის ინსტალაცია და კონფიგურაცია
- ნაბიჯი 6: პითონის სკრიპტი ტელევიზიის კონტროლისთვის
- ნაბიჯი 7: შედით AWS ანგარიშზე
- ნაბიჯი 8: TV Alexa Skill Setup
- ნაბიჯი 9: Lights Alexa Skill Setup
- ნაბიჯი 10: გულშემატკივართა Alexa უნარების დაყენება
- ნაბიჯი 11: ააშენეთ კირუტი
- ნაბიჯი 12: Alexa ბრძანებები
ვიდეო: გააკონტროლეთ მისაღები ოთახი Alexa და Raspberry Pi– ით: 12 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:15
აკონტროლეთ თქვენი საცხოვრებელი ოთახის ტელევიზია, განათება და გულშემატკივარი Alexa (Amazon Echo ან Dot) და Raspberry Pi GPIO– ით.
ნაბიჯი 1: საწყისი დაყენება
მე გამოვიყენე Raspberry Pi 2 და Raspbian Jessie სურათი გადმოწერილი
შესვლისთანავე შეიყვანეთ შემდეგი ბრძანებები საჭირო პაკეტებისა და პითონის ბიბლიოთეკების დასაყენებლად:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip install install Flask flask-ask sudo apt-get install lirc
ნაბიჯი 2: დააინსტალირეთ Ngrok
ეწვიეთ https://ngrok.com/download და მიიღეთ უახლესი Linux ARM გამოშვება როგორც zip და გახსენით სახლის დირექტორიაში:
unzip /home/pi/ngrok-stable-linux-arm.zip
გახსენით ახალი ტერმინალი და შეიყვანეთ შემდეგი ბრძანება:
sudo./ngrok http 4000
გახსენით კიდევ ერთი ახალი ტერმინალი და შეიყვანეთ შემდეგი ბრძანება:
sudo./ngrok http 4500
გახსენით მესამე ახალი ტერმინალი და შეიყვანეთ შემდეგი ბრძანება:
sudo./ngrok http 5000
ნაბიჯი 3: პითონის სკრიპტი სინათლის გადამრთველის კონტროლისთვის
გახსენით ახალი ტერმინალის სესია და შექმენით პითონის ახალი ფაილი სახელად light_control.py:
nano light_control.py
დააკოპირეთ/ჩასვით შემდეგი კოდი ახალ ფაილში:
ბოთლის იმპორტიდან flask_ask იმპორტი ითხოვეთ, განაცხადი, convert_errors იმპორტი RPi. GPIO როგორც GPIO იმპორტი ჟურნალი იმპორტი GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (status): try: pinNum = 27 გამონაკლისის გარდა e: დაბრუნების განაცხადის ('პინის ნომერი არასწორია.') GPIO.setup (pinNum, GPIO. OUT) თუ სტატუსი ['on', 'high']: GPIO.output (pinNum, GPIO. LOW) თუ სტატუსი ['off', ' დაბალი ']: GPIO.output (pinNum, GPIO. HIGH) დაბრუნების განაცხადი ("ჩართეთ {} მისაღები ოთახის შუქები". ფორმატი (სტატუსი)) თუ _name_ ==' _main_ ': port = 4000 app.run (host =' 0.0.0.0 ', პორტი = პორტი)
შეინახეთ და დახურეთ ფაილი.
დაიწყეთ კოლბის სერვერი შემდეგით:
sudo python light_control.py
დატოვე გათბობა და light_control.py გაშვებული
ნაბიჯი 4: პითონის სკრიპტი გულშემატკივართა კონტროლისთვის
გახსენით ახალი ტერმინალის სესია და შექმენით პითონის ახალი ფაილი სახელად fan_control.py:
nano fan_control.py
დააკოპირეთ/ჩასვით შემდეგი კოდი ახალ ფაილში:
კოლბის იმპორტიდან ბოთლი
flask_ask იმპორტი ითხოვეთ, განაცხადი, convert_errors შემოიტანეთ RPi. GPIO როგორც GPIO იმპორტი ჟურნალი იმპორტი GPIO.setmode (GPIO. BCM) აპლიკაცია = ბოთლი (_ სახელი_) ვთხოვთ = ითხოვენ (აპლიკაცია, '/') logging.getLogger ("flask_ask").setLevel (logging. DEBUG) @ask.intent ('FanControlIntent', mapping = {'status': 'status'}) def fan_control (status): try: pinNum = 22 გამონაკლისის გარდა e: დაბრუნების განაცხადი ('pin ნომერი არასწორია.: GPIO.output (pinNum, GPIO. HIGH) დაბრუნების განაცხადი ('ჩართეთ {} მისაღები ოთახის შუქები'. ფორმატი (სტატუსი)) თუ _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', პორტი = პორტი)
შეინახეთ და დახურეთ ფაილი.
დაიწყეთ კოლბის სერვერი შემდეგით:
sudo python fan_control.py
ორივე გაუშვით გათბობა, light_control.py და fan_control.py
ნაბიჯი 5: LIRC პაკეტის ინსტალაცია და კონფიგურაცია
ტელევიზორის გასაკონტროლებლად თქვენ უნდა დააკონფიგურიროთ Raspberry Pi- ს პინი, რომ შექმნას ინფრაწითელი (IR) სიგნალები თქვენი კონკრეტული ტელევიზიისათვის. გახსენით ტერმინალი და შეიყვანეთ შემდეგი ბრძანება LIRC პაკეტის დასაყენებლად, რომელიც ემსგავსება მრავალი დისტანციური მართვის ინფრაწითელ სიგნალებს.
sudo apt-get დააინსტალირეთ lirc
შემდეგი, თქვენ უნდა ჩართოთ და დააკონფიგურიროთ lirc_rpi ბირთვის მოდული. ამისათვის გახსენით მოდულები ნანო რედაქტორში
sudo nano /etc /modules
დაამატეთ ქვემოთ მოცემული ხაზები ფაილს (დარწმუნდით, რომ gpio_out_pin პარამეტრი მიუთითებს პინზე, რომელიც აკონტროლებს IR LED- ს):
lirc_devlirc_rpi gpio_out_pin = 17
შემდეგი, გახსენით hardware.conf ფაილი ნანოში, როგორც ადრე sudo– ით:
sudo nano /etc/lirc/hardware.conf
დაამატეთ ფაილს შემდეგი კონფიგურაცია:
LIRCD_ARGS = "-uinput" LOAD_MODULES = ჭეშმარიტი
DRIVER = "ნაგულისხმევი"
მოწყობილობა = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
ახლა გადატვირთეთ Raspberry Pi:
sudo გადატვირთვა
ნაბიჯი 6: პითონის სკრიპტი ტელევიზიის კონტროლისთვის
გახსენით ახალი ტერმინალის სესია და შექმენით პითონის ახალი ფაილი სახელად ir_control.py:
nano ir_control.py
გადადით
იპოვეთ დისტანციური მართვა, რომელიც თავსებადია თქვენს ტელევიზორთან. ჩემს შემთხვევაში მაქვს Sanyo TV, რომელიც მუშაობს sanyo-tv01 კონფიგურაციის ფაილთან. მას შემდეგ რაც იპოვით ფაილს, რომელიც მხარს უჭერს თქვენს ტელევიზორს გახსენით იგი და გადახედეთ ბრძანების ვარიანტებს.
დააკოპირეთ/ჩასვით შემდეგი კოდი ახალ ფაილში და შეცვალეთ sanyo-tv01 ფაილის სახელით, რომელიც მუშაობს თქვენს ტელევიზორთან. ასევე დარწმუნდით, რომ სატელევიზიო ბრძანებებს აქვს თქვენი ტელევიზორების კონფიგურაციის ფაილი; შეიძლება დაგჭირდეთ KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN და KEY_MUTE ბრძანებების შეცვლა თქვენი ტელევიზიის კონფიგურაციის ფაილთან სწორად მუშაობისთვის:
flask იმპორტიდან flask_ask იმპორტი ითხოვეთ, განაცხადი, convert_errors შემოიტანეთ RPi. GPIO როგორც GPIO იმპორტი ჟურნალი იმპორტი GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app, '/') logging.getLogger (" flask_ask "). setLevel (loging. DEBUG) @ask.intent ('GPIOControlIntent', mapping = {'status': 'status'}) #'pin': 'pin'}) def tv_function (status): if status in ['ჩართე']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") დაბრუნების განცხადება ("ტელევიზორის ჩართვა") elif სტატუსი ['გამორთვა']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") დაბრუნების განცხადება (" ტელევიზორის გამორთვა ") elif სტატუსი ['შეყვანის შეცვლა']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") return განცხადება ('ტელევიზორში შეყვანის შეცვლა') elif სტატუსი ['მოცულობის გაზრდა']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") დაბრუნების განაცხადი (" ხმის გაზრდა ტელევიზორში ") elif სტატუსი ['მოცულობის შემცირებაში]: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMED os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWNOYEDOYOYONDOYNYSTOWNOYSTOWNOYSTOWNOYSTOWNYSTOWNYSTOWNY (SONY) ") დაბრუნების განცხადება (" ტელევიზორის მოცულობის შემცირება ") elif სტატუსი ['მუნჯი']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") დაბრუნების განაცხადი (" ტელევიზორის დადუმება ") elif სტატუსი ['მუნჯი ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") დაბრუნების განცხადება ("ტელევიზორის დადუმება") სხვა: დაბრუნების განცხადება ("დისტანციური ფუნქცია ვერ მოიძებნა.") თუ _name_ ==' _main_ ': პორტი = 5000 აპი. გაშვება (მასპინძელი = '0.0.0.0', პორტი = პორტი)
შეინახეთ და დახურეთ ფაილი.
დაიწყეთ კოლბის სერვერი შემდეგით:
sudo python ir_control.py
დატოვეთ გათბობის სამივე ფანჯარა, light_control.py, fan_control.py და ir_control.py გაშვებული
ნაბიჯი 7: შედით AWS ანგარიშზე
ჯერ შექმენით ან შედით თქვენს AWS დეველოპერის ანგარიშზე და გახსენით თქვენი Alexa უნარების სია.
ნაბიჯი 8: TV Alexa Skill Setup
აირჩიეთ "დაამატეთ ახალი უნარი".
დააყენეთ უნარის სახელი 'Trigger TV' და გამოძახების სახელი იმ სიტყვებზე, რომელთა გამოყენება გსურთ უნარის გასააქტიურებლად.
გასაგრძელებლად დააწკაპუნეთ 'შემდეგი'.
დააკოპირეთ/ჩასვით შემდეგი 'განზრახ სქემის' ყუთში:
"სლოტები": [{"სახელი": "სტატუსი", "ტიპი": "TV_Function"}, {"name": "თანხა", "ტიპი": "AMAZON. NUMBER"}], "განზრახვა": "GPIOControlIntent "}]}
შემდეგ დააჭირეთ ღილაკს "დაამატეთ სლოტის ტიპი"
შეიყვანეთ TV_Function ველში "შეიყვანეთ ტიპი".
შეიყვანეთ შემდეგი მნიშვნელობები "შეიყვანეთ ღირებულებები" ველში:
ჩართვა
გამორთვა შეყვანის შეცვლა მოცულობის შემცირება მოცულობა მუნჯი დადუმება
შემდეგი, დააკოპირეთ/ჩასვით შემდეგი "Sample Utterrances" ყუთში:
GPIOControlIntent {სტატუსი}
GPIOControlIntent {სტატუსი} {თანხის ოდენობით
გასაგრძელებლად დააწკაპუნეთ 'შემდეგი'.
აირჩიეთ "HTTPS", როგორც სერვისის საბოლოო წერტილის ტიპი და აირჩიეთ რეგიონი. შეიყვანეთ გათბობის URL ნაბიჯი 2 -დან და დააწკაპუნეთ "შემდეგი". URL უნდა იყოს მსგავსი:
ed6ea04d.ngrok.io
დააჭირეთ ღილაკს "შემდეგი" გასაგრძელებლად და დააჭირეთ ღილაკს "შენახვა".
ნაბიჯი 9: Lights Alexa Skill Setup
დახურეთ გახსნილი უნარი და აირჩიეთ "დაამატე ახალი უნარი".
დააყენეთ უნარის სახელი "Lights Control" და "Invocation Name" იმ სიტყვებზე, რომელთა გამოყენება გსურთ უნარის გასააქტიურებლად.
გასაგრძელებლად დააწკაპუნეთ 'შემდეგი'. დააკოპირეთ/ჩასვით შემდეგი 'განზრახ სქემის' ყუთში:
{
"განზრახვები": [{"slots": [{"name": "სტატუსი", "ტიპი": "LIGHTS_CONTROL"}], "განზრახვა": "LightsControlIntent"}]}
შემდეგი, დააჭირეთ ღილაკს "დაამატეთ სლოტის ტიპი".
შეიყვანეთ "LIGHTS_CONTROL" ველში "შეიყვანეთ ტიპი".
შეიყვანეთ შემდეგი მნიშვნელობები "შეიყვანეთ ღირებულებები" ველში:
ჩართული
გამორთული
შემდეგი, დააკოპირეთ/ჩასვით შემდეგი "Sample Utterrances" ყუთში:
LightsControlIntent turn {status}
გასაგრძელებლად დააწკაპუნეთ 'შემდეგი'. აირჩიეთ "HTTPS", როგორც სერვისის საბოლოო წერტილის ტიპი და აირჩიეთ რეგიონი. შეიყვანეთ გათბობის URL ნაბიჯი 2 -დან და დააწკაპუნეთ "შემდეგი". URL უნდა იყოს მსგავსი:
ed6ea04d.ngrok.io
დააჭირეთ ღილაკს "შემდეგი" გასაგრძელებლად და დააჭირეთ ღილაკს "შენახვა".
ნაბიჯი 10: გულშემატკივართა Alexa უნარების დაყენება
დახურეთ გახსნილი უნარი და აირჩიეთ "დაამატეთ ახალი უნარი".
დააყენეთ უნარის სახელი "გულშემატკივართა კონტროლი" და "ინვოკაციის სახელი" იმ სიტყვებზე, რომელთა გამოყენება გსურთ უნარის გასააქტიურებლად.
გასაგრძელებლად დააწკაპუნეთ 'შემდეგი'.
დააკოპირეთ/ჩასვით შემდეგი "განზრახ სქემის" ყუთში:
{
"განზრახვები": [{"slots": [{"name": "სტატუსი", "ტიპი": "FAN_CONTROL"}], "განზრახვა": "FANControlIntent"}]}
შემდეგი, დააჭირეთ ღილაკს "დაამატეთ სლოტის ტიპი".
შეიყვანეთ "FAN_CONTROL" ველში "შეიყვანეთ ტიპი".
შეიყვანეთ შემდეგი მნიშვნელობები "შეიყვანეთ ღირებულებები" ველში:
ჩართული
გამორთული
შემდეგი, დააკოპირეთ/ჩასვით შემდეგი "Sample Utterrances" ყუთში:
FANControlIntent turn {status}
გასაგრძელებლად დააწკაპუნეთ 'შემდეგი'. აირჩიეთ "HTTPS", როგორც სერვისის საბოლოო წერტილის ტიპი და აირჩიეთ რეგიონი. შეიყვანეთ გათბობის URL მე –2 საფეხურიდან და დააწკაპუნეთ „შემდეგი“. URL უნდა იყოს მსგავსი:
ed6ea04d.ngrok.io
დააჭირეთ ღილაკს "შემდეგი" გასაგრძელებლად და დააჭირეთ ღილაკს "შენახვა".
ნაბიჯი 11: ააშენეთ კირუტი
შეაერთეთ სქემა, როგორც ნაჩვენებია დიაგრამაში. მე გამოვიყენე JBtek 8 არხი DC 5V სარელეო მოდული ჩემს სახლებში AC 120v ხაზთან და მიწასთან დასაკავშირებლად.
ნაბიჯი 12: Alexa ბრძანებები
ახლა Alexa– სთან შეიძლება გაეცნოთ შემდეგ ბრძანებებს თქვენი საცხოვრებელი ოთახის გასაკონტროლებლად.
გირჩევთ:
გააკონტროლეთ Grbl CNC Wi -Fi– ზე: 5 ნაბიჯი
აკონტროლეთ Grbl CNC მეტი Wifi: ამ გაკვეთილში მე გაგიმხელთ, თუ როგორ უნდა ჩართოთ GRBL კონტროლი WIFI– ზე. თქვენ შეგიძლიათ გამოიყენოთ ეს მეთოდი ნებისმიერ გამგზავნთან ერთად lasergrbl და Universal Gcode Sender (UGS). მოკლედ, ჩვენ ვიყენებთ arkypita– ს მუშაობას და სხვა პროგრამულ უზრუნველყოფას vi
გააკონტროლეთ თქვენი ავტომატური მოცურების კარი სახლის ასისტენტით და ESP მთავარი: 5 ნაბიჯი (სურათებით)
გააკონტროლეთ თქვენი ავტომატური მოცურების კარი სახლის ასისტენტით და ESPHome– ით: შემდეგი სტატია არის გარკვეული გამოხმაურება ჩემი პირადი გამოცდილების შესახებ, რომელიც აკონტროლებს ავტომატური მოცურების კარიბჭეს, რომელიც მე მქონდა დამონტაჟებული ჩემს სახლში. ეს კარიბჭე, ბრენდირებული "V2 Alfariss", აღჭურვილი იყო რამდენიმე Phox V2 დისტანციური მართვის საშუალებით. Მე ასევე მაქვს
მისაღები ოთახი ფილმისთვის შელი: 4 ნაბიჯი
მისაღები კინო შელისთან ერთად: პროექტის აღწერილობა როგორ შევქმნათ ძალიან მარტივი ავტომატიზაცია google სახლის რუტინების გამოყენებით, რათა ჩემი ოთახის მისაღები იყოს კომფორტული ფილმის ყურებისთვის
გააკონტროლეთ თქვენი ბუხარი HomeKit და Alexa– ით: 7 ნაბიჯი
აკონტროლეთ თქვენი ბუხარი HomeKit და Alexa– სთან ერთად: მე ცოტა ხნის წინ მქონდა დამონტაჟებული გაზის ბუხარი, რომელიც მოიცავდა დისტანციურ კონტროლს. მას შემდეგ, რაც დავინახე რამდენიმე მაგალითი იმისა, თუ როგორ აერთიანებს ხალხი ბუხრებს სახლის კონტროლის მოწყობილობებში, დავიწყე იმავეს ძებნა. ჩემს ბუხარს აქვს ეს დისტანციური მართვა
წვრილმანი Socket ტესტერი, მისაღები ოთახი უნდა: 12 ნაბიჯი
წვრილმანი სოკეტის შემმოწმებელი, მისაღები ოთახი უნდა: მხოლოდ სახლის გაფორმების შემდეგ, იქნებ ინერვიულოთ, სოკეტის მუშაკი არ დამაკავშირებს არასწორ ხაზს ჩემს დასატენად, ან გაჟონვა არ არის დაცული. არ ინერვიულოთ, ახლა მოდით გავაკეთოთ სოკეტის შემმოწმებელი, რომელიც სპეციალურად ამოიცნობს წინდის მავთულის წესრიგს