Senzor IoT temperatura cu transmisie GSM
Construieste-ti sezorul tau de temperatura IoT cu stocare de date in CLOUD. In acest proiect folosim senzorul 1 Wire 18B20 de la Dallas/Maxim si shieldul GSM dual SIM a-gsmII sau shieldul GSM GNSS dual SIM b-gsmgnss de la itbrainpower.net. Serviciul CLOUD este oferit gratuit de Robofun.
Necesar timp: 30-45 minute – pregatire hardware si aproximativ 30-60 minutes partea de software si setarile contului cloud.
Nivel de dificultate: intermediar.
Materiale necesare hardware IOT
- Arduino UNO
- Shield GSM dual SIM a-gsmII v2.105 sau
- Shield GSM GNSS dual SIM b-gsmgnss v2.105
- senzor temperatura 1Wire 18B20
- rezistor 8.2kb
- SIM card 2G (GSM) – Orange, Vodafone sau Telekom [cu transmisie de date inclusa]
- ceva fire de conectare
- alimentator 7.5-16V [recomandat 12V], 1A
Despre shieldurile GSM folosite
In acest proiect am folosit, pentru exemplificare, shieldul a-gsmII v2.105, dar exact aceleasi setari hardware se aplica pentru b-gsmgnss v2.105 (interfetele si jumperii sunt plasati in aceleasi pozitii). Mai multe informatii:
documentatie a-gsmII
documentatie b-gsmgnss
Detaliere senzor 18DS20
Lipiti rezistorul de 8.2Kb intre terminalele Vdd (pin3) si DQ (pin2) ale 18B20 ca in imaginea de mai jos. Vezi referinta DALLAS/MAXIM 18B20.
Conectare hardware (toate componentele conectate in poza de mai jos)
Pasi de urmat:
- lipiti headere (pini) ARDUINO la shieldul GSM a-gsmII
- plug-in (conectati) sieldul a-gsmII in Arduino UNO
- plasati jumperul a-gsmII „Power selector” in pozitia „Vin” (referinta)
- inserati the SIM cardul in SIM socketul primar (slotul SIM aflat in proximitatea PCB). SIM-ul trebuie sa aiba dezactivata procedura de verificare a codului PIN (vezi cum se dezactiveaza verificarea PIN, aici).
- Lipiti rezistorul de 8.2Kb intre terminalele Vdd (pin3) si DQ (pin2) ale 18B20. Lipiti firele la terminalele senzorului 18B20.
- Conectati firele 18B20 dupa cum urmeaza: 18B20 Vdd (pin3) la Arduino 5V, 18B20 DQ (pin2) la Arduino D8 si 18B20 GND (pin1) la Arduino GND.
- conecteaza portul USB al Arduino UNO la PCul tau
Alimentarea senzorului IOT va fi efectuata centralizat, prin intermediul conectorului de alimentare Arduino UNO.
SOFTWARE
a. Downloadeaza itbpGSMclass library [beta]: „a-gsmII series software IoT REST support for ARDUINO” de la a-gsmII download section, sau „b-gsmgnss series software IoT REST support for ARDUINO” de la b-gsmgnss download section. Pentru a efectua download-ul clasei va trebui sa introduci IMEI-ul (se afla marcat pe modem, sau poate fi citit folosind comanda „AT+CGSN”) si adresa ta de email.
b. Expandati archiva si instalati clasa. Pe scurt, copiati folderul „itbpGSMclass” in „Arduino local user folder” [la mine se afla in: „C:\Users\dragos\Documents\Arduino\libraries”], dupa care restartati mediul Arduino. Mai multe detalii despre intalarea manala de librarii Arduino: Arduino library manual installation.
c. Creaza un folder numit „agsmII_temperature_Robofun_cloud_logger”.
d. Salveaza codul din linkul de mai jos sub denumirea de „agsmII_temperature_Robofun_cloud_logger.ino” in folderul creat mai devreme: Temperature GSM IOT main Arduino code
e. Setari variabile in „agsmII_temperature_Robofun_cloud_logger.ino”:
– tempToken [linia 19] – inlocuieste cu tokenul senzorului tau generat in cloud Robofun
– samplingPeriod [line 29]
f. Setari variabile in „itbpGSMclass library”:
– seteaza SERVER_ADDRESS si SERVER_PORT in itbpGPRSIPdefinition.h pentru ROBOFUN CLOUD, ca mai jos
#define SERVER_ADDRESS „iot.robofun.ro”
#define SERVER_PORT „80”
– seteaza APN, USERNAME si PASSWORD, corespunzator SIM-ului tau, in itbpGPRSIPdefinition.h (pentru ORANGE RO, de exemplu, APN este „INTERNET” sau „NET”, USERNAME este „” si PASSWORD este „”)
– alege modemul itbrainpower folosit in itbpGSMdefinition.h, in acest caz:
#define __itbpModem__ agsmII
– nu uita sa salvezi setarile! 😉
g. alte setari utile >> itbpGSMClassDebug, atDebug on / off si MAX_BUFFER_SIZE… in itbpGSMdefinition.h
CLOUD ROBOFUN. CONT NOU, SENZORI si SETARI
CLOUDul Robofun este un serviciu extrem de simplu de utilizat si este disponibil in mod gratuit. Acesta este disponibil la adresa: https://iot.robofun.ro. Nu intru in detalii – creaza un cont nou si defineste un senzor nou. In interfata senzor, fa scroll down pana la paragraful „TOKEN”.
Copiaza acest cod si foloseste-l pentru tempToken [linia 19 din „agsmII_…._logger.ino”]. Salveaza. Compileaza.
GATA!
Acest tutorial se bazeaza pe articolul „IoT temperature CLOUD logger with GSM and 1wire sensor howto” care a fost publicat original pe site-ul https://itbrainpower.net