Hem Alert: Arduino + moln meddelandehantering på en stor Display (3 / 14 steg)
Steg 3: Sinatra intar scenen!
Det finns många sätt att skapa webbplatser och webbtjänster. Från programmeringsspråk med web-stödja bibliotek, till kompletta ramar, det kan vara förvirrande och svårt att välja en för detta jobb.
Jag har använt och spelade med en hel del teknik för webbprogram, och upptäcker att Sinatra är idealisk för att skapa webbtjänster och liten webbplatser. Särskilt när jag bygga en webbtjänst för att stödja en Arduino gadget, är Sinatra ett riktigt bra val.
Vad är Sinatra och varför är det ett bra val? Jag är glad att du frågade!
Sinatra är ett språk för den snabba utvecklingen av webbapplikationer. Den är byggd ovanpå Ruby, en mycket populär och uttrycksfulla allmänt ändamål skriptspråk. Du kan höra Sinatra som kallas en "DSL", ett domän specifika språk. Här är webben. Sökord (ord) och syntaxen för Sinatra är sådan att det gör det enkelt och snabbt för människor att skapa webbapplikationer.
I en tid där så kallade "påstridig" ramar för web app utveckling som Ruby on Rails och Django är super populär, fångar Sinatra den motsatta änden av spektrumet. Medan Ruby on Rails och Django kräver programmeraren att följa en särskild konvention och sätt att göra saker (vilket i sin tur innebär en brant och lång inlärningskurva), gör Sinatra inga sådana krav.
Sinatra är begreppsmässigt mycket enklare än Rails och Djangos av världen. Du kan få igång med en webbapplikation som kan interagera med din Arduino inom några minuter.
Jag kommer att Visa med ett exempel. Här är vad en Sinatra minimal web app ser ut (bara läsa följande för nu, inte faktiskt gör detta på din dator eftersom du skulle förmodligen inte har inställningen för förutsättningar för detta än):
I en enda fil, låt oss kalla det my_app.rb, lägga till denna text:
kräver "sinatra"
få ' /' göra
"Hello, world!"
slutet
Starta app så här på kommandoraden:
ruby my_app.rb
Appen startar och du kommer att se denna text i konsolen:
Peter ruby my_app.rb
Puma 2.8.1 startar...
* Min trådar: 0, max trådar: 16
* Miljö: utveckling
* Lyssna på tcp://localhost:4567
== Sinatra/1.4.4 har tagit scenen på 4567 för utveckling med backup från Puma
Appen är nu redo att ta emot en klient begäranden. Öppna en webbläsare, peka den till http://localhost:4567och detta är vad du kommer att se (se bifogad skärmdump).
Det är fyra enkla rader kod i en enda fil. Däremot Rails skulle ha krävt över hundra filer, skapas bara för att tillfredsställa den ramen krav. Missförstå mig inte, jag älskar Rails, men egentligen...?
Så är Sinatra enkel och snabb att köra. Jag antar att du vet ingenting om Ruby, Sinatra och programdistribution till molnet, så i nästa avsnitt kommer jag ta dig steg för steg från noll till distribution av din Arduino webbtjänst till molnet.