Forskjell mellom versjoner av «IoT»

Fra Bitraf
Hopp til navigering Hopp til søk
m
(Mer om døråpneroppsettet.)
 
(5 mellomliggende revisjoner av samme bruker vises ikke)
Linje 10: Linje 10:
 
== MQTT ==
 
== MQTT ==
  
Det meste er basert på MQTT. For å se på trafikken kan du bruke f.eks. Mosquitto:
+
Bitrafs MQTT-tjener er åpen og tilgjengelig for alle medlemmer:
 +
 
 +
; Host: mqtt.bitraf.no
 +
; Plain-port: 1883
 +
; TLS-port: 8883
 +
; Websockets (med TLS): 9001
 +
 
 +
Det meste er basert på MQTT. For å se på trafikken kan du bruke nettleseren eller en kommandolinjeklient fra f.eks. Mosquitto. Bitrafs produksjonsoppsett bruker <tt>bitraf/#</tt> (eller <tt>/bitraf/#</tt>), mens alle eksperimenter bruker <tt>public/#</tt> som topic.
 +
 
 +
Nettleserklienten er installert på https://mqtt.bitraf.no/web.
 +
 
 +
For å se alle meldinger med Mosquittos kommandolinjeklient, bruk denne kommandoen:
  
 
<pre>
 
<pre>
Linje 22: Linje 33:
 
''MQTT-protokollen spesifiserer lite av hvordan topics skal brukes så dette er vår stil. Denne delen er levende og bygges ut etterhvert som vi får mer erfaring.''
 
''MQTT-protokollen spesifiserer lite av hvordan topics skal brukes så dette er vår stil. Denne delen er levende og bygges ut etterhvert som vi får mer erfaring.''
  
* Topics starter uten slash: <tt>foo</tt>, ikke <tt>/foo</tt>. ''Ikke alle tjenestene oppdatert med denne standarden enda.''
+
* Topics starter uten slash: <tt>foo</tt>, ikke <tt>/foo</tt>.
* For testing og utvikling så brukes gjerne <tt>public/#</tt>. Dette området vil alltid være åpent for bruk.
+
** ''Ikke alle tjenestene oppdatert med denne standarden enda.''
 +
* For testing og utvikling bruker <tt>public/#</tt>.
 +
** Dette området vil alltid være åpent for bruk.
 +
** Dette området oppfordrer vi medlemmer til å bruke så mye de vil. Bruk gjerne <tt>public/$brukernavn/</tt> som prefiks.
 
* For Bitrafs egne tjenester bruker vi <tt>bitraf/#</tt>. De fleste tjenestene er åpne og lesbare for alle for alle, mens noen vil være skrivebeskyttet og noen også lesebeskyttet.
 
* For Bitrafs egne tjenester bruker vi <tt>bitraf/#</tt>. De fleste tjenestene er åpne og lesbare for alle for alle, mens noen vil være skrivebeskyttet og noen også lesebeskyttet.
  
Linje 29: Linje 43:
  
 
Denne delen beskriver de topicene som de enhetene vi har lagd sender på.
 
Denne delen beskriver de topicene som de enhetene vi har lagd sender på.
 +
 +
=== Device ===
 +
 +
'''device''' er en meta-applikasjon for å beskrive enheten som er i bruk.
 +
 +
Prefiks: <tt>bitraf/device/$device-id</tt>.
 +
 +
<tt>$device-id</tt> er tilfeldig, men konsistent for hver enhet. F.eks. for ESP8266-baserte er det nyttig å bruke <tt>system_get_chip_id()</tt> for å generere en enhets-id.
 +
 +
; Undertopics:
 +
: <tt>/online</tt>: <tt>1</tt> hvis online, <tt>0</tt> ellers.
 +
: <tt>/name</tt>: Kort navn på enheten. Beregnet for mennesker, gjør det lettere å finne ut hvilken enhet som er hvilken.
 +
: <tt>/firmware</tt>: Tekstlig beskrivelse av hvilken versjon av firmwaren som kjøres. Kan f.eks. inneholde versjon, tidspunkt for kompilering og Git revisjon.
 +
: <tt>/ip</tt>: IPen til enheten.
 +
 +
Det er forventet at enheten bruker last will-meldingen på <tt>/online</tt>.
  
 
=== Temperatur ===
 
=== Temperatur ===
Linje 50: Linje 80:
 
</code>
 
</code>
  
=== Enhet ===
+
== Enheter ==
 
 
<code>
 
bitraf/device/1/value
 
</code>
 
  
== Enheter ==
+
Diverse enheter som vi har lagd.
  
''Denne typen er eksperimentell.''
+
=== boxy* ===
  
<code>
+
Boxy-boksene er en del av døråpnersystemet til Bitraf. De er raspberry pi-baserte bokser som åpner sperren i døren når de skal åpnes.
bitraf/device/1/value
 
</code>
 
  
=== boxy2 ===
+
Per juni 2018 har vi tre stykker:
  
Døråpner i 2.
+
* boxy2 som åpner ytterdøren og døren til laben
 +
* boxy3 som åpner dørene i 3., både døren til workshop-området og kontoområdet.
 +
* boxy4 som åpner kontorene i 4. etasje.
  
=== boxy4 ===
+
I tillegg finnes <tt>singlebutton</tt> som er enkeltstående knapper som sender meldinger på MQTT. Meldingene brukes å åpne døren hvor knappen er montert.
  
Døråpner i 4.
+
Kildekoden for singlebutton: https://github.com/bitraf/bitraf-iot/tree/master/singlebutton
  
 
=== arduino-button-box ===
 
=== arduino-button-box ===
Linje 80: Linje 106:
 
Kildekode: https://github.com/bitraf/bitraf-iot/tree/master/arduino-button-box
 
Kildekode: https://github.com/bitraf/bitraf-iot/tree/master/arduino-button-box
  
[[Category:Automasjon]][[Category:Arduino]]
+
[[Category:Automasjon]]
 +
[[Category:Arduino]]
 +
[[Category:IT_tjenester]]
 +
[[Category:Nettverk]]

Nåværende revisjon fra 21. jun. 2018 kl. 07:55

Bitraf IoT er en gruppe med folk som synes "internet of things" er spennende og vil lage IoT-ting for Bitraf

I dag (oktober 2016) har vi to typer ting som er satt opp: dørsystemet og temperatur-/fuktighetsmålinger på Bitraf.

MQTT

Bitrafs MQTT-tjener er åpen og tilgjengelig for alle medlemmer:

Host
mqtt.bitraf.no
Plain-port
1883
TLS-port
8883
Websockets (med TLS)
9001

Det meste er basert på MQTT. For å se på trafikken kan du bruke nettleseren eller en kommandolinjeklient fra f.eks. Mosquitto. Bitrafs produksjonsoppsett bruker bitraf/# (eller /bitraf/#), mens alle eksperimenter bruker public/# som topic.

Nettleserklienten er installert på https://mqtt.bitraf.no/web.

For å se alle meldinger med Mosquittos kommandolinjeklient, bruk denne kommandoen:

mosquitto_sub -h mqtt.bitraf.no -v \
 -t bitraf/# -t /bitraf/# \
 -t /public/# -t public/# 

MQTT-stil

MQTT-protokollen spesifiserer lite av hvordan topics skal brukes så dette er vår stil. Denne delen er levende og bygges ut etterhvert som vi får mer erfaring.

  • Topics starter uten slash: foo, ikke /foo.
    • Ikke alle tjenestene oppdatert med denne standarden enda.
  • For testing og utvikling bruker public/#.
    • Dette området vil alltid være åpent for bruk.
    • Dette området oppfordrer vi medlemmer til å bruke så mye de vil. Bruk gjerne public/$brukernavn/ som prefiks.
  • For Bitrafs egne tjenester bruker vi bitraf/#. De fleste tjenestene er åpne og lesbare for alle for alle, mens noen vil være skrivebeskyttet og noen også lesebeskyttet.

Protokoller

Denne delen beskriver de topicene som de enhetene vi har lagd sender på.

Device

device er en meta-applikasjon for å beskrive enheten som er i bruk.

Prefiks: bitraf/device/$device-id.

$device-id er tilfeldig, men konsistent for hver enhet. F.eks. for ESP8266-baserte er det nyttig å bruke system_get_chip_id() for å generere en enhets-id.

Undertopics
/online: 1 hvis online, 0 ellers.
/name: Kort navn på enheten. Beregnet for mennesker, gjør det lettere å finne ut hvilken enhet som er hvilken.
/firmware: Tekstlig beskrivelse av hvilken versjon av firmwaren som kjøres. Kan f.eks. inneholde versjon, tidspunkt for kompilering og Git revisjon.
/ip: IPen til enheten.

Det er forventet at enheten bruker last will-meldingen på /online.

Temperatur

Prefiks: bitraf/temperature/$id

Temperaturen sendes på topicen $id/value som en tekststreng som er antall grader med desimaler, f.eks.:

bitraf/temperature/1/value

Luftfuktighet

Prefiks: bitraf/humidity/$id

Luftfuktigheten sendes på topicen $id/value som en tekststreng som er antall prosent luftfuktighet.

bitraf/humidity/1/value

Enheter

Diverse enheter som vi har lagd.

boxy*

Boxy-boksene er en del av døråpnersystemet til Bitraf. De er raspberry pi-baserte bokser som åpner sperren i døren når de skal åpnes.

Per juni 2018 har vi tre stykker:

  • boxy2 som åpner ytterdøren og døren til laben
  • boxy3 som åpner dørene i 3., både døren til workshop-området og kontoområdet.
  • boxy4 som åpner kontorene i 4. etasje.

I tillegg finnes singlebutton som er enkeltstående knapper som sender meldinger på MQTT. Meldingene brukes å åpne døren hvor knappen er montert.

Kildekoden for singlebutton: https://github.com/bitraf/bitraf-iot/tree/master/singlebutton

arduino-button-box

ESP8266/NodeMCU-basert boks som har knapper og temperatursensor.

Implementerer temperatur (id=1) og humidity (id=1).

Kildekode: https://github.com/bitraf/bitraf-iot/tree/master/arduino-button-box