Home-Alert: Arduino + Cloud Messaging op een groot scherm (12 / 14 stap)

Stap 12: Implementeren naar de Cloud met behulp van Heroku

Nu dat Home Alert in ontwikkeling werkt, laten we het werkend op de wolk. Er zijn talloze opties beschikbaar voor het implementeren van webapplicaties. Op basis van de omvang en de complexiteit van Home Alert, besloot ik dat mijn eigen virtuele privé server opzetten niet de moeite waard is. In plaats daarvan, is het beter om te gaan voor een dienst als Heroku, een toepassing host. Voor mijn schaal, is Heroku de gratis tier is meer dan genoeg. Zelfs voor de Redis component was ik in staat een gratis plan om uit te kiezen een van de vele Redis providers die met Heroku werken.

Toch is er een beetje moeite betrokken, dat heeft te maken met het krijgen van mijn licht gewijzigd zodat het aan de specificaties van de Heroku van voldoen kan toepassing. De details zijn hier, maar in wezen u moet deze bestanden toevoegen aan uw Sinatra-project (alle bestanden die volgen kan worden gedownload van mijn Github account):

config.ru: het vertelt Heroku welk bestand bevat de toepassing. Hier is de inhoud:

vereisen '. / web'
uitvoeren van Sinatra::Application

De eerste regel verwijst naar web.rb, en de tweede regel eigenlijk uitvoert uw toepassing.

Gemfile: het bevat de Gems (Robijnrode code pakketten) die door de toepassing vereist zijn. Heroku ziet er binnen dit bestand om erachter te komen wat andere code installeren moet, zodat uw toepassing werkt. Een andere manier te kijken naar Gemfile is dat bevat een lijst met afhankelijkheden voor uw project. Als om het even welk van deze afhankelijkheden niet beschikbaar zijn, zal uw toepassing niet werkt. Hier is wat er binnen de Gemfile voor dit app:

Bron "https://rubygems.org"
ruby "2.1.1"
Gem 'sinatra'
Gem 'puma'
Gem 'redis'

Eerst, stelt het de broncode repository van alle Gem code rubygems.org. Vervolgens moet het dat de Ruby versie 2.1.1 is gebruikt de toepassing uit te voeren. Dan de vereiste edelstenen worden: Redis Sinatra en Puma (een groot Ruby web application server).

Procfile: het Heroku vertelt hoe opstarten uw server. Er is slechts één lijn hier:

Web: rackup -s puma -p $PORT

Deze regel zegt dat "web" de enige soort van de dienst vereist is (u zou kunnen hebben anderen, zoals "werknemer", voor achtergrondverwerking), en dat de service Heroku starten met de opdracht die wordt geleverd na de ":".

U kunt simuleren wat Heroku gaat doen door deze volgorde te volgen op uw ontwikkelingsmachine (alleen de proef voor de pijl van het type; wat volgt de pijl is alleen een beschrijving van de opdracht):

$> gem install bundler — > installeert Bundler, die hoe hij weet moet omgaan met de Gemfile.
$> bundel installeren — > Bundler verwerkt Gemfile en installeert van afhankelijkheden.
$> rackup config.ru — > Rackup is een tool die het config.ru-bestand kan verwerken. Het komt normaal met de latere versie van Ruby, als dit niet gebeurt ' Installeer het als volgt: gem install rek.

De laatste stap leidt tot de daadwerkelijk lancering van uw applicatie. U ziet de exacte dezelfde output als toen je begon met ruby web.rb eerder. Het is de zelfde toepassing die wordt uitgevoerd, alleen met het verschil dat de tweede methode is hoe Heroku begint het.

We zijn bijna klaar om het implementeren van deze toepassing op uw Heroku account. Als u nog een, ga je gang en Maak een nu. Volg de quickstart gids voor het opzetten van uw account en uw machine van de plaatselijke ontwikkeling, en met name de Heroku Toolbelt.

De Heroku Toolbelt installeert de Heroku command line client, Git (de open source bron code management systeem) en Foreman (een Ruby tool die helpt bij het beheren van de Procfile gebaseerde toepassingen).

Zodra u de installatie van de Heroku Toolbelt Volg de instructies op de website van de Heroku voltooid, volg deze stappen om uw applicatie geïmplementeerd (alles is getypt in de command line, binnen de app folder):

$> heroku login — > Meld u aan bij Heroku via de opdrachtregel
$> git init — > initialiseren van een Git repository voor uw toepassing
$> git toevoegen. — > (merk op de stip!) Alle bestanden in de huidige map toevoegen aan het Git repository
$> git plegen -m "init" — > commit uitvoeren voor deze bestanden in de repository, met een nieuw bericht
$> heroku maken -> Maak een nieuwe app op Heroku. Heroku zal uw app Geef een willekeurige naam, iets als "blazing-galaxy-997". Toon waas naar de naam en de URL zodat kunt u het via uw webbrowser later. Deze URL zal er zo uitzien: "http://blazing-galaxy-997.herokuapp.com/". U moet ook de hostnaam (het "blazing-galaxy-997.herokuapp.com" gedeelte) van uw hernieuwde aanvraag kopiëren naar de constante van de WEBSITE van uw Arduino schets. Doe dit nu zodat u later niet vergeten.
$> heroku addons: Voeg toe rediscloud — > voegt de gratis laag van de Rediscloud Redis-service aan uw toepassing. Configuratie-instellingen worden automatisch gemaakt en beschikbaar gesteld aan uw toepassing.
$> git push heroku meester — > uw code implementeren op Heroku. Dit zal automatisch overbrengen van de code, opstelling van eventuele afhankelijkheden op Heroku, en start de toepassing. Aan het einde van het proces, ziet u zoiets als dit: "http://blazing-galaxy-997.herokuapp.com geïmplementeerd op Heroku", wat betekent dat uw toepassing nu is live op de openbare Cloud! Gefeliciteerd!

Ga je gang, geef het een spin!

Gerelateerde Artikelen

Toevoegen van een $15-scherm aan de Raspberry Pi

Toevoegen van een $15-scherm aan de Raspberry Pi

De Raspberry Pi is een geweldige weinig boord en verpakkingen een heleboel punch. Maar vele malen je hoeft alleen maar een kleine display om bepaalde informatie uit het project. Het kunnen het lokale weer, status van het systeem, een interactief menu
Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

het toevoegen van een LCD-scherm aan de Arduino projecten kan echte waarde toevoegen de kosten doen dus kan echter aanzienlijk. Niet een financiële kosten - u kunt oprapen 16 (tekens) x 2 (rijen) LCD voor zo weinig zoals £3,50. De kosten is het telle
PSU-voeding van oude ATX met Arduino en LCD Monitor een proefbank

PSU-voeding van oude ATX met Arduino en LCD Monitor een proefbank

Hallo allemaal en welkom op mijn eerste Instructable.Ik wilde altijd een bankje PSU voor gemakkelijke toegang tot een bron van macht, en iets dat ik kan rekenen op wanneer u werkt aan verschillende projecten. Ik wilde een PSU dat:• biedt 3, 3V, 5v en
Homer's Odyssey, het verhaal van een kat en hoe je teveel kittens zonder te proberen, echt snel.

Homer's Odyssey, het verhaal van een kat en hoe je teveel kittens zonder te proberen, echt snel.

Mijn naam is Homer, en dat is mijn beeld van wanneer mij watertje having een echt slechte dag.  En dit is mijn verhaal.Editors Note: Ik besloot te schrijven dit instructable deels in de vorm van een verhaal, omdat ik dacht dat het zou interessanter.
Arduino GPS snelheidsmeter met een ks0108 - 128 x 64 GLCD (display)

Arduino GPS snelheidsmeter met een ks0108 - 128 x 64 GLCD (display)

Ik wilde het bouwen van een digitale snelheidsmeter voor mijn auto. Er was niets mis met de een al geïnstalleerd in mijn auto, ik wilde alleen maar een grote LCD display die zal worden geplaatst in een gemakkelijker positie - recht voor me hebben. En
Hoe maak je een Groot dansen.

Hoe maak je een Groot dansen.

Dit instructable ontstond vervulling de project-eis van de Makecourse-kunst aan de Universiteit van Zuid-Florida (www.makecourse-art.com).Voor dit instructable wij zal worden weergegeven u hoe maak je een Groot dansen om 3D afgedrukt. Voor dit projec
Log output van de Arduino voor dagen met een BeagleBone

Log output van de Arduino voor dagen met een BeagleBone

Hier is een snelle hack voor het debuggen van Internet of Things projectenLaten we zeggen u een mooie, Internet-verbonden Arduino project gebouwd met een fancy webinterface bediend door, bijvoorbeeld de Ethernet-shield. Na één of twee dagen het een o
Appel-banaan Smoothie! (Een groot gebruik voor bruine bananen)

Appel-banaan Smoothie! (Een groot gebruik voor bruine bananen)

Eenvoudig, goedkoop, gezond en lekker! En een groot gebruik voor bruine bananen!Ik hou echt smoothie, en ik maken het de hele tijd! Het is gezond en smaakt geweldig! Dus is hier mijn favoriete recept!Dit is ook een leven houwer recept voor gebruik va
Een groot, spiegel van de telescoop van de licht-gewicht van gerecycled glas gieten

Een groot, spiegel van de telescoop van de licht-gewicht van gerecycled glas gieten

de eerste foto hieronder toont een 12,5 inch diameter, de 1,5 inch dik, de spiegel telescoop leeg, gemaakt van gerecycled glas, die heeft zijn lichter door het gieten van de spiegel in een mal die veel zeshoek-vormige zakken in de achterkant van de s
Beeldhouwen een Groot masker

Beeldhouwen een Groot masker

Ladypops een Groot masker geïnspireerd door de film Guardians of the Galaxy beeldhouwen. De algehele sculpt duurde vier uur maar deze video het gecondenseerd tot minuten. Hoop dat u geniet van!Stap 1: Beeldhouwen het maskerVideo van het beeldhouwen!S
Hoe om een groot Student-feest te organiseren

Hoe om een groot Student-feest te organiseren

Dus, u wilt een feestje. Een groot feest voor de menigte van de student kan worden leuk, memorabel, en een geweldige manier voor jou en je medestudenten om de band met elkaar. Helaas zijn er een paar risico's die u onder ogen ziet als u besluit om ee
Beginner Arduino - met behulp van een 1.8-Inch-TFT-Display

Beginner Arduino - met behulp van een 1.8-Inch-TFT-Display

Dit is uw inleidende gids voor het gebruik van een 1.8 in Duimtft vertoning met een Arduino. Ik houd van de 1.8 op display voor zijn kleine grootte en lage kosten. Ik heb de mijne voor ongeveer $10 op ebay, hier. Het komt niet met instructies maar me
Met behulp van een Arduino Uno R3 als een spelbesturing

Met behulp van een Arduino Uno R3 als een spelbesturing

2016 UPDATE: Ik zal niet langer ondersteuning zorgen in het commentarensectie. Dit is een verouderde en achterhaalde methode, die heeft weinig reden om te worden weggezogen. Houden het alleen voor informatiedoeleinden.Natuurlijk, de Uno doet niet vad
Bereik van de Alerter-Arduino Project

Bereik van de Alerter-Arduino Project

Een Arduino echografie bereik waarschuwen van project, die waarschuwt de gebruiker van de nabijheid van obstakels met behulp van echografie HC-SR04 ultrasone Module. De afstand wordt gemeten met behulp van de code en op basis van de nabijheid, die pa