Projectes en xarxa - Internet de les coses
Els projectes poden estar connectats a la xarxa (sigui local o a Internet). De fet serà la situació més habitual, ja que només cal que l'ordinador que executa Snap! (o Snap4Arduino) tingui aquesta connexió.
Connectats a la xarxa, el paradigma IoT (Internet de les coses) esdevé una forma de treballar natural i senzilla. No només tindrem les eines d'interacció, sinó que (com tot a Snap!) aquestes són sempre programables. Aquests elements es podran activar/desactivar, seqüenciar, inserir dins un algoritme…
Aquestes accions es poden classificar en tres seccions:
Utilitzant els recursos d'Internet
- Es pot utilitzar la informació que ja està a la xarxa, sense haver de tornar a fabricar-la. Ja està disponible. Només cal demanar-la. Es pot llegir valors dinàmics de sensors, paràmetres i informació publicada…
- També es poden realitzar accions sobre serveis externs que ofereixen un control via web (http), ja siguin d'Internet o de la xarxa local. Un exemple clar serien els sistemes domòtics que ofereixen interfícies web de control.
Aquestes accions es poden utilitzar i programar des de qualsevol projecte d'Snap! En l'apartat Snap! i les crides http es documenta el seu ús i les possibilitats que ofereix.
Oferint la informació i el control del nostre projecte a la xarxa
- Snap4Arduino ens ofereix un webserver per poder interaccionar amb els projectes d'Snap! des de la xarxa.
- Via web es poden visualitzar els valors de les varibles, canviar el seu valor, enviar missatges de control i visualitzar dinàmicament l'escenari del projecte.
- Es pot interaccionar directament des d'un navegador, des d'una pàgina web, des d'un dispositiu mòbil… i des d'un altre projecte Snap!
A l'apartat Snap4Arduino com a webserver es documenta el seu ús, les diferents ordres disponibles i possibles implementacions.
Connectant Snap! amb Snap!
Utilitzant les funcions descrites en els dos apartats anteriors es poden realitzar múltiples combinacions i connectar tot tipus de dispositius. Snap4Arduino ja es connecta a diferents dispositius físics (per exemple, plaques d'Arduino) i, alhora, el tenim connectat a Internet, a d'altres ordinadors, tauletes, mòbils…
Un exemple a remarcar és la connexió d'un Snap! amb un altre. El paradigma de programació d'Objectes que ofereix de forma primitiva a Snap! s'amplia de forma natural i es poden comunicar aquests 'Objectes' entre ells tant si estan en el mateix ordinador (el mateix projecte Snap!) com si 'viuen' en dispositius diferents.
Xarxes locals i Internet
Arreu parlem de connexió http per xarxa. El concepte és el mateix tant si parlem d'una xarxa local com d'Internet. Evidentment la seva implementació i el grau de complexitat és diferent, ja que cal controlar diferents aspectes externs al nostre projecte.
Per les funcions descrites a la primera secció (Utilitzant els recursos d'Internet) només cal la connexió a Internet de l'ordinador. Per al segon bloc, explicitem alguns detalls per orientar les pràctiques i implementacions:
- Es poden provar les funcionalitats descrites fàcilment amb un sol ordinador (sense cap connexió a la xarxa). Des del navegador podrem interaccionar amb Snap! i podrem crear pàgines web que interactuin de la mateixa manera.
- Amb l'ordinador connectat a una xarxa local, serà fàcil connectar dispositius interns sempre que es congiui la seva IP.
- Si tenim una xarxa local complexa que realment té diferents xarxes connectades (local, wifi docent, wifi eduroam…) caldrà saber com està configurada la visibilitat entre xarxes. Per exemple, la xarxa eduroam no veu per defecte les altres xarxes d'un centre educatiu.
- Si es vol que els projectes 'surtin a Internet' caldrà configurar el router: obrir ports, redireccionar-los (dreceres NAT)…