Агуулгын хүснэгт:

Гэрийн анхааруулга: Том дэлгэц дээр Arduino + Cloud Messaging: 14 алхам (зурагтай)
Гэрийн анхааруулга: Том дэлгэц дээр Arduino + Cloud Messaging: 14 алхам (зурагтай)

Видео: Гэрийн анхааруулга: Том дэлгэц дээр Arduino + Cloud Messaging: 14 алхам (зурагтай)

Видео: Гэрийн анхааруулга: Том дэлгэц дээр Arduino + Cloud Messaging: 14 алхам (зурагтай)
Видео: iPhone Introducing❓ Steve Jobs in 2007❕ #part6 (Full Subtitle) 2024, Арваннэгдүгээр
Anonim
Гэрийн анхааруулга: Том дэлгэц дээр Arduino + Cloud Messaging
Гэрийн анхааруулга: Том дэлгэц дээр Arduino + Cloud Messaging
Гэрийн анхааруулга: Том дэлгэц дээр Arduino + Cloud Messaging
Гэрийн анхааруулга: Том дэлгэц дээр Arduino + Cloud Messaging
Гэрийн анхааруулга: Том дэлгэц дээр Arduino + Cloud Messaging
Гэрийн анхааруулга: Том дэлгэц дээр Arduino + Cloud Messaging

Гар утасны эрин үед хүмүүс таны дуудлагад 24/7 хариу өгөх болно гэж та бодож байна.

Эсвэл биш. Эхнэр маань гэртээ ирмэгц утас нь гар цүнхэндээ булагдсан хэвээр байх болно, эсвэл батерей нь дууссан байна. Бидэнд газрын шугам байхгүй. Бороотой шөнө галт тэрэгний буудлаас гэр лифт авахыг хүсэх, эсвэл миний түлхүүр ширээн дээр минь байгаа эсэхийг асуухаар утсаар ярих эсвэл мессеж бичих нь үнэхээр хүсэл мөрөөдөл юм.

Надад энэ асуудал ихэвчлэн шийдэлд хүрэхэд хангалттай байдаг. Arduino болон Freetronics Dot Matrix Display (DMD) -тэй бага зэрэг харьцах нь маш их ядаргаатай (манай эхнэрт зориулсан) хэрэгсэл болсон боловч миний хувьд гайхалтай харилцаа холбооны төхөөрөмж, мэдээллийн төв болсон юм. Би үүнд дуртай, энэ бол зөвхөн 1 -р хувилбар!

Гэрийн сэрэмжлүүлэг нь дараахь хэсгүүдээс бүрдэнэ.

  • Freetronics цэг матрицын дэлгэц нь 16x32 LED -ийн массив юм. Тэд өөр өөр өнгөтэй байдаг, гэхдээ би энэ хэрэгслийг "чухал" мэдэгдэлд зориулсныг онцлохын тулд улаан өнгийг ашигладаг.
  • Ethernet бамбайтай Arduino Uno.
  • Бодит цагийн цагийн тасалдал, ийм эсвэл ийм.
  • Пьезо дуугаруулагч
  • DHT22 температур ба чийгшлийн мэдрэгч.

Home Alert нь үүлд суурилсан програмын хост Heroku дээр байрладаг вэб хуудсаар хянагддаг. Вэб хуудсыг Sinatra вэб програмын хүрээ, Redis түлхүүр үнэ цэнийн дэлгүүрийг ашиглан Ruby дээр кодчилсон болно.

Нүүр хуудсыг үзнэ үү (энэ алхам дахь эхний хавсаргасан зураг дээр харуул), маягт нь хэрэглэгчээс шинэ зурвас хүлээж байгаа болно.

Эхний талбар нь тоон тоног төхөөрөмжийн кодыг хүлээн авдаг. Энэ нь тус бүрт өвөрмөц код өгөх боломжтой тул гэрийн дохиоллын тодорхой системийг чиглүүлэх боломжийг олгодог код юм. Эсвэл та нэг кодыг хуваалцах олон гэрийн сэрэмжлүүлгийг авах боломжтой бөгөөд ингэснээр нэг мессежийг олон байршилд харуулах болно.

Таны харуулахыг хүссэн мессеж хоёр дахь талбарт очно. Таны оруулсан текстийг DMD дээр харуулах болно.

Хэрэв та чимээ шуугиан гаргахыг хүсч байвал Тиймээ шалгаарай! checkbox, дуугаралт нь ойролцоох хүмүүсийн анхаарлыг татах нь дамжиггүй.

Энэ нийтлэлд би Arduino -ийн техник хангамж, програм хангамж, мөн Sinatra мини вэб програмыг ашиглан өөрийн гэрийн дохиоллын системийг хэрхэн бий болгохыг танд үзүүлэх болно.

Эхэлцгээе!

Алхам 1: Тоног төхөөрөмж

Тоног төхөөрөмж
Тоног төхөөрөмж
Тоног төхөөрөмж
Тоног төхөөрөмж
Тоног төхөөрөмж
Тоног төхөөрөмж

DMD бол гаджетын гол цэг юм. Би жижиг LCD дэлгэцтэй явж болох байсан ч энэ төслийн гол санаа бол алсаас харж, сонсох боломжтой зүйлийг үйлдвэрлэх явдал байв. Харааны хэсгийн хувьд надад том, тод зүйл хэрэгтэй байсан бөгөөд энэ Freetronics дэлгэц яг надад хэрэгтэй байсан юм. Самбар бүр нь 16x32 LED -ийн массивыг агуулдаг бөгөөд та эдгээрээс хэдийг нь хооронд нь холбож илүү том дэлгэц гаргах боломжтой. Энэ бол миний ойрын ирээдүйд хийхийг хүсч буй зүйл юм.

DMD нь ашиглахад хялбар Arduino номын сантай ирдэг. Энэ нь өндөр хурдны SPI-ээр дамжуулан Arduino-той харилцдаг. Би номын санг Freetronics Github хуудаснаас аваад дараа нь демо ноорогоо асааж, хайрцгийг нээснээс хойш хэдхэн минутын дотор ажиллуулж чадсан. Зөвхөн Arduino -ийн хүчийг ашигладаг ийм тод дэлгэцийг хараад би гайхсан. Хэрэв та үзэгчдийнхээ нүдийг түр зуур сохлохыг хүсвэл энэхүү DMD -д зориулагдсан цахилгаан тэжээлийг холбож болно. Хэрэв энэ нь тэдний анхаарлыг татахгүй бол юу ч авахгүй!

Биеийн хувьд энэ дэлгэц нь 320 мм (W), 160 мм (H) ба 14 мм (D) хэмжээтэй.

Арын самбар нь гадаад тэжээлийн холбогч, дор хаяж 4Amps хүчин чадалтай 5V, HUB1 гэж тэмдэглэгдсэн Arduino холбогч, эсрэг талд Daisy-оосортой нэмэлт дэлгэцийн холбогчийг агуулдаг. Баримт бичгийн дагуу та дөрвөн DMD-ийг гинжлэх боломжтой.

DMD -ийг Arduino Uno удирддаг. Freetronics нь маш тохиромжтой "DMDCON" холбогчийг өгдөг бөгөөд энэ нь зөв SPI болон өгөгдлийн хавчуур дээр шууд наалддаг.

DMD-ээс бусад нь би Arduino Uno, Ethernet Shield, бодит цагийн цаг таслагч, дуугаралт, DHT22-ийг ашигласан. Эдгээр бүх бүрэлдэхүүн хэсгүүдийн хувьд би Udemy курстаа тэдний үйл ажиллагааг тайлбарласан лекц зохиосон. (Ичгүүргүй сурталчилгаа: arduinosbs.com хаягаар миний имэйлийн жагсаалтад бүртгүүлж, 55 лекцэнд хөнгөлөлттэй хандах купон аваарай).

DS18072 цаг IC дээр суурилсан бодит цагийн цаг нь I2C төхөөрөмж тул I2C автобусыг ашигладаг Uno-ийн аналог 1 ба 2-р зүүтэй холбогддог.

Дуугар нь дижитал зүү 3 -т холбогдсон бөгөөд тэндээс би үүнийг () функцийг ашиглан хянадаг.

DHT22 мэдрэгч нь дижитал зүү 2-т холбогдсон байна. 5V шугам ба өгөгдлийн шугамын хооронд 10KΩ татах эсэргүүцлийг холбохдоо болгоомжтой байгаарай.

Алхам 2: Arduino ноорог

Ноорог нь шугамын тоогоор том биш боловч оруулсан бүх номын сангийн ачаар Uno -ийн боломжтой флаш санах ойг бараг л шавхдаг. Санах ойг оновчтой болгох олон боломж бий, гэхдээ би прототип хийх шатандаа явж байгаа тул энэ бол өөр өдрийн төсөл юм. Энэ кодыг Github дээр ашиглах боломжтой.

Энд ноорог, оруулсан сэтгэгдлүүд байна (PDF хавсралтыг үзнэ үү).

Энэхүү ноорогны гол үүрэг бол Arduino -ийг вэб үйлчилгээний хэрэглэгч болгох явдал юм. Вэб үйлчилгээ нь хоёр төгсгөлийн цэг бүхий энгийн вэб сайт бөгөөд нэг нь хэрэглэгч вэб хөтөчөөр дамжуулан хандаж, DMD дээр харуулахыг хүсч буй текстийн мөрийг оруулах боломжтой бөгөөд нөгөө нь Arduino-д хандах боломжтой вэбсайт юм. тэр текст мөрийг авах.

Хавсаргасан PDF файлыг татаж аваад уншина уу, энэ нь түүний үйл ажиллагааг тайлбарласан оруулсан сэтгэгдлийг агуулдаг.

Алхам 3: Синатра тайзан дээр гарлаа

Синатра тайзан дээр гарлаа!
Синатра тайзан дээр гарлаа!

Вэбсайт, вэб үйлчилгээ бий болгох олон арга бий. Вэб дэмждэг номын сантай програмчлалын хэлнээс эхлээд бүрэн хэмжээний хүрээ хүртэл энэ ажилд тохирох нэгийг сонгоход төвөгтэй, төвөгтэй байж болно.

Би вэб програмын олон тооны технологийг ашиглаж, тоглож үзсэн бөгөөд Sinatra нь вэб үйлчилгээ, жижиг вэбсайт бүтээхэд хамгийн тохиромжтой гэдгийг олж мэдсэн. Ялангуяа, би Arduino хэрэгслийг дэмжихийн тулд вэб үйлчилгээ бүтээхэд Sinatra бол үнэхээр сайн сонголт юм.

Синатра гэж юу вэ, яагаад ийм сайн сонголт вэ? Таныг асуусанд баяртай байна!

Синатра бол вэб програмыг хурдацтай хөгжүүлэх хэл юм. Энэ нь маш түгээмэл бөгөөд илэрхийлэгддэг ерөнхий зориулалттай скрипт хэл болох Ruby дээр суурилсан болно. Та Синатраг "DSL", домэйны онцлог хэл гэж нэрлэхийг сонсож магадгүй юм. Энд домэйн бол вэб юм. Sinatra -д зориулж бүтээсэн түлхүүр үгс (үгс) ба синтакс нь хүмүүсийг вэб програм үүсгэхэд хялбар, хурдан болгодог.

Ruby on Rails, Django гэх мэт вэб програм хөгжүүлэх "үзэл бодолтой" гэж нэрлэгддэг хүрээ нь маш их алдартай болсон энэ үед Sinatra спектрийн эсрэг талын төгсгөлийг эзэлдэг. Ruby on Rails болон Django програмистаас тодорхой дүрэм журам, арга барилыг дагаж мөрдөхийг шаарддаг (энэ нь эргээд урт хугацааны сургалтын муруй гэсэн утгатай), Синатра ийм шаардлага тавьдаггүй.

Синатра бол дэлхийн Rails болон Dango -оос хамаагүй илүү ойлгомжтой юм. Та Arduino -той хэдэн минутын дотор харилцах боломжтой вэб програмыг ажиллуулж болно.

Би жишээгээр харуулах болно. Sinatra минимум вэб аппликейшн нь иймэрхүү харагдаж байна (одоохондоо дараах зүйлийг уншаарай, үүнийг компьютер дээрээ бүү хий, учир нь танд урьдчилсан нөхцөл тохиргоо хийгдээгүй байгаа бололтой):

Үүнийг ганц файл хэлбэрээр my_app.rb гэж нэрлээд энэ текстийг нэмнэ үү.

'sinatra'get'/'"Сайн уу, ертөнц!" төгсгөлийг хийхийг шаардана

Командын мөрөнд програмыг дараах байдлаар эхлүүлнэ үү.

бадмаараг my_app.rb

Таны апп эхлэх бөгөөд консол дээр та энэ текстийг харах болно.

peter@ubuntu-dev: ~/arduino/sinatra_demo $ ruby my_app.rbPuma 2.8.1 эхэлж байна …* Min threads: 0, max threads: 16* Environment: development* tcp дээр сонсох: // localhost: 4567 == Sinatra/1.4.4 нь 4567 дээр Puma -ийн нөөцлөлтөөр хөгжүүлэлт хийх шатандаа оржээ

Апп нь үйлчлүүлэгчийн хүсэлтийг хүлээн авахад бэлэн боллоо. Хөтөчийг нээгээд https:// localhost: 4567 гэж зааж өг, тэгвэл та үүнийг харах болно (хавсаргасан дэлгэцийн агшинг үзнэ үү).

Энэ бол нэг файл доторх дөрвөн энгийн кодын мөр юм. Үүний эсрэгээр, Rails нь хүрээний шаардлагыг хангахын тулд үүсгэсэн зуу гаруй файл шаардлагатай болно. Битгий буруугаар ойлгоорой, би Рэйлст дуртай, гэхдээ үнэхээр үү?…

Тиймээс Синатра бол энгийн бөгөөд хурдан гүйдэг. Та Ruby, Sinatra болон програмыг Cloud -д байршуулах талаар юу ч мэдэхгүй гэж би бодож байна, тиймээс дараагийн хэсэгт би Arduino вэб үйлчилгээгээ Үүл рүү байршуулах хүртэл алхам алхамаар авч үзэх болно.

Алхам 4: Хөгжлийн машинаа тохируулна уу

Sinatra нь Ruby програмчлалын хэл дээр суурилдаг. Тиймээс, Sinatra -ийг суулгахаасаа өмнө Ruby -ийг суулгах хэрэгтэй.

Та мөн Redis нэртэй түлхүүр үнэ цэнэтэй дэлгүүрийн серверийг суулгах хэрэгтэй болно. Redis -ийг өгөгдлийн түлхүүрийн эсрэг хадгалдаг мэдээллийн сан гэж бодоорой. Та өгөгдлийг авахын тулд түлхүүрийг ашигладаг бөгөөд энэ нь уламжлалт харилцааны мэдээллийн баазад зориулагдсан өгөгдлийн бүтцийн уян хатан бус харин хурдны хувьд оновчтой байдаг. Home Alert нь зурвасуудаа Redis дээр хадгалдаг.

Алхам 5: Mac эсвэл Linux дээр Ruby

Хэрэв та Mac эсвэл Линукс компьютер ашиглаж байгаа бол Ruby суулгалтаа (RVM: Ruby Version Manager) суулгах, удирдахын тулд RVM ашиглахыг зөвлөж байна. Ruby -ийг RVM -тэй суулгах заавар нь энэ хуудсан дээр байгаа эсвэл энэ тушаалыг бүрхүүлдээ хуулж тавина уу.

curl -sSL https://get.rvm.io | bash -s тогтвортой -бутлаг

RVM, Ruby -ийн татаж авах, эмхэтгэх, суулгахыг дуустал суугаад, тайвширч, хүлээнэ үү.

Алхам 6: Windows дээр Ruby

Хэрэв та Windows дээр ажиллаж байгаа бол Ruby Installer for Windows вэбсайт дээрх энэхүү гарын авлагыг дагаж, тохиргооны програмыг ашиглахыг зөвлөж байна.

Алхам 7: Ruby -ээ шалгаж, тохируулна уу

Үүнийг бичиж байх үед Ruby -ийн хамгийн сүүлийн үеийн тогтвортой хувилбар нь 2.1.1.p76 юм. Та үүнийг бичих замаар RVM -тэй суулгасан хувилбарыг шалгаж болно.

rvm мэдээлэл

RVM болон Ruby -ийн тухай олон мэдээлэл гарч ирэх болно. Миний хувьд энэ бол Ruby хэсэг юм:

бадмаараг: тайлбарлагч: "бадмаараг" хувилбар: "2.1.1p76" огноо: "2014-02-24" платформ: "x86_64-linux" засварын түвшин: "2014-02-24 хувилбар 45161" full_version: "бадмаараг 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 -д кодыг "сувд" гэж нэрлэдэг багц хэлбэрээр хуваалцдаг. Sinatra -ийг бүрдүүлдэг кодыг таны компьютер дээр эрдэнийн чулуу болгон суулгаж болно.

эрдэнэ суулгах sinatra

Энэ мөр нь бүх код, баримт бичгийг авч, компьютер дээрээ суулгах болно.

Алхам 9: Mac эсвэл Linux дээр Redis

Mac эсвэл Linux дээр Redis -ийг тохируулах нь хялбар байдаг. Энэ үйл явцыг Redis вэбсайт дээр тайлбарласан болно. Бүрхүүлийн терминалыг нээгээд дараах тушаалуудыг бичнэ үү.

$ wget https://download.redis.io/releases/redis-2.8.7.tar…$ tar xzf redis-2.8.7.tar.gz $ cd redis-2.8.7 $ make

Redis -ийг дараах командыг ашиглан ажиллуулна уу.

$ src/redis-сервер

… тэгээд чи дууслаа!

Алхам 10: Windows дээр Redis

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" -ийг тодорхойлох

Энэ IP хаягийг зөвхөн миний гэрийн сүлжээнд байгаа төхөөрөмжүүдэд ашиглах боломжтой.

HW_ID тохиргоо нь "тоног төхөөрөмжийн ID", өөрөөр хэлбэл DMD -ийг хянадаг Arduino -ийн Синатра програмд өөрийгөө таних ID -г илэрхийлдэг. Энэ бол баталгаажуулалтын маш үндсэн төрөл юм. Вэб аппликейшн нь Arduino -д өгсөн HW_ID дээр үндэслэн үүнийг өгөхийг хүссэн мессежийг хүлээлгэн өгөх болно. Та ижил HW_ID -тэй олон төхөөрөмжтэй байж болно, энэ тохиолдолд бүх төхөөрөмж ижил мессежийг харуулах болно. Хэрэв та "нууцлал" байхыг хүсч байвал бусад хүмүүсийн таах боломжгүй олон тооны санамсаргүй тэмдэгт бүхий ID сонгоно уу. Мөн болгоомжтой байгаарай, ямар ч харилцаа холбоо шифрлэгдээгүй байна.

Одоо Sinatra програмаа эхлүүлээд үүнийг оруулна уу (хэрэв та Sinatra төслийн хавтсанд байгаа гэж үзвэл):

бадмаараг вэб.rb

… тэгээд та иймэрхүү зүйлийг харах болно (энэ нь эвдрээгүй л бол зарим нарийн ширийн зүйлс өөр байж болно, та зүгээр байна):

10:42:18 вэб.1 | pid 4911910: 42: 18 вэбээр эхэлсэн.1 | Пума 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 тогтмол дээр тохируулсан ID -г ноорог дээр бичнэ үү. "Таны мессеж" талбарт юу ч бичээд "Buzz?" шалгах хайрцаг.

Илгээж, түр хүлээгээрэй, таны мессеж DMD дээр гарч ирэхийг хараарай!

Алхам 12: Heroku ашиглан үүл рүү байршуулна уу

Home Alert одоо хөгжиж байгаа тул үүнийг Cloud дээр ажиллуулцгаая. Вэб програмыг байршуулах олон тооны сонголтууд байдаг. Home Alert -ийн хамрах хүрээ, нарийн төвөгтэй байдлыг үндэслэн би өөрийн хувийн виртуал серверийг бий болгох нь хүчин чармайлт гаргах шаардлагагүй юм гэж шийдсэн. Үүний оронд програмын хост Heroku гэх мэт үйлчилгээнд хамрагдах нь дээр. Миний хувьд Херокүгийн чөлөөт түвшин хангалттай байх болно. Redis бүрэлдэхүүн хэсгийн хувьд ч би Heroku -тэй ажилладаг олон Redis үйлчилгээ үзүүлэгчдээс үнэгүй төлөвлөгөө сонгох боломжтой болсон.

Гэсэн хэдий ч бага зэрэг хүчин чармайлт гаргаж байгаа бөгөөд энэ нь миний програмыг бага зэрэг өөрчилж, Херокугийн үзүүлэлтүүдийг дагаж мөрдөх боломжтой болсонтой холбоотой юм. Дэлгэрэнгүй мэдээлэл энд байна, гэхдээ үндсэндээ та эдгээр файлуудыг Sinatra төсөлдөө нэмэх шаардлагатай болно (дараагийн бүх файлыг миний Github данснаас татаж авах боломжтой):

* config.ru: Энэ нь програмыг агуулсан файлыг Heroku -д хэлдэг. Энд агуулга байна:

шаарддаг './web'run Sinatra:: Програм

Эхний мөр нь web.rb рүү чиглэсэн бөгөөд хоёр дахь мөр нь таны програмыг ажиллуулдаг.

* Gemfile: энэ нь програмд шаардлагатай эрдэнийн чулуу (бадмаараг кодын багц) агуулдаг. Хероку таны файлыг хайж олохын тулд өөр ямар кодыг суулгах шаардлагатайг олж мэдэх болно. Gemfile -ийг харах өөр нэг арга бол таны төслийн хамаарлын жагсаалтыг агуулдаг. Хэрэв эдгээр хамаарлын аль нэг нь байхгүй бол таны програм ажиллахгүй болно. Энэхүү програмын Gemfile дотор юу байгааг энд харуулав.

эх сурвалж "https://rubygems.org" бадмаараг "2.1.1" gem 'sinatra'gem' puma'gem 'redis'

Нэгдүгээрт, энэ нь бүх Gem кодын эх сурвалжийг rubygems.org болгож тохируулдаг. Дараа нь програмыг ажиллуулахад Ruby 2.1.1 хувилбар шаардлагатай болно. Дараа нь шаардлагатай эрдэнийн чулууг жагсаав: Синатра, Пума (Ruby вэб програмын гайхалтай сервер), Редис.

* Procfile: энэ нь Heroku -д серверээ хэрхэн эхлүүлэх талаар хэлж өгдөг. Энд ганцхан мөр байна:

вэб: rackup -s puma -p $ PORT

Энэ мөрөнд "вэб" бол шаардлагатай цорын ганц үйлчилгээ (танд "ажилчин" гэх мэт бусад мэдээллийг боловсруулж болно) гэж заасан бөгөөд үйлчилгээг эхлүүлэхийн тулд Heroku нь ":" дараа гарч ирэх тушаалыг ашиглах ёстой.

Та өөрийн хөгжүүлэлтийн машин дээрх дарааллыг дагаж, Херокү юу хийх гэж байгааг дуурайж болно (зөвхөн сумны өмнө тест бичнэ үү, сумны дараах командын тайлбар л байна):

$> gem install bundler -> Gemfile -ийг хэрхэн зохицуулахыг мэддэг Bundler -ийг суулгадаг. $> bundle install -> Bundler нь Gemfile -ийг боловсруулж, хамаарлыг суулгадаг. $> rackup config.ru -> Rackup бол config.ru файлыг боловсруулах боломжтой хэрэгсэл юм. Энэ нь ихэвчлэн Ruby -ийн сүүлчийн хувилбартай ирдэг, хэрэв ийм байдлаар суулгаагүй бол: gem install rack.

Сүүлийн алхам бол таны програмыг эхлүүлэх явдал юм. Та өмнө нь ruby web.rb ашиглан эхлүүлсэнтэй яг ижил гарцыг харах ёстой. Энэ нь ижил програм ажиллаж байгаа бөгөөд ялгаатай нь хоёр дахь арга бол Хероку үүнийг хэрхэн эхлүүлэх явдал юм.

Бид энэ програмыг таны Heroku дансанд байршуулахад бараг бэлэн боллоо. Хэрэв танд одоохондоо байхгүй байгаа бол одоо үргэлжлүүлээрэй. Дараа нь өөрийн данс, орон нутгийн хөгжлийн машин, ялангуяа Heroku Toolbelt -ийг тохируулахын тулд хурдан эхлэх зааврыг дагана уу.

Heroku Toolbelt нь Heroku тушаалын мөрийн клиент, Git (нээлттэй эх кодын удирдлагын систем), Foreman (Procfile дээр суурилсан програмуудыг удирдахад туслах Ruby хэрэгсэл) -ийг суулгадаг.

Heroku вэбсайт дээрх зааврыг дагаж Heroku Toolbelt -ийг суулгаж дууссаны дараа програмаа байршуулахын тулд дараах алхмуудыг дагана уу (бүх зүйлийг командын мөрөнд, аппликешны директор дотор бичсэн болно):

$> heroku login -> $> git init -> $ 1 програмынхаа Git репозиторыг эхлүүлэх тушаалаар Heroku руу нэвтэрнэ үү. -> (цэгийг анзаарна уу!) Одоогийн лавлах дахь бүх файлыг Git репозиторид нэмнэ үү $> gitapt -m “init" -> Эдгээр файлуудыг репозиторт оруулах, $> heroku create -> шинээр үүсгэх Heroku дээрх апп. Heroku нь таны апп-д "дүрэлзсэн галактик-997" гэх мэт санамсаргүй нэр өгөх болно. Нэр, URL -г тэмдэглээрэй, ингэснээр та дараа нь вэб хөтөчөөр дамжуулан хандах боломжтой болно. Энэ URL нь иймэрхүү харагдах болно: "https://blazing-galaxy-997.herokuapp.com/". Та мөн шинэ програмынхаа хост нэрийг ("blazing-galaxy-997.herokuapp.com" хэсэг) Arduino ноорогныхоо WEBSITE тогтмол руу хуулах хэрэгтэй болно. Үүнийг дараа нь мартахгүйн тулд яг одоо хий. $> heroku addons: rediscloud нэмэх -> Rediscloud Redis үйлчилгээний үнэгүй түвшинг програмдаа нэмнэ. Тохиргооны тохиргоог автоматаар үүсгэж, таны програмд ашиглах боломжтой болгоно. $> git push heroku master -> Өөрийн кодоо Heroku -д байршуулна уу. Энэ нь кодыг автоматаар шилжүүлэх, Heroku -аас хамааралтай байдлыг тохируулах, програмыг эхлүүлэх болно. Процессийн төгсгөлд та "https://blazing-galaxy-997.herokuapp.com-ийг Heroku-д байршуулсан" гэх мэт зүйлийг харах болно, энэ нь таны аппликешн одоо олон нийтийн Клоуд дээр ажиллаж байна гэсэн үг юм! Баяр хүргэе!

Үргэлжлүүлээрэй.

Алхам 13: Бүгдийг нэгтгэх

Вэб програмаа байршуулсны дараа шинэчилсэн ноорогоо Arduino -д байршуулна уу (вэб програмын үйлдвэрлэлийн жишээ рүүгээ чиглүүлэхийн тулд WEBSITE тогтмолыг шинэчилсэн гэдгээ санаарай).

Хөтөчөө ашиглан Heroku дээрх апп руугаа нэвтэрнэ үү. Яг танилцуулгын нэгэн адил тоног төхөөрөмжийн ID -г эхний текст талбарт, зурвасыг хоёр дахь хэсэгт бичээд дуугарагчийг идэвхжүүлэхийн тулд чагтыг чагтална уу.

Хэрэв бүх зүйл хэвийн байвал таны зурвас DMD дээр гарч ирнэ.

Алхам 14: Боломжит

Гэрийн сэрэмжлүүлгийн системээр хийх олон зүйл бий …

Heroku арын үзүүртэй байх нь гайхалтай функцийг нэмж чадах логикийг нэмж болно гэсэн үг юм. Жишээлбэл, та програмын хувьд давтагдах мэдэгдэл, мэдэгдэл, строб гэрэл гэх мэт нэмэлт мэдэгдлийн техник хэрэгслийг удирдах чадварыг нэмж болно. Та тус бүрдээ өөр өөр мессеж эсвэл нэг том мессежийг харуулахын тулд олон DMD -ийг нэмж болно. Би энд байж болох зүйлийн гадаргууг маажиж байна!

Зугаацаарай!

Зөвлөмж болгож буй: