Სარჩევი:

მთავარი გაფრთხილება: Arduino + ღრუბლოვანი შეტყობინებები დიდ ეკრანზე: 14 ნაბიჯი (სურათებით)
მთავარი გაფრთხილება: Arduino + ღრუბლოვანი შეტყობინებები დიდ ეკრანზე: 14 ნაბიჯი (სურათებით)

ვიდეო: მთავარი გაფრთხილება: Arduino + ღრუბლოვანი შეტყობინებები დიდ ეკრანზე: 14 ნაბიჯი (სურათებით)

ვიდეო: მთავარი გაფრთხილება: Arduino + ღრუბლოვანი შეტყობინებები დიდ ეკრანზე: 14 ნაბიჯი (სურათებით)
ვიდეო: ESP32 Turorial 1 - Introduction to SunFounder's ESP32 IoT Learnig kit Software and Arduino IDE 2024, ივლისი
Anonim
მთავარი გაფრთხილება: Arduino + ღრუბლოვანი შეტყობინებები დიდ ეკრანზე
მთავარი გაფრთხილება: Arduino + ღრუბლოვანი შეტყობინებები დიდ ეკრანზე
მთავარი გაფრთხილება: Arduino + ღრუბლოვანი შეტყობინებები დიდ ეკრანზე
მთავარი გაფრთხილება: Arduino + ღრუბლოვანი შეტყობინებები დიდ ეკრანზე
მთავარი გაფრთხილება: Arduino + ღრუბლოვანი შეტყობინებები დიდ ეკრანზე
მთავარი გაფრთხილება: Arduino + ღრუბლოვანი შეტყობინებები დიდ ეკრანზე

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

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

მე მაქვს ეს პრობლემა იმდენად ხშირად, რომ გამოსავალი უნდა იყოს. Arduino– ს და Freetronics Dot Matrix ეკრანზე (DMD) ცოტაოდენი ჩხუბის შედეგი გახდა ძალიან შემაშფოთებელი (ჩემი ცოლისთვის) გაჯეტი, მაგრამ საოცარი საკომუნიკაციო მოწყობილობა და საინფორმაციო ცენტრი ჩემთვის. მე მიყვარს და ეს მხოლოდ 1 ვერსიაა!

Home Alert შედგება ამ ნაწილებისგან:

  • Freetronics Dot Matrix ჩვენება, რომელიც არის 16x32 LED- ების მასივი. ისინი სხვადასხვა ფერში მოდის, მაგრამ მე წითელს ვიყენებ იმის ხაზგასასმელად, რომ ეს გაჯეტი არის "კრიტიკული" შეტყობინებებისათვის.
  • Arduino Uno Ethernet ფარით.
  • რეალურ დროში საათის გარღვევა, ესა თუ ის.
  • პიეზო ზუზუნი
  • ტემპერატურისა და ტენიანობის DHT22 სენსორი.

Home Alert კონტროლდება ვებ გვერდის საშუალებით, რომელიც განთავსებულია Heroku– ზე, ღრუბელზე დაფუძნებული პროგრამის მასპინძელი. ვებ გვერდი კოდირებულია Ruby– ში, Sinatra ვებ აპლიკაციის ჩარჩოს გამოყენებით და Redis გასაღები ღირებულების მაღაზია.

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

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

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

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

ამ სტატიაში მე გაჩვენებთ, თუ როგორ უნდა ავაშენოთ თქვენი საკუთარი Home Alert სისტემა, როგორც Arduino აპარატურა, ასევე პროგრამული უზრუნველყოფა, ასევე Sinatra მინი ვებ პროგრამა.

Დავიწყოთ!

ნაბიჯი 1: აპარატურა

აპარატურა
აპარატურა
აპარატურა
აპარატურა
აპარატურა
აპარატურა

DMD არის გაჯეტის მთავარი წერტილი. შემეძლო პატარა LCD ეკრანით წავსულიყავი, მაგრამ ამ პროექტის მთავარი იდეა იყო ისეთი რამის წარმოება, რაც შორიდან ჩანს და ისმის. ვიზუალური ნაწილისთვის, მე მჭირდებოდა რაღაც დიდი და ნათელი, და ეს Freetronics ჩვენება არის ზუსტად ის, რაც მჭირდებოდა. თითოეული პანელი შეიცავს 16x32 LED- ების მასივს და თქვენ შეგიძლიათ დააკავშიროთ რამდენიმე მათგანი ერთმანეთთან უფრო დიდი ეკრანის შესაქმნელად. ეს არის ის, რისი გაკეთებაც მსურს უახლოეს მომავალში.

DMD– ს გააჩნია მარტივი Arduino ბიბლიოთეკა. ის კომუნიკაციას უწევს არდუინოს მაღალსიჩქარიანი SPI საშუალებით. მე შევძელი ბიბლიოთეკის მოპოვება Freetronics Github– ის გვერდიდან, შემდეგ ავხსენი დემო ესკიზი და დავიწყე მუშაობა ყუთის გახსნიდან რამდენიმე წუთში. გამიკვირდა ასეთი ნათელი ეკრანის დანახვა მხოლოდ არდუინოს ენერგიის გამოყენებით. თუ გსურთ დროებით დაბრმავდეთ თქვენი მაყურებელი, შეგიძლიათ მიამაგროთ დენის წყარო ამ DMD– ს. თუ ეს მათ ყურადღებას არ მიიქცევს, არაფერი იქნება!

ფიზიკურად, ამ ეკრანის ზომებია 320 მმ (W), 160 მმ (H) და 14 მმ (D).

უკანა პანელი შეიცავს კონექტორებს გარე სიმძლავრისთვის, 5V მინიმუმ 4 Amps ტევადობით, Arduino კონექტორით აღინიშნება HUB1 და კონექტორი daisy-chaining დამატებითი დისპლეებისთვის მოპირდაპირე მხარეს. დოკუმენტაციის თანახმად, თქვენ შეგიძლიათ დააწყოთ ჯაჭვი ოთხამდე DMD– ით.

DMD კონტროლდება Arduino Uno– ს მიერ. Freetronics გთავაზობთ ძალიან მოსახერხებელ "DMDCON" კონექტორს, რომელიც უბრალოდ მიემართება პირდაპირ SPI და მონაცემთა ქინძისთავებზე.

DMD– ის გარდა, მე გამოვიყენე Arduino Uno, Ethernet Shield, რეალურ დროში საათის გარღვევა, ზუზუნი და DHT22. ყველა ამ კომპონენტისთვის, მე შევქმენი ლექციები, რომლებიც აღწერენ მათ მუშაობას ჩემს უდემის კურსში. (უსირცხვილო თვითრეკლამა: დარეგისტრირდით ჩემს ელ.ფოსტის სიაზე arduinosbs.com და მიიღეთ კუპონი, რომელიც მოგცემთ ფასდაკლებულ წვდომას ყველა 55 ლექციაზე).

რეალურ დროში საათი, DS18072 საათის IC- ზე დაფუძნებული გარღვევა, არის I2C მოწყობილობა, ამიტომ იგი დაკავშირებულია Uno– ს ანალოგიურ ქინძისთავებთან 1 და 2, რომლებიც ახორციელებენ I2C ავტობუსს.

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

DHT22 სენსორი დაკავშირებულია ციფრულ პინთან 2. ფრთხილად იყავით, რომ დაუკავშიროთ 10KΩ გამყვანი რეზისტორი 5V ხაზსა და მონაცემთა ხაზს შორის.

ნაბიჯი 2: არდუინოს ესკიზი

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

აქ არის ესკიზი, ჩაშენებული კომენტარებით (იხ. PDF დანართი).

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

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

ნაბიჯი 3: სინატრა დგას სცენაზე

სინატრა დგას სცენაზე!
სინატრა დგას სცენაზე!

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

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

რა არის სინატრა და რატომ არის ასეთი კარგი არჩევანი? მიხარია რომ გკითხე!

სინატრა არის ვებ - პროგრამების სწრაფი განვითარების ენა. იგი აგებულია Ruby– ზე, ძალიან პოპულარული და გამომხატველი ზოგადი დანიშნულების სკრიფტინგის ენაზე. თქვენ მოისმენთ სინატრას მოიხსენიებენ როგორც "DSL", დომენის სპეციფიკურ ენას. დომენი აქ არის ვებ. საკვანძო სიტყვები (სიტყვები) და სინტაქსისთვის შექმნილი სინტაქსი ისეთია, რომ ხალხს უადვილებს და სწრაფად უქმნის ვებ პროგრამებს.

იმ დროს, როდესაც ვებ – პროგრამების განვითარების ეგრეთწოდებული „მოსაზრებული“ჩარჩოები, როგორიცაა Ruby on Rails და Django, ძალიან პოპულარულია, სინატრა იპყრობს სპექტრის მოპირდაპირე მხარეს. მიუხედავად იმისა, რომ Ruby on Rails და Django პროგრამისტს სჭირდებათ დაიცვან კონკრეტული კონვენცია და საქმეების კეთების გზა (რაც, თავის მხრივ, გულისხმობს ციცაბო და ხანგრძლივ სწავლას), სინატრა ასეთ მოთხოვნებს არ აყენებს.

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

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

ერთ ფაილში, დავარქვათ my_app.rb, დავამატოთ ეს ტექსტი:

მოითხოვეთ "sinatra'get"/"do" Hello, world! "დასასრული

ბრძანების ხაზზე, დაიწყეთ აპლიკაცია ასე:

რუბი my_app.rb

თქვენი აპლიკაცია დაიწყება და თქვენ ნახავთ ამ ტექსტს კონსოლში:

peter@ubuntu-dev:/arduino/sinatra_demo $ ruby my_app.rbPuma 2.8.1 დაწყებული…* მინიმალური თემა: 0, მაქსიმალური თემა: 16* გარემო: განვითარება* მოსმენა tcp: // localhost: 4567 == სინატრა/1.4.4 გადავიდა სცენაზე 4567 წელს Puma– ს სარეზერვო ასორტიმენტისთვის

ახლა აპლიკაცია მზად არის მიიღოს კლიენტის მოთხოვნები. გახსენით ბრაუზერი, მიუთითეთ ის https:// localhost: 4567 და ეს არის ის, რასაც ნახავთ (იხ. თანდართული ეკრანის სურათი).

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

ასე რომ, სინატრა არის მარტივი და სწრაფი გასაშვებად. ვივარაუდებ, რომ თქვენ არაფერი იცით Ruby- ს, Sinatra- სა და პროგრამის Cloud– ზე განლაგების შესახებ, ამიტომ მომდევნო ნაწილში მე გადაგიყვანთ ეტაპობრივად ნულიდან თქვენი Arduino ვებ სერვისის Cloud– ზე განლაგებამდე.

ნაბიჯი 4: დააინსტალირეთ თქვენი განვითარების მანქანა

სინატრა დაფუძნებულია Ruby პროგრამირების ენაზე. ასე რომ, თქვენ უნდა დააინსტალიროთ Ruby სანამ დააინსტალირებთ Sinatra.

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

ნაბიჯი 5: რუბი Mac ან Linux– ზე

თუ თქვენ იყენებთ Mac ან Linux კომპიუტერს, გირჩევთ გამოიყენოთ RVM თქვენი Ruby ინსტალაციის ინსტალაციისა და მართვისთვის (RVM: Ruby Version Manager). ამ გვერდზე არის Ruby– ს RVM– ით დაყენების ინსტრუქცია, ან უბრალოდ დააკოპირეთ და ჩასვით ეს ბრძანება თქვენს გარსში:

curl -sSL https://get.rvm.io | bash -s სტაბილური -რუბი

დაჯექით, დაბრუნდით, დაისვენეთ და დაელოდეთ RVM- ისა და Ruby- ს ჩამოტვირთვის, შედგენისა და ინსტალაციის დასრულებას.

ნაბიჯი 6: რუბი Windows- ზე

თუ Windows- ზე ხართ, გირჩევთ მიჰყევით ამ სახელმძღვანელოს Ruby Installer for Windows ვებსაიტზე და გამოიყენოთ დაყენების პროგრამა.

ნაბიჯი 7: შეამოწმეთ და დააყენეთ თქვენი Ruby

წერის დროს, უახლესი სტაბილური Ruby გამოშვებაა 2.1.1.p76. თქვენ შეგიძლიათ შეამოწმოთ RVM– ით დაინსტალირებული ვერსია ამის აკრეფით:

rvm ინფორმაცია

გამოჩნდება ბევრი ინფორმაცია RVM და Ruby– ს შესახებ. ჩემს შემთხვევაში, ეს არის Ruby განყოფილება:

ruby: თარჯიმანი: "ruby" ვერსია: "2.1.1p76" თარიღი: "2014-02-24" პლატფორმა: "x86_64-linux" patchlevel: "2014-02-24 revision 45161" full_version: "ruby 2.1.1p76 (2014 -02-24 გადასინჯვა 45161) [x86_64-linux]"

მე გირჩევთ, რომ თქვენ ასევე გამოიყენოთ Ruby 2.1.1, ასე რომ, თუ თქვენ ხედავთ რაიმე უფრო ძველს, განაახლეთ ასე:

rvm დააინსტალირეთ 2.1.1

ეს დააინსტალირებს Ruby 2.1.1. RVM პროექტის საიტი შეიცავს უამრავ ინფორმაციას RVM და როგორ მართოთ თქვენი Ruby ინსტალაცია.

ნაბიჯი 8: დააინსტალირეთ Sinatra (ყველა პლატფორმა)

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

gem დააინსტალირეთ sinatra

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

ნაბიჯი 9: გაიმეორეთ Mac ან Linux– ზე

Redis– ის დაყენება Mac– ზე ან Linux– ზე ადვილია. პროცესი განმარტებულია Redis ვებსაიტზე. გახსენით shell ტერმინალი და ჩაწერეთ ეს ბრძანებები:

$ wget https://download.redis.io/releases/redis-2.8.7.tar… $ tar xzf redis-2.8.7.tar.gz $ cd redis-2.8.7 $ ჩადება

გაუშვით Redis აკრეფით:

$ src/redis- სერვერი

… და თქვენ დაასრულეთ!

ნაბიჯი 10: გაიმეორეთ Windows- ზე

Windows– ზე Redis რეკომენდირებულია მხოლოდ განვითარებისთვის და თქვენ დაგჭირდებათ მისი შედგენა უფასო Visual Studio Express განვითარების გარემოს გამოყენებით. მის გაშვებას ცოტა დრო სჭირდება, მაგრამ ის კარგად მუშაობს და ღირს ძალისხმევა. მიჰყევით ინსტრუქციას პროექტის Github გვერდზე. იქ ასევე ნახავთ ბმულს Visual Studio Express გვერდზე.

ნაბიჯი 11: შექმენით ვებ სერვისის პროგრამა

შექმენით ვებ სერვისის პროგრამა
შექმენით ვებ სერვისის პროგრამა

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

აქ არის Ruby კოდი, ყველა ერთ ფაილში სახელწოდებით "web.rb" (ეს კოდი ხელმისაწვდომია Github– ზე).

მნიშვნელოვანია: ჩამოტვირთეთ და წაიკითხეთ თანდართული PDF ფაილი, ის შეიცავს დეტალურ ჩამონტაჟებულ კომენტარებს (გთხოვთ ეს გააკეთოთ სანამ გააგრძელებთ!).

ახლა თქვენ შეგიძლიათ სცადოთ თქვენი სახლის სიგნალიზაციის სისტემა. თქვენს ესკიზში შეცვალეთ WEBSITE და WEBPAGE მუდმივები, რომ მიუთითოთ თქვენი განვითარების მანქანა და პორტის ნომერი თქვენი განვითარების Sinatra სერვერისთვის. ჩემს შემთხვევაში, მე მაქვს განვითარების მანქანა IP 172.16.115.136 და განვითარების Sinatra სერვერი უსმენს პორტს 5000, ამიტომ ჩემი ესკიზის პარამეტრები არის:

#განსაზღვრეთ HW_ID "123"#განსაზღვრეთ ვებ გვერდი "172.16.115.136:5000"#განსაზღვრეთ WEBPAGE "/get_message/"

ეს IP მისამართი ხელმისაწვდომია მხოლოდ ჩემი სახლის ქსელის მოწყობილობებისთვის.

HW_ID პარამეტრი წარმოადგენს „აპარატურის ID“- ს, ანუ პირადობის მოწმობას, რომელზედაც Arduino, რომელიც აკონტროლებს DMD– ს, იდენტიფიცირდება სინატრას აპლიკაციაში. ეს არის ძალიან ძირითადი სახის ავთენტიფიკაცია. ვებ აპლიკაცია გადასცემს შეტყობინებას Arduino– ს, რომელიც ითხოვს მას მოწოდებული HW_ID საფუძველზე. თქვენ შეგიძლიათ გქონდეთ მრავალი მოწყობილობა ერთიდაიგივე HW_ID, ამ შემთხვევაში ყველა მოწყობილობა აჩვენებს ერთსა და იმავე შეტყობინებას. თუ გსურთ "კონფიდენციალურობა", შეარჩიეთ პირადობის მოწმობა უამრავი შემთხვევითი სიმბოლოებით, რომელთა გამოცნობა სხვა ადამიანებს არ შეეძლებათ. ასევე ფრთხილად იყავით, არანაირი კომუნიკაცია არ არის დაშიფრული.

ახლა გააგრძელეთ და გაუშვით თქვენი Sinatra აპლიკაცია, ჩაწერეთ ეს (ვთქვათ, რომ თქვენ ხართ Sinatra პროექტის საქაღალდეში):

რუბი ვებ. rb

… და ნახავთ მსგავს რამეს (ზოგიერთი დეტალი შეიძლება განსხვავდებოდეს, სანამ ეს არ დაიშლება, თქვენ კარგად ხართ):

10:42:18 ვებ.1 | დაიწყო pid 4911910: 42: 18 ვებ.1 | Puma 2.8.1 დაწყებული… 10: 42: 18 ვებ.1 | * მინიმალური თემა: 0, მაქსიმალური თემა: 1610: 42: 18 ვებ.1 | * გარემო: განვითარება 10: 42: 18 ვებ.1 | * მოსმენა tcp: //0.0.0.0: 5000

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

ატვირთეთ თქვენი ესკიზი Arduino– ში, დარწმუნდით, რომ ის დაკავშირებულია თქვენს ადგილობრივ ქსელთან. თუ ყველაფერი კარგად იქნება, Arduino ყოველ წუთში გამოკითხავს თქვენს ვებ სერვისს. მიეცით შეტყობინება საჩვენებლად: HW კოდის ველში ესკიზში ჩაწერეთ იგივე პირადობის მოწმობა, რომელიც მითითებული გაქვთ HW_ID მუდმივობისთვის. ჩაწერეთ რაიმე "თქვენი შეტყობინების" ველში და შეამოწმეთ "Buzz?" ჩამრთველი.

წარადგინეთ, დაელოდეთ ერთ წუთს და ნახეთ თქვენი შეტყობინება DMD– ში!

ნაბიჯი 12: განათავსეთ ღრუბელში ჰეროკუს გამოყენებით

ახლა, როდესაც Home Alert მუშაობს განვითარებაზე, მოდით დავიწყოთ მუშაობა Cloud– ზე. ვებ პროგრამების განლაგების უამრავი ვარიანტი არსებობს. Home Alert– ის მასშტაბისა და სირთულის გათვალისწინებით, მე გადავწყვიტე, რომ საკუთარი ვირტუალური კერძო სერვერის დაყენება არ ღირს ძალისხმევად. სამაგიეროდ, უკეთესია ისეთ სერვისზე წასვლა, როგორიც არის ჰეროკუ, პროგრამის მასპინძელი. ჩემი მასშტაბისთვის, ჰეროკუს უფასო იარუსი საკმარისზე მეტია. Redis კომპონენტისთვისაც კი, მე შემეძლო ავირჩიო უფასო გეგმა Redis– ის მრავალი პროვაიდერისგან, რომელიც მუშაობს ჰეროკუსთან.

მიუხედავად ამისა, ცოტა ძალისხმევაა ჩართული, რაც დაკავშირებულია ჩემი განაცხადის ოდნავ შეცვლასთან, რათა ის შეესაბამებოდეს ჰეროკუს სპეციფიკაციებს. დეტალები აქ არის, მაგრამ არსებითად თქვენ დაგჭირდებათ ამ ფაილების დამატება თქვენს Sinatra პროექტში (ყველა შემდგომი ფაილი შეიძლება გადმოწერილი იყოს ჩემი Github ანგარიშიდან):

* config.ru: ის ჰეროკუს ეუბნება რომელი ფაილი შეიცავს პროგრამას. აქ არის შინაარსი:

მოითხოვს './ ვებ -რუნ სინატრა:: აპლიკაცია

პირველი ხაზი მიუთითებს web.rb– ზე და მეორე ხაზი რეალურად გადის თქვენს აპლიკაციას.

* Gemfile: ის შეიცავს ძვირფას ქვებს (რუბი კოდის პაკეტებს), რომლებიც საჭიროა აპლიკაციის მიერ. Heroku შეხედავს ამ ფაილს იმის გასარკვევად, თუ რა სხვა კოდი სჭირდება მის დაინსტალირებას ისე, რომ თქვენი პროგრამა იმუშაოს. Gemfile– ის გადახედვის კიდევ ერთი გზა არის ის, რომ შეიცავს თქვენი პროექტის დამოკიდებულებების ჩამონათვალს. თუ რომელიმე ეს დამოკიდებულება არ არის ხელმისაწვდომი, თქვენი განაცხადი არ იმუშავებს. აქ მოცემულია რა არის Gemfile ამ აპლიკაციისთვის:

წყარო "https://rubygems.org" ruby "2.1.1" gem 'sinatra'gem' puma'gem 'redis'

პირველი, ის ადგენს ყველა Gem კოდის წყაროს საცავს, როგორც rubygems.org. შემდეგი, ის მოითხოვს Ruby ვერსია 2.1.1 გამოიყენება პროგრამის გასაშვებად. შემდეგ ის ჩამოთვლის საჭირო ძვირფასი ქვებს: Sinatra, Puma (დიდი Ruby ვებ პროგრამის სერვერი) და Redis.

* Procfile: ის ჰეროკუს ეუბნება, თუ როგორ უნდა დაიწყოს თქვენი სერვერი. აქ მხოლოდ ერთი ხაზია:

ვებგვერდი: rackup -s puma -p $ PORT

ამ ხაზში ნათქვამია, რომ "ვებ" არის ერთადერთი სახის სერვისი (თქვენ შეიძლება გქონდეთ სხვა, მაგალითად "მუშაკი", ფონის დამუშავებისთვის) და რომ სამსახურის დასაწყებად ჰეროკუმ უნდა გამოიყენოს ბრძანება, რომელიც მოდის ":" - ის შემდეგ.

თქვენ შეგიძლიათ სიმულაცია გაუწიოთ იმას, რასაც აპირებს ჰეროკუ ამ განვითარების თანმიმდევრობით თქვენს განვითარების მანქანაზე (ჩაწერეთ ტესტი მხოლოდ ისრის წინ; ისრის შემდგომი არის მხოლოდ ბრძანების აღწერა):

$> gem install bundler -> აყენებს Bundler- ს, რომელმაც იცის როგორ მართოს Gemfile. $> პაკეტის ინსტალაცია -> Bundler ამუშავებს Gemfile და აყენებს დამოკიდებულებებს. $> rackup config.ru -> Rackup არის ინსტრუმენტი, რომელსაც შეუძლია config.ru ფაილის დამუშავება. მას ჩვეულებრივ გააჩნია Ruby– ს გვიანდელი ვერსია, თუ ის არ დააინსტალირებს ასე: gem install rack.

ბოლო ნაბიჯი იწვევს თქვენი პროგრამის რეალურად გაშვებას. თქვენ უნდა ნახოთ ზუსტად იგივე გამომავალი, როგორც ადრე Ruby web.rb– ით დაწყებისას. ეს იგივე პროგრამაა, მხოლოდ იმ განსხვავებით, რომ მეორე მეთოდი არის ის, თუ როგორ იწყებს მას ჰეროკუ.

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

Heroku Toolbelt აყენებს Heroku ბრძანების ხაზის კლიენტს, Git (ღია კოდის მართვის სისტემა) და Foreman (Ruby ინსტრუმენტი, რომელიც ეხმარება Procfile– ზე დაფუძნებული პროგრამების მართვაში).

მას შემდეგ რაც დაასრულებთ Heroku Toolbelt– ის ინსტალაციას Heroku ვებ – გვერდზე მითითებების შესაბამისად, მიყევით ამ ნაბიჯებს თქვენი აპლიკაციის განსახორციელებლად (ყველაფერი აკრეფილია ბრძანების სტრიქონში, პროგრამის დირექტორიაში):

$> heroku შესვლა -> შესვლა Heroku ბრძანების ხაზის მეშვეობით $> git init -> Git საცავის ინიციალიზაცია თქვენი პროგრამისთვის $> git add. -> (შენიშნეთ წერტილი!) დაამატეთ მიმდინარე დირექტორიაში არსებული ყველა ფაილი Git საცავში $> git commit -m “init” -> ჩადეთ ეს ფაილები საცავში, ახალი შეტყობინებით $> heroku create -> შექმენით ახალი აპლიკაცია Heroku– ზე. Heroku თქვენს აპს შემთხვევით სახელს მისცემს, მსგავსია „ბრწყინვალე გალაქტიკა -997“. ჩაწერეთ სახელი და URL, რათა მოგვიანებით გქონდეთ წვდომა თქვენი ბრაუზერის საშუალებით.ეს URL ასე გამოიყურება: „https://blazing-galaxy-997.herokuapp.com/“. თქვენ ასევე დაგჭირდებათ თქვენი ახალი პროგრამის მასპინძლის სახელის (ნაწილის „blazing-galaxy-997.herokuapp.com“) კოპირება თქვენი არდუინოს ესკიზის ვებ – გვერდის მუდმივობაში. გააკეთე ეს ახლა ისე, რომ მოგვიანებით არ დაივიწყო. $> heroku addons: add rediscloud -> დასძენს Rediscloud Redis სერვისის უფასო დონეს თქვენს აპლიკაციაში. კონფიგურაციის პარამეტრები ავტომატურად იქმნება და ხელმისაწვდომი გახდება თქვენი პროგრამისთვის. $> git push heroku master -> განათავსეთ თქვენი კოდი Heroku– ში. ეს ავტომატურად გადასცემს კოდს, შექმნის ჰეროკუზე დამოკიდებულებას და დაიწყებს პროგრამას. პროცესის დასასრულს თქვენ ნახავთ მსგავს რამეს: „https://blazing-galaxy-997.herokuapp.com განლაგებულია ჰეროკუში“, რაც ნიშნავს რომ თქვენი აპლიკაცია ახლა საჯარო Cloud– ზეა! გილოცავთ!

წადი, დაატრიალე!

ნაბიჯი 13: შეაჯამეთ ეს ყველაფერი ერთად

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

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

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

ნაბიჯი 14: პოტენციალი

კიდევ ბევრი რამის გაკეთება შეგიძლიათ თქვენი სახლის სიგნალიზაციის სისტემით…

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

ისიამოვნეთ!

გირჩევთ: