Cum sa construiesti un sistem de avertizare in cazul unui accident rutier? – Smart Nation
In tutorialul de saptamana aceasta vreau sa va povestesc despre cum putem construi un sistem care ne avertizeaza atunci cand s-a produs un accident rutier.
Sistemul functioneaza dupa un mecanism foarte simplu: senzorul instalat pe masina masoara acceleratiile, iar in cazul unui accident, deceleratia brusca si totodată identifica situatia in care masina se rastoarna.
Pentru oricare din cazurile de mai sus, placa Arduino trimite automat un SMS catre o persoana prestabilita si in felul acesta anunta evenimentul petrecut.
Sistemul consta in trei componente esentiale: senzorul de acceleratie, placa Arduino si un shield GSM.
Daca vreti sa construiti acest sistem atunci va pot fi de mare folos urmatoarele coduri sursa:
Codul Arduino
>>cod adxl335
void setup(){
Serial.begin(9600);
}
void loop(){
float x = readAcc(0);
float y = readAcc(1);
float z = readAcc(2);
Serial.print(“x=”);
Serial.print(x);
Serial.print(” “);
Serial.print(“y=”);
Serial.print(y);
Serial.print(” “);
Serial.print(“z=”);
Serial.print(z);
Serial.println(” “);
}
float readAcc(int port){
int value=analogRead(port);
int miliVolts=map(value,0,1023,0,5000)-3300/2;
float acc=(float)miliVolts/360;
return acc;
}
Codul sursa care trimite SMS:
>> cod GSM
/*
SMS sender
This sketch, for the Arduino GSM shield,sends an SMS message
you enter in the serial monitor. Connect your Arduino with the
GSM shield and SIM card, open the serial monitor, and wait for
the “READY” message to appear in the monitor. Next, type a
message to send and press “return”. Make sure the serial
monitor is set to send a newline when you press return.
Circuit:
* GSM shield
* SIM card that can send SMS
created 25 Feb 2012
by Tom Igoe
This example is in the public domain.
http://arduino.cc/en/Tutorial/GSMExamplesSendSMS
*/
// Include the GSM library
#include
#define PINNUMBER “”
// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;
void setup()
{
// initialize serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.println(“SMS Messages Sender”);
// connection state
boolean notConnected = true;
// Start GSM shield
// If your SIM has PIN, pass it as a parameter of begin() in quotes
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
notConnected = false;
else
{
Serial.println(“Not connected”);
delay(1000);
}
}
Serial.println(“GSM initialized”);
}
void loop()
{
Serial.print(“Enter a mobile number: “);
char remoteNum[20]; // telephone number to send sms
readSerial(remoteNum);
Serial.println(remoteNum);
// sms text
Serial.print(“Now, enter SMS content: “);
char txtMsg[200];
readSerial(txtMsg);
Serial.println(“SENDING”);
Serial.println();
Serial.println(“Message:”);
Serial.println(txtMsg);
// send the message
sms.beginSMS(remoteNum);
sms.print(txtMsg);
sms.endSMS();
Serial.println(“\nCOMPLETE!\n”);
}
/*
Read input serial
*/
int readSerial(char result[])
{
int i = 0;
while(1)
{
while (Serial.available() > 0)
{
char inChar = Serial.read();
if (inChar == ‘\n’)
{
result[i] = ‘\0′;
Serial.flush();
return 0;
}
if(inChar!=’\r’)
{
result[i] = inChar;
i++;
}
}
}
}
Va invit sa urmariti cu atentie tutorialul, cu atat mai mult cu cat de aceasta data am pentru voi si o tema. Stim ca s-a produs un accident, dar nu stim unde. Cum facem sa aflam?
Smart Nation este platforma unde tehnologia va inspira pe voi toti. Sa va imaginati, sa inovati, sa creati!
Intra pe SmartNation.ro daca vrei sa fii informat in legatura cu noile gadget-uri, dar si pentru a putea afla cum functioneaza, ce fac si cum iti pot imbunatati viata de zi cu zi.