Nettverk

Å koble Arduinoer sammen i nettverk kan gjøre det enklere å få Arduinoene til å samarbeide om å løse en oppgave.

Det finnes flere måter å koble opp i nettverk på. Her presenterer vi en måte som muliggjør kommunikasjon mellom bare to enheter, og en måte som muliggjør kommunikasjon mellom flere enheter.

Ringnettverk (seriell kommunikasjon)

Ringnettverk er en kjent metode å lage nettverk på. På datamaskinsiden er kanskje den mest kjente nettverksarkitekturen som snakker i ring token ring.

Vi har lagd en nettverksprotokoll som er enkel å bruke på Arduino som baserer seg på nettopp en slik ring. Maksimalt 255 adresseres med denne protokollen.

Ved å koble sammen Arduinoene med pinnene som brukes til hardware seriell UART kommunikasjon, pinne 0 og pinne 1, kan vi få lagd en ring med ett vilkårlig antall (mellom 2 og 255) Arduinoer. Det er da viktig at de har felles jord, slik at signalene tolkes riktig av alle Arduinoene.

For at Arduinoene skal kunne sende beskjeder til hverandre, må disse beskjedene gå i ring. Vi må da ha en måte å adressere Arduinoene på for at en Arduino skal gjenkjenne at en beskjed er til seg. Hvis den ikke er til seg, skal den bare sende beskjeden videre.

Eksempel på ett veldig enkelt nettverk av denne typen finnes i biblioteket vårt, under PLabExamples/examples/15.PLabInternet/. Alle disse tre kodesnuttene er en del av ett enkelt nettverk. Nettverket består her av 3 Arduinoer, hver med sin unike addresse og oppgave. Arduino_0 har tilkoblet en knapp, som når den trykkes på lyser en LED lokalt og sender signal via Arduino_1 til Arduino_2 som slår av og på ett lys.

Bluetooth, 1-til-1

I Bluetooth verdenen vi har biblioteker til, er det bare mulig med 1-til-1 kommunikasjon. I teorien kan det lages større nettverk med Bluetooth LE enheter, men det har ikke vi gjort tilgjengelig. Med vanlig Bluetooth er det kun 1-til-1 som er mulig.

Bluetooth

For å få til nettverk med Bluetooth, trenger vi en enhet som kan jobbe som master, og en som er slave. De enhetene som er tilgjengelige er HC-05 og HC-06. HC-05 er den desidert kraftigste av disse, og kan konfigureres til å jobbe som master. Eksempel som setter opp en HC-05 som master og parer den med en HC-06 enhet (eller annen Bluetooth enhet som implementerer SPP og er i slavemodus) er lagt ut under PLabExamples/examples/13.Bluetooth/HC05_Binding.

Etter dette eksempelet er kjørt, vil HC-05 enheten koble rett opp mot enheten den ble paret med med en gang den er nærme nok og den får strøm.

Bluetooth LE

Bluetooth LE trenger egentlig ikke paring, men en enhet må kjøre i central rolle og den andre i peripheral rolle. PLabExamples/examples/13.Bluetooth/HM10_ConnectAndStayConnected er et eksempel som kjøres for den enheten som skal ta central rolle, og får denne til å alltid koble sammen med den andre enheten når den er nærme nok og får strøm.

Etter fast sammenkobling

Når eksempelet er kjørt, og enhetene er koblet sammen, vil de alltid koble seg sammen. Da kan seriell kommunikasjon mellom dem opprettes ved å bruke SoftwareSerial, PLabBTSerial eller PLabBTCallback (mer info om PLabBT* under biblioteksiden). Dette blir da som å behandle data til/fra konsoll.

  • No labels