lpwan sigfox modem je komunikační modul, který umožňuje ...lpwan sigfox modem je komunikační...

11
LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje řídící obvod WiSOL SFM10R1, který pracuje na frekvenci 868 MHz a komunikuje s ostatními zařízeními pomocí sériové linky, tedy přes rozhraní UART. Samotná komunikace je řízena přes AT příkazy a je velmi jednoduchá. Tento model umožňuje použít napájecí napětí v rozsahu 1,8 až 3,6 Voltů. Co se týká odběru proudu, tak ten dosahuje při odesílání maximálně 65 mA a při příjmu 15 mA. Ale co je nejdůležitější, tak v režimu spánku je proudový odběr velký přibližně 2 uA při napětí 3,3 V a teplotě 25°C. Celý rozsah provozních teplot je pak od -30 do +85°C. Velkou výhodou je také velikost modulu, která je pouze 24,31 x 14,97 mm. Pro úspěšné propojení Sigfox modemu s Arduinem stačí zapojit celkem čtyři vodiče. Propojíme 3V3 s 3V3 Arduina, GND se zemí Arduina, RX s pinem D8 a TX s pinem D7. Pro piny RX a TX je možné použít také ostatní volné digitální piny, ale tuto volbu je nutné provést také na začátku programu. Pokud byste chtěli použít jinou desku než UNO, tak na deskách Mega a Mega 2560 je možné pro pin RX využít pouze tyto piny: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69). A na deskách Leonardo a Micro lze pro pin RX využít tyto piny: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI). A pro plnou funkčnost také samozřejmě připojíme přiloženou anténu ke konektoru na modulu.

Upload: others

Post on 24-Sep-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LPWAN Sigfox modem je komunikační modul, který umožňuje ...LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje

LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti

Sigfox. Tento modem obsahuje řídící obvod WiSOL SFM10R1, který pracuje na frekvenci 868

MHz a komunikuje s ostatními zařízeními pomocí sériové linky, tedy přes rozhraní UART.

Samotná komunikace je řízena přes AT příkazy a je velmi jednoduchá. Tento model umožňuje

použít napájecí napětí v rozsahu 1,8 až 3,6 Voltů. Co se týká odběru proudu, tak ten dosahuje

při odesílání maximálně 65 mA a při příjmu 15 mA. Ale co je nejdůležitější, tak v režimu

spánku je proudový odběr velký přibližně 2 uA při napětí 3,3 V a teplotě 25°C. Celý rozsah

provozních teplot je pak od -30 do +85°C. Velkou výhodou je také velikost modulu, která je

pouze 24,31 x 14,97 mm.

Pro úspěšné propojení Sigfox modemu s Arduinem stačí zapojit celkem čtyři vodiče. Propojíme

3V3 s 3V3 Arduina, GND se zemí Arduina, RX s pinem D8 a TX s pinem D7. Pro piny RX a

TX je možné použít také ostatní volné digitální piny, ale tuto volbu je nutné provést také na

začátku programu. Pokud byste chtěli použít jinou desku než UNO, tak na deskách Mega a

Mega 2560 je možné pro pin RX využít pouze tyto piny: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53,

A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69). A na deskách

Leonardo a Micro lze pro pin RX využít tyto piny: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16

(MOSI). A pro plnou funkčnost také samozřejmě připojíme přiloženou anténu ke konektoru na

modulu.

Page 2: LPWAN Sigfox modem je komunikační modul, který umožňuje ...LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje

Pro zprovoznění komunikace našeho Sigfox modemu se sítí je potřeba udělat následující kroky.

Jako první si otevřeme webové stránky https://backend.lpwan.cz/login/ a zde klikneme

v pravém horním rohu na tlačítko "Registrace uživatele".

Page 3: LPWAN Sigfox modem je komunikační modul, který umožňuje ...LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje

Na této stránce vyplníme všechny potřebné údaje a tím dokončíme registraci na stránce

LPWAN.

Page 4: LPWAN Sigfox modem je komunikační modul, který umožňuje ...LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje

V dalším kroku si přidáme náš Sigfox modem. Ten obsahuje na svém balení vytištěné dva

důležité údaje – ID a PAC. Po kliknutí na tlačítko "Přidat zařízení" tyto dva údaje napíšeme do

formuláře a potvrdíme nabídku tlačítkem "Registrovat".

Page 5: LPWAN Sigfox modem je komunikační modul, který umožňuje ...LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje

V tuto chvíli tedy máme zaregistrované zařízení a můžeme zkontrolovat emailovou schránku,

kterou jsme uvedli při registraci. Na ní budeme mít během chvíle email ze stránek Sigfox, který

obsahuje odkaz na nastavení hesla pro Sigfox stránky. Zde je vyžadováno poměrně silné heslo,

které musí mít alespoň 8 znaků, mezi kterými je alespoň 1 malé písmeno, 1 velké písmeno, 1

číslovka a jeden speciální symbol (např. @#$).

Po vyplnění tohoto hesla proběhne přesměrování do portálu Sigfox, kde po souhlasu

s podmínkami použití uvidíme námi zaregistrované zařízení, které ale zatím bude bez signálu.

Page 6: LPWAN Sigfox modem je komunikační modul, který umožňuje ...LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje

Pro ověření očekávané síly signálu se můžeme podívat na mapu pokrytí sítí Sigfox. Na tu se

dostaneme tak, že klikneme v levém horním rohu na logo Sigfox a na nově otevřené stránce

klikneme vlevo na odkaz Service map. Na nově otevřené mapě je ještě důležité přepnout pohled

na Českou republiku – pro přepnutí si otevřeme nabídku po pravé straně a zvolíme

SIGFOX_Czech_Rep_Simplecell. Nyní tedy vidíme různými barvami pokrytí signálu sítě

Sigfox, kdy modrá označuje jeden vysílač, zelená dva vysílače a červená nejlepší pokrytí díky

třem a více vysílačům.

Pro otestování funkce a zaslání první zprávy do sítě Sigfox slouží první ukázkový program. Ten

obsahuje na svém začátku připojení potřebné knihovny SoftwareSerial, nastavení

propojovacích pinů RX a TX a inicializaci softwarové sériové linky z knihovny.

V podprogramu setup si nastavíme nejprve sériovou linku pro komunikaci mezi počítačem a

Arduinem a následně softwarovou sériovou linku pro komunikaci mezi Arduinem a Sigfox

modemem. V nekonečné smyčce loop se pak nachází jednoduchý kód, který nám slouží jako

komunikační most mezi použitými sériovými linkami. Pokud tedy přijde na jednu ze sériových

linek nějaký znak, zapíšeme ho na druhou sériovou linku.

kopírovat do schránky// Testování komunikace pomocí softwarové sériové

linky

// připojení potřebné knihovny

#include <SoftwareSerial.h>

// nastavení projojovacích pinů

#define TX 7

#define RX 8

// inicializace softwarové sériové linky z knihovny

SoftwareSerial Sigfox(RX, TX);

void setup() {

Page 7: LPWAN Sigfox modem je komunikační modul, který umožňuje ...LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje

// zahájení komunikace po sériové lince rychlostí 9600 baud

Serial.begin(9600);

// zahájení komunikace po softwarové sériové lince rychlostí 9600 baud

Sigfox.begin(9600);

}

void loop() {

// když dostaneme nějaké znaky na softwarové sériové lince,

// odešleme je do počítače

if (Sigfox.available()) {

Serial.write(Sigfox.read());

}

// když dostaneme nějaké znaky na počítačové sériové lince,

// odešleme je do Sigfox modulu

if (Serial.available()) {

Sigfox.write(Serial.read());

}

}

Po nahrání programu do Arduino desky s připojeným Sigfox modemem si otevřeme Sériový

monitor s nastavenou rychlostí 9600 baudů a odesíláním znaků „Návrat vozíku (CR)“. Nyní si

můžeme zkusit poslat testovací příkaz „AT“, na který bychom měli dostat odpověď „OK“.

Pokud se tak stalo, máme správně propojený a napájený modul (v opačném případě bude

pravděpodobně přehozená dvojice RX/TX). Jako další krok si můžeme zkusit odeslat první

testovací zprávu do Sigfox sítě. Ta vypadá například takto „AT$SF=A123“. Znaky A123 jsou

hexadecimální čísla a dekadicky by tedy toto číslo odpovídalo číslu 41251. Po odeslání této

druhé zprávy si nyní můžeme zkontrolovat na stránkách Sigfox, jestli se nám v seznamu

zařízení změní údaje o našem modemu – hlavně průměrná síla signálu (Rssi) a poslední

komunikace (Last seen). Pokud se tyto údaje neaktualizují, je možné, že máte slabý signál.

Zkuste přesunout anténu modemu co nejblíže oknu, případně ven, a znovu poslat testovací

zprávu. Po úspěšném testování modemu Sigfox si nyní ukážeme, jak využít Arduino pro

posílání tří čísel na server Thingspeak.

Pokud neznáte server Thingspeak, tak se jedná o zajímavý web, který nám umožňuje nahrávat

a ukládat různá data do takzvaných kanálů a následně si je prohlížet v grafech. Více informací

včetně toho, jak si založit účet, naleznete v tomto článku.

Druhý ukázkový program je rozšířením prvního. Přibyl zde podprogram odesliData, který

obsahuje vytvoření, zpracování a zaslání zprávy modemem Sigfox. Na jeho začátku si

vytvoříme zprávu o 12 znacích (maximální velikost) a poté tři číselné proměnné. Do těchto

proměnných si pro ukázku nahrajeme analogovou hodnotu z různých analogových pinů

Arduina. Následně si pomocí funkce sprintf převedeme všechny tři čísla do hexadecimálního

tvaru a uložíme je za sebou do zprávy(každá číslice má 4 hexa znaky, tedy maximum FFFF =

65535). V poslední kroku si pro informaci vytiskneme posílané číslice a zprávu do počítače,

následně vytiskneme zprávu do Sigfox modulu a vyčkáme 1 vteřinu. Tento podprogram je pro

ukázku volán poprvé na konci podprogramu setup a následně každých 15 minut v nekonečné

smyčce loop. Zmíněný interval je kontrolován tak, že zkontrolujeme počet vteřin od zapnutí

Arduina a toto číslo vydělíme 900 (900 vteřin = 15 minut). Pokud je výsledek po dělení rovný

nule, zavoláme podprogram pro odeslání dat.

Page 8: LPWAN Sigfox modem je komunikační modul, který umožňuje ...LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje

#include <SoftwareSerial.h>

// nastavení propojovacích pinů

#define TX 7

#define RX 8

// inicializace softwarové sériové linky z knihovny

SoftwareSerial Sigfox(RX, TX);

void setup() {

// zahájení komunikace po sériové lince rychlostí 9600 baud

Serial.begin(9600);

// zahájení komunikace po softwarové sériové lince rychlostí 9600 baud

Sigfox.begin(9600);

delay(1000);

// odeslání první zprávy

odesliData();

}

void loop() {

// když dostaneme nějaké znaky na softwarové sériové lince,

// odešleme je do počítače

if (Sigfox.available()) {

Serial.write(Sigfox.read());

}

// když dostaneme nějaké znaky na počítačové sériové lince,

// odešleme je do Sigfox modulu

if (Serial.available()) {

Sigfox.write(Serial.read());

}

// každých 15 minut se provede následující odeslání dat

// (15 minut je získáno tak, že načteme počet vteřin od

// zapnutí napájení, zjistíme zbytek po dělení 900 vteřinami

// a pokud je tento zbytek 0, máme 15 minutový interval)

if ((millis()/1000 % 900) == 0) {

odesliData();

}

}

void odesliData() {

// vytvoření proměnné typu char o velikosti 4 znaků,

// do 4 hexa znaků lze uložit číslo typu uint

// (velikost 0 až 65535)

char zprava[12];

// vytvoření proměnné typu unsigned integer a načtení hodnoty A0

unsigned int cislo1 = analogRead(A0);

unsigned int cislo2 = analogRead(A1);

unsigned int cislo3 = analogRead(A2);

// převod načteného čísla na hexadecimální tvar o 4 znacích

sprintf(zprava, "%04X%04X%04X", cislo1, cislo2, cislo3);

Serial.print("Odeslani dat do Sigfox site, odesilam: ");

Serial.print(cislo1);

Serial.print(", ");

Serial.print(cislo2);

Serial.print(", ");

Serial.print(cislo3);

Serial.print(", hexa tvar: ");

Serial.println(zprava);

Sigfox.print("AT$SF=");

Sigfox.println(zprava);

delay(1000);

}

Page 9: LPWAN Sigfox modem je komunikační modul, který umožňuje ...LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje

Po nahrání programu do Arduino desky s připojeným Sigfox modemem je nutné nastavit

správně zpracování dat na straně Sigfox webu, které se provádí v menu Callback. Do tohoto

menu se dostaneme tak, že na stránkách Sigfox si klikneme na menu „Device Type“, zde u

našeho modemu klikneme na jeho „Device type“ (LPWAN.cz Arduino-shop kit) a následně

v levé nabídce klikneme na položku „Callbacks“. Pro vytvoření nového Callbacku klikneme po

pravě straně na tlačítko „New“ a zvolíme možnost „Custom callback“. V otevřeném formuláři

je nutné nastavit dešifrování zaslané zprávy (Custom payload config), webovou adresu pro

odeslání informací na server Thingspeak (Url pattern) a správný typ odeslání dat (Use HTTP

Method). Já jsem v testovacím programu zvolil takový tvar dat, že se odesílají tři čísla o velikost

16 bitů (4 bajty = znaky) za sebou, proto tedy do řádku „Custom payload config“ napíšu tento

výraz:

„cislo1::uint:16 cislo2::uint:16 cislo3::uint:16“.

Aby server Thingspeak správně rozeznal všechny údaje, je nutné do řádku „Url pattern“ napsat

tento výraz:

„http://api.thingspeak.com/update?api_key=<ZAPIS_API_KLIC>&field1={device}&fiel

d2={customData#cislo1}&field3={customData#cislo2}&field4={customData#cislo3}&fiel

d5={rssi}&field6={seqNumber}“.

Po vložení zápisového klíče se tedy do prvního pole zapíše ID vašeho zařízení, do druhého až

čtvrtého pole posílané číselné údaje, do pátého pole velikost signálu a do posledního pole číslo

posílané zprávy. Posledním údajem, který musíme nastavit u Callbacku, je typ odesláných dat,

kdy je nutné nastavit metodu „POST“. Po vyplnění těchto údajů potvrdíme volbu tlačítkem OK.

Nyní je ještě nutné shodně nastavit očekávaná pole na stránce Thingspeak, ukázka na obrázku

níže.

Page 10: LPWAN Sigfox modem je komunikační modul, který umožňuje ...LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje
Page 11: LPWAN Sigfox modem je komunikační modul, který umožňuje ...LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje

Pokud jste všechny kroky provedli správně, měli byste během chvíle vidět ve vašem kanále

Thingspeak nové údaje zaslané z modemu Sigfox, přičemž si můžete ověřit na výstupu

sériového monitoru, jestli proběhla konverze údajů do hexadecimálního tvaru a nazpět

v pořádku.

LPWAN Sigfox modem je velice zajímavým IOT modulem, který umožňuje posílat různé údaje

pomocí Arduina či třeba Raspberry Pi přes komunikační síť Sigfox. Velkou výhodou je zde

například velmi dobré pokrytí signálem v České republice a roční licence pro používání v ceně.

Měli bychom ale pomatovat na jistá omezení, která se týkají provozu těchto zařízení. Jedním

z omezení je velikost zprávy, která může obsahovat maximálně 12 bajtů a také počet

odeslaných zpráv, který je omezen na 140 zpráv na den (proto jsem zvolil interval 15 minut

mezi zprávami). Příklad použití modemu Sigfox vidím v různých meteostanicích, senzorech

pohybu či obecně bezpečnostních systémech, které jsou umístěny mimo dosah WiFi anebo je

pro nás zbytečné investovat do GSM modulu a platit za SIM kartu. Více informací naleznete

na stránkách LPWAN.cz