Kao glavna jedinica za ovaj projekt odabran je Arduino Pro mini. Arduino je odabran kako bi demonstracija mogućnosti bila što lakša.
Za mjerenje temperature koristimo digitalni senzor temperature i vlage DHT22 u kompaktnom kućištu koji je baziran na AM2302 senzoru. Kako bi senzor funkcionirao potrebno mu je dostaviti istosmjerni napon napajanja 3.3V do 5.5V, što možemo bez ikakvog problema napraviti sa samom Arduino razvojnom pločicom. Ovaj senzor može mjeriti temperaturu u rasponu od -40⁰ C do +80⁰ C te vlagu u rasponu od 0% do 100%.
Za komunikaciju sa Sigfox mrežom koristimo razvojnu pločica sa Sigfox kompatibilnim čipom (WSSFM10R1) EVBSFM10R s kojom je iznimno lako komunicirati preko UART sučelja, odnosno serijske komunikacije.
Spajanje hardwarea:
Spajanje na SigFox mrežu:
Kako bi naš EVBSFM10R mogao komunicirati s ostatkom svijeta, potrebno ga je spojiti na Sigfoxov backend. Kada spojimo EVBSFM10R na računalo, nužno je dobiti njegove podatke za spajanje na Sigfox mrežu, ali prije toga moramo instalirati FTDI upravljački program (osobno sam koristio CDM21224).
Podatke možemo dobiti na dva načina:
- pomoću SFM10R_AT_TEST programa na kojemu samo treba pritisnuti tipke 'Get DEVID' i 'Get PAC' koje će nam u terminalu u programu dati te podatke
- pomoću bilo kojeg serijskog monitora; kako bi dobili Device ID moramo upisati 'AT$I=10' a za PAC moramo upisati 'AT$I=11'.
Prikupljanje podataka:
Kako bi mogli slati bilo kakve podatke na Sigfox mrežu, moramo ih najprije prikupiti. S obzirom na to da je ovo jednostavna meteorološka stanica, prikupljat ćemo dvije vrste podataka: temperaturu i vlagu. Na Arduino platformi to je krajnje jednostavno pomoću DHT senzora i njegove biblioteke.
Slanje podataka:
Korištenje EVBSFM10R razvojne pločice u skladu sa Arduinom za slanje podataka na Sigfox mrežu je prilično jednostavno, pomoću biblioteke “SFDK“ (SigFox Dev Kit).
Sve biblioteke, primjeri i kodovi vezani uz projekt, mogu se pronaći na mom Githubu.
U sljedećem ćemo članku proći kroz obradu poruka pomoću PHP-a na vlastitom web serveru.