You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Hva du finner her og generell info

Her kan du lese om veldig enkel oppkobling av bluetooth (og BLE) for de HC-06 modulene dere har. HM-10 modulene (BLE) som dere kan få kobles opp akkurat likt (de har seks bein, men vi bruker bare de fire som har samme navn som HC-06 modulene). All kode vi bruker er lik for begge enhetene.

For å forenkle kommunikasjonen litt har vi lagd et eget bibliotek for å forenkle mottak av beskjeder fra bluetooth.

PLab bibliotek

GitHub kontoen vår, under plab-library, kan dere finne PLabBT, et bibliotek for å forenkle mottak av beskjeder. Dette arver fra Arduinos SoftwareSerial, og har derfor de samme begrensningene som det. Hovedbegrensningen vi har merka, er nok bare at om du bruker flere enheter som bruker det, kan du bare motta data fra en av dem. Så lenge du bare kobler til en bluetooth enhet tror vi ikke dette har noe å si.

Ting å legge merke til ved bruk:

  • Buffer størrelsen (valgfritt constructor argument) vil avgjøre hvor mange tegn som kan være i hver beskjed, og mye minne du bruker. Arduino er veldig begrenset på ressurser, så det er en ting verdt å merke seg (altså, ikke sett denne til mange tusen). Standardinnstillingen er 50.
  • available() vil ikke returnere annet enn 0 før et linjeskift er tilgjengelig. Når det er en beskjed tilgjengelig vil denne returnere antall tegn INKLUSIVE tekstavslutningsbokstaven ('\0' eller 0 om du vil). Dette kan brukes til å dynamisk allokere nøyaktig riktig størrelse på tekststrengen du vil lese.
  • Ved integrasjon med appen vår (beskrives senere), bruk println() for å sende en beskjed; Appen vår forstår ikke dette var en hel beskjed før den mottar linjeskift ('\n').
  • Vi har lagt til en overloaded versjon av read() som tar inn en c-streng (char array/ char peker) og størrelse som argument. Hvis størrelsen er mindre enn tilgjengelige tegn, vil ingenting skje. Hvis den er like stor, eller større, vil den vedlagte c-strengen bli fylt med den mottatte beskjeden, og available() vil bli 0.
  • "Vanlig" read() vil fjerne ett tegn fra tilgjengelige tegn (available() vil bli 1 mindre).

Se eksempel 2 for å se det i bruk.

AT kommandoer

AT kommandoer trenger generelt å bare kjøres en gang. Etter de er kjørt lagres resultatet på chipen. Derfor fungerer det helt fint å bare bruke eksempel 1 under, og skrive AT kommandoene dere vil kjøre manuelt fra konsollvinduet.

Eksempel 1: Oppkobling og basis

Siden biblioteket vi bruker baserer seg på SoftwareSerial, gir vi først det mest grunnleggende eksempelet som kan gies med dette. Det er bare beregnet til å se i konsollvinduet alt som kommer inn fra enheten, og for å sende tekst til enheten. Dette kan brukes til for eksempel å sende AT kommandoer til enheten.

Oppkobling viser HC-05 enhet, men føttene er like som BLE enheten, og de fire tilkoblede føttene er like som HC-06 enheten du kan bruke.

Legg merke til en viktig detalj: Det som er RX i kode er TX på enheten, og motsatt. RX står for motta (Receive) og TX står for send (Transmit). Det du sender fra Arduino blir mottatt av enheten, og det du mottar på Arduino blir sendt fra enheten.

Koden for dette eksempelet er bare eksempelkoden for SoftwareSerial, og kan finnes her, eller i menyen under File->Examples->SoftwareSerial->SoftwareSerialExample. Er det noe problem med dette, prøv å endre hastigheten på kommunikasjonen til 9600.

Eksempel 2: Ekko fra Arduino

Kommer snart

  • No labels