Global System for Mobile Comunication

Slides:



Advertisements
Presentazioni simili
1 Automazione dellalgoritmo ricorsivo di permutazione eseguita da Mariano Melchiorri.
Advertisements

Uso avanzato di C.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Selezione - approfondimento
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
1^ esercizio Selezionare i motori (o altre periferiche di uscita) collegati alle porte A e C e, dopo un'attesa di 5 secondi, spegnere i motori A e C :
APPUNTI SUL LINGUAGGIO C
Selezione (=scelta) con “if-else”
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
I File.
Piattaforma Arduino Arduino uno Arduino Mega.
void binario(int n); …………………
Creazione progetto in C++/DEV
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
ARDUINO Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto.
ARDUINO Duemilanove Parte_4 Arduino e Processing
Per questo organizza un corso di Arduino per tutti i soci Amon e GMS.
Programmazione in linguaggio C
Linguaggio Arduino: Struttura di un programma
ARDUINO Duemilanove Parte_2 Laboratorio
#include void main() { int a,b,c,; float s, x,x1,x2,delta,alfa,beta; int num[3]; int i; printf("La forma classica dell'equazione di 2° grado è: a*x^2+b*x+c=0\n.
ARDUINO Duemilanove Parte_5 Arduino e PHP
Arduino: introduzione alla programmazione
arduino: dalla teoria alla pratica
arduino: dalla teoria alla pratica
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
SENSORI OTTICI - FOTORESISTENZE
Hardware necessario Una board Intel galileo Un alimentatore Dc 7-15 v
Progetti con arduino e pic.  Il trasduttore è analogico  Trasforma la temperatura in tensione secondo la relazione V millivolts =10*t celsius Essendo.
Linux, Android e Internet of Things
Comunicare con Arduino
Hands-On Arduino Come collegare i sensori ad Arduino P. Perego- Politecnico di Milano AA 2010/2011 Facoltà del Design - Politecnico di Milano 3.o anno.
ISTITUTO TECNICO – SETTORE TECNOLOGICO
Reti Mobili Ad Hoc e di Sensori Andrea De Salve. COS'È ARDUINO ? Piattaforma Open-Source per il Physical Computing basata su Microcontrollore Arduino.
Sensori analogici e digitali per la misura di
Arduino uno Introduzione.
Progetto Parcheggio intelligente
Scheda ethernet di arduino
Python per Raspberry Introduzione.
7. Strutture di controllo Ing. Simona Colucci
Condizioni decisionali
I2c.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
CICLO DO – WHILE LINGUAGGIO C.
istalliamo l’ambiente di sviluppo - ide
mBlock Un modo semplice e innovativo per programmare Arduino
Interrupt Arduino.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Alberi n-ary Lezioni di C.
APPUNTI SUL LINGUAGGIO C
Gestione di un banco di magliette
comprensione e modifica di codice
Maker_INO Lezione Quarta Trasduttori e Sensori Digitali
comprensione e modifica di codice
Condizioni decisionali
Lezione Seconda Primi passi di programmazione
Processi decisionali e funzioni di controllo
UNIT 12 INTERFACCIA SERIALE.
Prof.ri Ponte Vincenzo Ovazza Sergio
Unità 1 Programmi base.
Condizioni decisionali
Motori Passo-Passo (step)
Lezione Terza Primi passi di programmazione
Dalla programmazione tradizionale al paradigma OO
Progettiamo un robot Prof.ri Ponte Vincenzo Ovazza Sergio
Ricerca 01/08/2019 package.
Comunicazioni sincronizzate: I2c SPI
TCS230 Sensore di colore.
Transcript della presentazione:

Global System for Mobile Comunication GSM Global System for Mobile Comunication

GSM è stato curato da un gruppo francese ed è un acronimo di Groupe Spécial Mobile È in continua evoluzione ed attualmente è molto usato È impiegato nella comunicazione mobile vocale ed SMS Non mancano utilizzi anche su internet

Struttura di una rete GSM Da wikipedia

Collegamento con Arduino UNO

Controllo di un led con GSM /* ----------------------------------------------------------------------------------- Accende e spegne un LED a secondo dell'SMS inviato: ON => Accende il LED OFF => Spegne il LED STAUS => Restituisce lo stato del led Altro => Messaggio di errore sul Serial Monitor BISOGNA SCRIVERE ON OPPURE OFF su SMS ---------------------------------------------------------------------------------- */ #include "SIM900.h" #include <SoftwareSerial.h> // necessaria alla libreria gsm.h richiamata in sms.h #include "sms.h" // Libreria per la gestione degli SMS SMSGSM sms; int led = 10; int numdata; boolean started=false; char smsbuffer[160]; char Mittente[20]; void setup() { Serial.begin(9600); Serial.println("ESEMPIO INVIO/RICEZIONE SMS"); pinMode(led, OUTPUT); digitalWrite(led, LOW); if ( gsm.begin(2400) ) Serial.println("STATUS Modulo GSM = PRONTO"); started=true; } else Serial.println("STATUS Modulo GSM = INATTIVO"); }; boolean SerialRead(char s[]) int i=0; if (Serial.available() > 0) while (Serial.available() > 0) s[i]=Serial.read(); delay(10); i++; } }s[i]='\0'; return (i!=0);} void loop() { char inSerial[50]; char position; if (started) position = sms.IsSMSPresent(SMS_ALL); // Valore da 1..20 if (position) // Leggo il messaggio SMS e stabilisco chi sia il mittente sms.GetSMS(position, Mittente, smsbuffer, 160); Serial.print("Comando Ricevuto [tel. "+String(Mittente)+String("]: ") + String(smsbuffer)); if (strcmp(smsbuffer,"ON")==0) digitalWrite(led, HIGH); // Accende il LED impostando il voltaggio a HIGH Serial.println(" => Accendo il LED"); } else if (strcmp(smsbuffer,"OFF")==0) digitalWrite(led, LOW); // Spengo il LED impostando il voltaggio a LOW Serial.println(" => Spengo il LED"); else if (strcmp(smsbuffer,"STATUS")==0) if (digitalRead(led)==HIGH) sms.SendSMS(Mittente, "STATUS: LED Acceso"); Serial.println(" => il LED e' Acceso"); else sms.SendSMS(Mittente, "STATUS: LED Spento"); Serial.println(" => il LED e' Spento"); Serial.println(" => non riconosciuto!"); sms.DeleteSMS(position); delay(3000);};

Il programma precedente permette l’accensione e lo spegnimento di un led da remoto. Se su SMS si scrive anche STATUS, la scheda GSM restituisce lo il livello logico di un pin a scelta STATUS non è però una parola che fa parte della sintassi; Il programma successivo, invia delle informazioni su richiesta. Per questo programma è stato progettato un I2c nel caso in cui un solo arduino uno avesse troppa memoria impegnata È stato previsto un arduino master che invia le informazioni ad uno slave che passa il tutto alla scheda GSM Tutto ciò è stato realizzato perché sembra che arduino mega non resce a gestire la scheda GSM

Programma I2C + GSM #include<Wire.h> int x; #include "SIM900.h" #include <SoftwareSerial.h> #include "sms.h" SMSGSM sms; int led = 13; int numdata; boolean started=false; char smsbuffer[160]; char Mittente[20]; void setup() {Serial.begin(9600); Wire.begin(9); Wire.onReceive(receiveEvent); // put your setup code here, to run once: if ( gsm.begin(2400) ) { Serial.println("STATUS Modulo GSM = PRONTO"); started=true; } else Serial.println("STATUS Modulo GSM = INATTIVO"); }; boolean SerialRead(char s[]) int i=0; if (Serial.available() > 0) while (Serial.available() > 0) s[i]=Serial.read(); delay(10); i++; s[i]='\0'; // Metto il terminatore di stringa return (i!=0); void receiveEvent(int bytes) { x = Wire.read(); Serial.println(x);} void loop() { void receiveEvent(); char inSerial[50]; char position; if (started) { position = sms.IsSMSPresent(SMS_ALL); // Valore da 1..20 if (position) // Leggo il messaggio SMS e stabilisco chi sia il mittente sms.GetSMS(position, Mittente, smsbuffer, 160); Serial.print("Comando Ricevuto [tel. "+String(Mittente)+String("]: ") + String(smsbuffer)); if (strcmp(smsbuffer,"LIBERO?")==0) if (x>1) sms.SendSMS(Mittente, "Il parcheggio è libero e sei il benvenuto"); // restituisce true se invia l'SMS Serial.println(" => il LED e' Acceso"); } else if(x<1) sms.SendSMS(Mittente, "Ci dispiace ci sono pochi posti...prova se sei nelle vicinanze"); // restituisce true se invia l'SMS Serial.println(" => il LED e' Spento"); else Serial.println(" => non riconosciuto!"); sms.DeleteSMS(position); // Elimina l'SMS appena analizzato delay(3000);