Montering av en smart hjälm hemma

En hjälm har oerhört stor betydelse för en cyklist och för det mesta har vi sett att den har räddat människors liv. Om en person bär hjälm minskas risken för huvud- och hjärnskador i stor utsträckning. De vanliga hjälmarna som är lätt tillgängliga på marknaden garanterar inte 100% säkerhet på grund av ingen alkoholdetekteringsfunktion, ingen anmälan efter en olycka etc. De funktioner som jag har nämnt finns tillgängliga i Smarta hjälmar som mest tunga cyklister bär och det kostar runt $ 300-400. Med tanke på detta idag kommer jag att utforma en budgetvänlig Smart Hjälm som har funktioner som detektering av alkohol, olycksmeddelande, GPS-tracker etc. Den här hjälmen kan enkelt utformas hemma utan besvär om man har lite kunskap om kretsar och han / hon kan göra några mjukvarubaserade simuleringar. Följ proceduren nedan steg för steg för att slutföra detta projekt.

Hur man monterar grundläggande elektroniska komponenter med GSM-modul?

Det är bättre att rita en grov anteckningsbokskiss av hjälmen innan vi startar detta projekt eftersom det gör det möjligt för oss att bättre förstå placeringen av komponenter och att montera kretsen blir lätt för oss. Ett utmärkt tillvägagångssätt innan du påbörjar arbetet är att göra en komplett lista över alla komponenter för att spara tid och undvika risken att fastna mitt i projektet. En komplett lista över alla komponenter som är lätt tillgängliga på marknaden ges nedan:

Steg 1: Komponenter som används (hårdvara)

Steg 2: Komponenter som används (programvara)

Steg 3: Blockera diagram

För att visa hur hjälmen fungerar bra har jag gjort ett blockschema som visas nedan:

Steg 4: Arbetsprincip

Alla typer av Arduino-kort kan användas i projektet men jag föredrog Arduino Nano eftersom två av dem kommer att placeras inuti hjälmen och de kräver mindre utrymme. Jag har använt Alkoholsensor MQ-3 för att bestämma mängden alkohol som föraren har tagit och denna nivå anges med en Bi-Color-lysdiod. Om föraren har tagit en stor mängd alkohol tänds lysdioden Röd och SMS-meddelande skickas till numret som nämns i koden via en GPS. Om lysdioden tänds Gul det betyder att alkoholnivån är måttlig och om den vänder Grön det betyder att föraren inte är full. Därför säkerställer detta förarens säkerhet och risken för en olycka minimeras till stor del. De Ultraljudssensor kommer att placeras på baksidan av hjälmen och den fortsätter att beräkna avståndet mellan åkaren och fordonen bak. Om ett fordon närmar sig föraren med mycket hög hastighet kommer ultraljudssensorn att skicka en signal till Arduino för att utlösa summern och därmed kommer ryttaren att komma åt sidan och låta fordonet passera. Jag har inkluderat GPS-modul att skicka varningar till det specifika mobilnumret i händelse av en olycka. För att upptäcka olyckan ingår vibrationssensorn i kretsen som kan ställas in på en viss vibrationsnivå och ber omedelbart till GSM-modulen att skicka ett meddelande till vissa nummer som en hjälp. Två Arduino kommer att användas i detta projekt. En kommer att anslutas till ultraljudssensorn och alkoholsensorn och den andra kommer att anslutas till GSM-modulen och vibrationssensorn. Det kommer att finnas två separata kretsar som skulle placeras inuti hjälmen och de kommer att anslutas till samma batteri. Notera:Den variabla kondensatorn som finns i vibrationssensorn kommer att ställas in.

Steg 5: Montering av kretsen på Proteus

  1. När du har laddat ner och installerat Proteus-programvaran öppnar du den. Öppna ett nytt schema genom att klicka på ISISikonen på menyn.
  2. När det nya schemat visas klickar du på Pikonen på sidomenyn. Detta öppnar en ruta där du kan välja alla komponenter som ska användas.
  3. Skriv nu namnet på de komponenter som ska användas för att skapa kretsen. Komponenten visas i en lista på höger sida.
  4. På samma sätt, som ovan, sök i alla komponenter som ovan. De kommer att visas i Enheter Lista.

Steg 6: Kretsscheman

Montera din hårdvarukrets enligt kretsschemat nedan:

  1. Kretsschema nr 1:
  2. Kretsschema # 2:

Steg 7: Komma igång med Arduino

Om du inte känner till Arduino IDE innan, oroa dig inte för nedan kan du se tydliga steg för att bränna kod på mikrokontrollkortet med Arduino IDE. Du kan ladda ner den senaste versionen av Arduino IDE härifrån och följ stegen nedan:

  1. Anslut ditt Arduino Nano-kort till din bärbara dator och öppna kontrollpanelen. klicka på på kontrollpanelenHårdvara och ljud. Klicka nu påEnheter och skrivare.Här hittar du porten som ditt mikrokontrollkort är anslutet till. I mitt fall är det COM14men det är annorlunda på olika datorer.
  2. Vi måste inkludera ett bibliotek för att använda GSM-modulen. Gå till Skiss> Inkludera bibliotek> Lägg till .ZIP-bibliotek.
  3. Klicka på Verktyg-menyn och ställ in tavlan till Arduino Nano.
  4. I samma verktygsmeny ställer du in processorn på ATmega328P (Old Bootloader).
  5. I samma verktygsmeny ställer du in porten till det portnummer som du observerade tidigare i Enheter och skrivare.
  6. Ladda ner koden som bifogas nedan och klistra in den i din Arduino IDE. Klicka på ladda upp för att bränna koden på ditt mikrokontrollkort.

Steg 8: Kod för projektet

Koden är lite lång men den är väldigt enkel. Några av dess bitar förklaras nedan:

1. I början ingår bibliotek så att vi enkelt kan kommunicera med speciella kringutrustning.

#include "Adafruit_FONA.h" #include  SoftwareSerial fonaSS = SoftwareSerial (FONA_TX, FONA_RX); SoftwareSerial * fonaSerial = & fonaSS; Adafruit_FONA fona = Adafruit_FONA (FONA_RST);

2. Därefter definieras stift på Arduino nano som kommer att användas för att ansluta de externa sensorerna till mikrokontrollern. Dessa stift är ansvariga för in- och utmatning av data i mikrokontrollern.

#define FONA_RX 2 #define FONA_TX 3 #define FONA_RST 4 // vibrationssensor #define VS 10 #define R 2 #define Y 4 #define MQ3 A0 # define summer 9. #define triggerPin 7 // triggering on pin 7 #define echoPin 8 // echo on pin 8

3. Sedan initieras olika variabler som senare kommer att användas i beräkningsprocesserna under kodens körtid. En buffert görs också som kommer att användas med GSM-modulen.

int gasnivå; // detta är en stor buffert för svar char replybuffer [255]; uint8_t readline (char * buff, uint8_t maxbuff, uint16_t timeout = 0); uint8_t typ; int vs = 10; int shockVal = HÖG;

4. ogiltig installation ()är en funktion som bara körs en gång när mikrokontrollern slås på eller aktiveringsknappen trycks in. baudhastigheten ställs in i denna funktion som i grunden är hastigheten i bitar per sekund genom vilken mikrokontrollern kommunicerar med de externa sensorerna. Alla stift på Arduino initialiseras här för att de ska användas för att ta inmatning från sensorn eller skicka utdata till en annan enhet. GSM-modulen är också initierad i denna funktion.

ogiltig installation () {Serial.begin (9600); // vi startar seriekommunikation så att vi kan se avståndet på den seriella bildskärmen Serial.println ("Tech Ponders UltraSonic Sensor Tutorial"); pinMode (triggerPin, OUTPUT); // definiera stift pinMode (echoPin, INPUT); pinMode (summer, OUTPUT); digitalWrite (summer, LOW); pinMode (MQ3, INPUT); pinMode (R, OUTPUT); pinMode (Y, OUTPUT); pinMode (vs, INPUT); medan (! Serial); // Serial.println (F ("FONA basic test")); // Serial.println (F ("Initierar .... (kan ta 3 sekunder)")); fonaSerial-> börja (4800); if (! fona.begin (* fonaSerial)) {// Serial.println (F ("Det gick inte att hitta FONA")); medan (1); } typ = fona.type (); // Serial.println (F ("FONA är OK")); // Serial.print (F ("Found")); switch (typ) {case FONA800L: // Serial.println (F ("FONA 800L")); ha sönder; fall FONA800H: // Serial.println (F ("FONA 800H")); ha sönder; fall FONA808_V1: // Serial.println (F ("FONA 808 (v1)")); ha sönder; fall FONA808_V2: // Serial.println (F ("FONA 808 (v2)")); ha sönder; fall FONA3G_A: // Serial.println (F ("FONA 3G (amerikansk)")); ha sönder; fall FONA3G_E: // Serial.println (F ("FONA 3G (europeisk)")); ha sönder; standard: // Serial.println (F ("???")); ha sönder; } // Skriv ut modul IMEI-nummer. char imei [15] = {0}; // MÅSTE använda en buffert med 16 tecken för IMEI! uint8_t imeiLen = fona.getIMEI (imei); if (imeiLen> 0) {// Serial.print ("Module IMEI:"); Serial.println (imei); }}

5. ogiltig slinga ()är en funktion som körs upprepade gånger i en slinga medan mikrokontrollern är påslagen. En kod skrivs för en ultraljudssensor att om den mäter ett avstånd mindre än ett specifikt värde, kommer den att skicka en signal till summern som kommer att användas för att meddela föraren att ett fordon närmar sig nära. Gassensorn är också integrerad här. Tre lysdioder används för att berätta att om föraren är mycket, delvis eller mindre berusad. Om grön lysdiod lyser betyder det att föraren är bra att gå. I slutet av denna funktion kallas en annan funktion viberationFun ().

void loop () {int varaktighet, distans; // Lägga till varaktighet och avstånd digitalWrite (triggerPin, HIGH); // utlöser vågfördröjningen (som att blinka en lysdiod) (10); digitalWrite (triggerPin, LOW); varaktighet = pulseIn (echoPin, HIGH); // en speciell funktion för att lyssna och vänta på vågavståndet = (varaktighet / 2) / 29.1; // omvandla numret till cm (om du vill ha tum, måste du ändra 29.1 med en lämplig nummerfördröjning (1000); Serial.print (avstånd); // skriva ut numren Serial.print ("cm"); / / och enheten Serial.println (""); // skriver bara ut till en ny rad om (avstånd <35) {digitalWrite (summer, HIGH); Serial.println ("Summer On");} digitalWrite (summer, LOW gasnivå = (analogRead (MQ3)); gasnivå = karta (gasnivå, 0,1023,0,255); om (gasnivå> 100 && gasnivå <= 300) {// gasnivå är större än 100 och mindre än 300 digitalWrite (R , LOW); // RÖD led är av _delay_ms (500); // fördröjning digitalWrite (Y, HIGH); // GUL led är på _delay_ms (500);} annars om (gasnivå> 300 && gasnivå <= 600) { // gasnivån är större än 300 och mindre än 600 digitalWrite (Y, LOW); // YELLOW led är av _delay_ms (500); digitalWrite (R, HIGH); // RED led är på} annat {digitalWrite (R, LOW ); // röd led är av digitalWrite (Y, LÅG); // GUL led är av} Serial.println (gasnivå); // utskriftsvärden på seriell bildskärm _delay_ms (100); viberationFun ();}

6. viberationFun ()är en funktion som kommer att upptäcka om cykeln kolliderade med ett annat föremål eller inte. Om den upptäcker någon kollision skickar den ett meddelande till de nummer som anges i koden. På detta sätt når nyheten om olyckan någon annan som kommer att vidta nödvändiga åtgärder för att rädda föraren.

ogiltig viberationFun () {shockVal = digitalRead (vs); int t = 0; char sendto [11] = "DITT NUMMER"; char sendto1 [11] = "DITT NUMMER 2"; char message [27] = "Olycka har upptäckts"; if (shockVal == HIGH || shockVal == 1) {if (t == 0) {Serial.println (shockVal); om (! fona.sendSMS (sendto, meddelande) &&! fona.sendSMS (sendto1, meddelande)) {Serial.println (F ("Misslyckades")); } annat {Serial.println (F ("Skickat!")); t = 1; } fördröjning (1000); if (! fona.sendSMS (sendto1, meddelande)) {Serial.println (F ("Misslyckades")); } annat {Serial.println (F ("Skickat!")); t = 1; }}} annat {t = 0; }}

Steg 9: Montera hårdvaran

Nu som vi känner till huvudanslutningarna och även hela projektets krets, låt oss gå vidare och börja göra hårdvaran för vårt projekt. En sak måste komma ihåg att kretsen måste vara kompakt och komponenterna måste placeras nära. Veroboard är det bättre alternativet jämfört med breadboard eftersom anslutningar lossnar på breadboard och kortslutning kan ske och breadboard har mer vikt jämfört med Veroboard. Kretsen på Veroboard kommer att vara väldigt liten så att den enkelt kan monteras inuti hjälmen.

  1. Ta en Veroboard och gnugga sidan med kopparbeläggningen med ett skrappapper.
  2. Placera nu komponenterna noggrant och tillräckligt nära så att kretsens storlek inte blir så stor.
  3. Anslut försiktigt med lödjärn. Om något misstag görs när du gör anslutningarna, försök att avlasta anslutningen och löd anslutningen ordentligt igen, men i slutändan måste anslutningen vara tät.
  4. När alla anslutningar är gjorda gör du ett kontinuitetstest. I elektronik är kontinuitetstestet kontrollen av en elektrisk krets för att kontrollera om strömmen flödar i önskad bana (att det med säkerhet är en total krets). Ett kontinuitetstest utförs genom att ställa in en liten spänning (kopplad i arrangemang med en LED eller uppståndelseskapande del, till exempel en piezoelektrisk högtalare) över det valda sättet.
  5. Om kontinuitetstestet klarar betyder det att kretsen är tillräckligt gjord enligt önskemål. Den är nu redo att testas.
  6. Anslut batteriet till kretsen.

Resten av kretsen kommer att placeras inuti hjälmen förutom ultraljudssensorn som kommer att monteras på baksidan av hjälmen för att upptäcka de fordon som kommer bakifrån. Lipo-batteri används i det här projektet eftersom det är ett mycket lätt batteri och även om föraren ska åka på en lång resa kan det ge bättre timing. Justera Lipo-batteriet inuti hjälmen eftersom det på grund av svåra väderförhållanden som regn kan leda till att kretsen går sönder.

Steg 10: Testning

Som nu monteras hårdvaran och koden laddas också upp till mikrokontrollen, låt oss gå igenom det sista steget och testa kretsen. Sitt på motorcykeln och sväng tryckknappen för att aktivera kretsen. Börja åka på din gata och be någon att närma sig dig i bilen med hög hastighet bakifrån. Du kommer att observera att summern börjar ringa och därefter bromsa i hög hastighet så att stora vibrationer kan uppstå. Så snart vibrationen inträffar skickas ett varningsmeddelande till mobilnumret som du nämnde i koden.

Rekommendationer

Detta är ett mycket intressant projekt, det finns flera alternativ som kan ingå ytterligare i det med hjälp av några grundläggande elektroniska komponenter. Några av dem illustreras nedan:

  1. Du kan använda Raspberry Pi med Pi-kameramodul och justera dess position på ett sådant sätt att du kan observera projektionen på hjälmens spegel. På detta sätt skulle du kunna få en bakifrån av vägen och det skulle vara till stor hjälp vid omkörning etc.
  2. Relämodulen kan anslutas med motorcykelns tändningslås och den kan ställas in så att tändningen vänder endast när föraren har använt hjälmen.
  3. Små solpaneler kan också fästas på hjälmens ovansida och baksida så att behovet av batteriet minskar och kretsens vikt ytterligare kan minskas inuti hjälmen.
Facebook Twitter Google Plus Pinterest