Analiza koda
Analiza koda
Analizirajmo kod:
Naredba include učitava biblioteke potrebne za rad senzora.ArduinoHttpClient biblioteka omogućuje Arduinu interakciju s web poslužiteljima pomoću HTTP-a i WebSocketa. Biblioteka WiFi101 omogućuje bežičnu vezu s internetom i kriptografsku provjeru autentičnosti.

U redcima 13. i 14. spominju se privatne informacije: identifikacija mreže i lozinka za pristup. Iz tog razloga, SECRET_SSID i SECRET_PASS varijable su postavljene u tajnu karticu (trebali biste napisati naredbu #uključiti "arduino_secrets.h" u redak 10; naredba će se sakriti odmah nakon pisanja). Zatim definirajte vrijednosti varijabli u tajnoj kartici:

U ovom trenutku, uvedimo dweet.io, besplatnu uslugu slanja poruka i upozorenja za Internet stvari. Dweet.io vam omogućuje jednostavno objavljivanje i pretplatu na podatke bez postavljanja ili prijave.
Redak 16 dodjeljuje poslužiteljsku adresu (to je dweet servisna adresa) poslužiteljuAddress, a u sljedećem retku postavili smo 80 na varijabilni port (port 80 je onaj koji se koristi za pregledavanje weba).

Redak 19 stvara klijenta koji se može povezati s navedenom internetskom adresom i portom. Redci 20 i 21 definiraju klijentski objekt i pohranjuju status Wi-Fi radija u varijablu statusa.

Redci 23 i 24 definiraju digitalne pinove 11 i 12 do echoPina, odnosno trigPina. Varijable trajanja i udaljenosti su definirane u redcima 27 i 28.

Redak 31 postavlja pin 12 (trigPin) da se ponaša kao izlazni kanal, a redak 32 postavlja pin 11 (echoPin) da djeluje kao ulazni kanal. Nakon postavljanja brzine prijenosa podataka za serijski prijenos podataka (redak 33), pokušavamo uspostaviti uspješnu vezu s WiFi mrežom (početna redak 37).
.

Nakon čišćenja pina 12 (redci 48), Redak 51 postavlja isti pin na visoku vrijednost za deset mikrosekundi, a redak 53 ponovno briše pin.
U retku 55 očitavamo vrijednost iz digitalnog pin-a 11 (echoPin) i pohranjujemo je u promjenjivo trajanje. U retku 57 izračunavamo udaljenost kao umnožak trajanja i brzine zvuka, podijeljen s dva (jer za primanje vrijednosti zvuk treba ići i natrag). Nakon toga rezultat šaljemo na serijski port (redci 59 do 61).

Ove retke spajaju put za POST poruku koja će postaviti vrijednost senzora na uslugu dweet.io.[1]
Dweet.io zahtijeva da svaka objavljena usluga ima jedinstveni naziv. Time se izbjegava zabuna između različitih objavljenih usluga. Najbolji način dodjele jedinstvenog naziva našoj usluzi je generiranje GUID-a (Global Unique Identifier) poput onog dodijeljenog u liniji 65 varijabli dweetName.
GUID je 128-bitni cijeli broj koji se koristi za identifikaciju resursa. Možemo generirati naš jedinstveni naziv s online GUID generator.

Ovi redci spajaju tijelo POST poruke.

Konačno, šaljemo obavijest serijskom portu i pošaljemo POST zahtjev servisu dweet.io. redak 80 definira kašnjenje od 60 sekundi do sljedećeg očitanja senzora.
Nakon što je kod sastavljen i prenesen na Arduino Uno WiFi ploču, serijski monitor počinje prikazivati aktivnost.
