Montage eines Smart Helms zu Hause

Ein Helm hat für einen Biker eine immense Bedeutung und die meiste Zeit haben wir gesehen, dass er das Leben von Menschen gerettet hat. Wenn eine Person einen Helm trägt, ist das Risiko von Kopf- und Hirnverletzungen stark reduziert. Die gewöhnlichen Helme, die auf dem Markt leicht erhältlich sind, gewährleisten keine 100% ige Sicherheit, da keine Alkoholerkennungsfunktion, keine Benachrichtigung nach einem Unfall usw. vorhanden sind. Die von mir erwähnten Funktionen sind in der Intelligente Helme das tragen meistens schwere Biker und es kostet ungefähr $ 300-400. Um dies heute im Auge zu behalten, werde ich einen budgetfreundlichen Smart-Helm entwerfen, der Funktionen wie Alkoholerkennung, Unfallbenachrichtigung, GPS-Tracker usw. bietet. Dieser Helm kann problemlos zu Hause entworfen werden, wenn man etwas über Schaltkreise und ihn weiß Sie kann einige softwarebasierte Simulationen durchführen. Befolgen Sie die unten angegebenen Schritte Schritt für Schritt, um dieses Projekt abzuschließen.

Wie montiere ich grundlegende elektronische Komponenten mit einem GSM-Modul?

Es ist besser, vor Beginn dieses Projekts eine grobe Notizbuchskizze des Helms zu zeichnen, da wir so die Platzierung der Komponenten besser verstehen können und die Montage der Schaltung für uns einfach ist. Ein ausgezeichneter Ansatz vor Beginn der Arbeit besteht darin, eine vollständige Liste aller Komponenten zu erstellen, um Zeit zu sparen und die Möglichkeit zu vermeiden, mitten im Projekt hängen zu bleiben. Eine vollständige Liste aller Komponenten, die auf dem Markt leicht verfügbar sind, finden Sie unten:

Schritt 1: Verwendete Komponenten (Hardware)

Schritt 2: Verwendete Komponenten (Software)

Schritt 3: Blockdiagramm

Um die Funktionsweise des Helms gut zu demonstrieren, habe ich ein Blockdiagramm erstellt, das unten gezeigt wird:

Schritt 4: Arbeitsprinzip

Alle Arten von Arduino-Boards können im Projekt verwendet werden, aber ich habe Arduino Nano bevorzugt, da zwei davon im Helm platziert werden und weniger Platz benötigen. Ich habe den Alkoholsensor MQ-3 verwendet, um die vom Fahrer aufgenommene Alkoholmenge zu bestimmen. Dieser Wert wird mit einer zweifarbigen LED angezeigt. Wenn der Fahrer viel Alkohol getrunken hat, leuchtet die LED rot und eine SMS-Benachrichtigung wird über ein GPS an die im Code angegebene Nummer gesendet. Wenn sich die LED dreht Gelb es bedeutet, dass der Alkoholgehalt moderat ist und wenn es sich dreht Grün Dies bedeutet, dass der Fahrer nicht betrunken ist. Dies gewährleistet somit die Sicherheit des Fahrers und das Unfallrisiko wird weitgehend minimiert. Das Ultraschallsensor wird auf der Rückseite des Helms platziert und berechnet weiterhin den Abstand zwischen dem Fahrer und den Fahrzeugen auf der Rückseite. Wenn sich ein Fahrzeug dem Fahrer mit sehr hoher Geschwindigkeit nähert, sendet der Ultraschallsensor ein Signal an Arduino, um den Summer auszulösen, und daher wird der Fahrer beiseite treten und das Fahrzeug vorbeifahren lassen. Ich habe die aufgenommen GPS-Modul im Falle eines Unfalls Warnungen an die jeweilige Handynummer zu senden. Zur Erkennung des Unfalls ist der Vibrationssensor in der Schaltung enthalten, der auf einen bestimmten Vibrationspegel eingestellt werden kann, und weist das GSM-Modul sofort an, eine Benachrichtigung an bestimmte Nummern als Hilferuf zu senden. In diesem Projekt werden zwei Arduinos verwendet. Einer wird an den Ultraschallsensor und den Alkoholsensor angeschlossen, der andere an das GSM-Modul und den Vibrationssensor. Im Helm befinden sich zwei separate Stromkreise, die an dieselbe Batterie angeschlossen werden. Hinweis:Der im Vibrationssensor vorhandene variable Kondensator wird abgestimmt.

Schritt 5: Zusammenbau der Schaltung auf Proteus

  1. Nachdem Sie die Proteus-Software heruntergeladen und installiert haben, öffnen Sie sie. Öffnen Sie einen neuen Schaltplan, indem Sie auf klicken ISISSymbol im Menü.
  2. Wenn der neue Schaltplan angezeigt wird, klicken Sie auf P.Symbol im Seitenmenü. Dies öffnet ein Feld, in dem Sie alle Komponenten auswählen können, die verwendet werden sollen.
  3. Geben Sie nun den Namen der Komponenten ein, aus denen die Schaltung hergestellt werden soll. Die Komponente wird in einer Liste auf der rechten Seite angezeigt.
  4. Suchen Sie auf die gleiche Weise wie oben alle Komponenten wie oben. Sie werden in der angezeigt Geräte Aufführen.

Schritt 6: Schaltpläne

Bauen Sie Ihre Hardware-Schaltung gemäß den unten gezeigten Schaltplänen zusammen:

  1. Schaltplan Nr. 1:
  2. Schaltplan Nr. 2:

Schritt 7: Erste Schritte mit Arduino

Wenn Sie mit Arduino IDE noch nicht vertraut sind, machen Sie sich keine Sorgen, denn unten sehen Sie klare Schritte zum Brennen von Code auf der Mikrocontroller-Karte mit Arduino IDE. Sie können die neueste Version von Arduino IDE hier herunterladen und die folgenden Schritte ausführen:

  1. Schließen Sie Ihr Arduino Nano-Board an Ihren Laptop an und öffnen Sie das Bedienfeld. Klicken Sie in der Systemsteuerung aufHardware und Sound. Klicken Sie nun aufGeräte und Drucker.Hier finden Sie den Anschluss, an den Ihre Mikrocontroller-Karte angeschlossen ist. In meinem Fall ist es COM14aber es ist auf verschiedenen Computern unterschiedlich.
  2. Wir müssen eine Bibliothek einbinden, um das GSM-Modul verwenden zu können. Gehe zu Skizze> Bibliothek einschließen> .ZIP-Bibliothek hinzufügen.
  3. Klicken Sie auf das Menü Tool und stellen Sie die Karte auf ein Arduino Nano.
  4. Stellen Sie im selben Tool-Menü den Prozessor auf ein ATmega328P (alter Bootloader).
  5. Stellen Sie im selben Tool-Menü den Port auf die Portnummer ein, die Sie zuvor in der Geräte und Drucker.
  6. Laden Sie den unten angehängten Code herunter und fügen Sie ihn in Ihre Arduino IDE ein. Klick auf das hochladen Taste, um den Code auf Ihrer Mikrocontroller-Karte zu brennen.

Schritt 8: Code des Projekts

Der Code ist etwas lang, aber sehr einfach. Einige seiner Brocken werden unten erklärt:

1. Zu Beginn sind Bibliotheken enthalten, damit wir problemlos mit speziellen Peripheriegeräten kommunizieren können.

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

2. Anschließend werden auf dem Arduino Nano Pins definiert, mit denen die externen Sensoren an den Mikrocontroller angeschlossen werden. Diese Pins sind für die Eingabe und Ausgabe der Daten im Mikrocontroller verantwortlich.

#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 // Triggerung an Pin 7 #define echoPin 8 // Echo an Pin 8

3. Anschließend werden verschiedene Variablen initialisiert, die später während der Laufzeit des Codes in den Berechnungsprozessen verwendet werden. Es wird auch ein Puffer erstellt, der mit dem GSM-Modul verwendet wird.

int gaslevel; // Dies ist ein großer Puffer für Antworten char replybuffer [255]; uint8_t readline (char * buff, uint8_t maxbuff, uint16_t timeout = 0); uint8_t type; int vs = 10; int schockVal = HIGH;

4. void setup ()ist eine Funktion, die nur einmal ausgeführt wird, wenn der Mikrocontroller eingeschaltet oder die Aktivierungstaste gedrückt wird. Die Baudrate wird in dieser Funktion eingestellt. Dies ist im Wesentlichen die Geschwindigkeit in Bit pro Sekunde, mit der der Mikrocontroller mit den externen Sensoren kommuniziert. Alle Pins des Arduino werden hier so initialisiert, dass sie verwendet werden, um Eingaben vom Sensor zu übernehmen oder Ausgaben an ein anderes Gerät zu senden. In dieser Funktion wird auch das GSM-Modul initialisiert.

void setup () {Serial.begin (9600); // Wir starten die serielle Kommunikation, damit wir die Entfernung auf dem seriellen Monitor sehen können. Serial.println ("Ultra Ponic Sensor Tutorial von Tech Ponder"); pinMode (triggerPin, AUSGANG); // Pins definieren pinMode (echoPin, INPUT); pinMode (Summer, OUTPUT); digitalWrite (Summer, LOW); pinMode (MQ3, INPUT); PinMode (R, OUTPUT); PinMode (Y, OUTPUT); pinMode (vs, INPUT); while (! Serial); // Serial.println (F ("FONA-Basistest")); // Serial.println (F ("Initialisierung .... (kann 3 Sekunden dauern)")); fonaSerial-> begin (4800); if (! fona.begin (* fonaSerial)) {// Serial.println (F ("FONA konnte nicht gefunden werden")); während (1); } type = fona.type (); // Serial.println (F ("FONA ist OK")); // Serial.print (F ("Gefunden")); switch (type) {case FONA800L: // Serial.println (F ("FONA 800L")); Unterbrechung; case FONA800H: // Serial.println (F ("FONA 800H")); Unterbrechung; case FONA808_V1: // Serial.println (F ("FONA 808 (v1)")); Unterbrechung; case FONA808_V2: // Serial.println (F ("FONA 808 (v2)")); Unterbrechung; case FONA3G_A: // Serial.println (F ("FONA 3G (American)")); Unterbrechung; case FONA3G_E: // Serial.println (F ("FONA 3G (European)")); Unterbrechung; Standard: // Serial.println (F ("???")); Unterbrechung; } // Modul-IMEI-Nummer drucken. char imei [15] = {0}; // MUSS einen 16-Zeichen-Puffer für IMEI verwenden! uint8_t imeiLen = fona.getIMEI (imei); if (imeiLen> 0) {// Serial.print ("Modul IMEI:"); Serial.println (imei); }}

5. void loop ()ist eine Funktion, die wiederholt in einer Schleife ausgeführt wird, während der Mikrocontroller eingeschaltet ist. Für einen Ultraschallsensor wird ein Code geschrieben, der, wenn er eine Entfernung misst, die kleiner als ein bestimmter Wert ist, ein Signal an den Summer sendet, das verwendet wird, um den Fahrer zu benachrichtigen, dass sich ein Fahrzeug in der Nähe nähert. Hier ist auch der Gassensor integriert. Drei LEDs zeigen an, ob der Fahrer stark, teilweise oder weniger betrunken ist. Wenn die grüne LED leuchtet, kann der Fahrer loslegen. Am Ende dieser Funktion wird eine andere Funktion namens benannt viberationFun ().

void loop () {int Dauer, Entfernung; // Dauer und Entfernung hinzufügen digitalWrite (triggerPin, HIGH); // Auslösen der Verzögerung der Welle (wie das Blinken einer LED) (10); digitalWrite (triggerPin, LOW); Dauer = PulsIn (EchoPin, HIGH); // eine spezielle Funktion zum Hören und Warten auf die Wellenentfernung = (Dauer / 2) / 29.1; // Umwandlung der Zahl in cm (wenn Sie Zoll möchten, müssen Sie die 29.1 mit einer geeigneten Zahlungsverzögerung (1000) ändern; Serial.print (Abstand); // Drucken der Zahlen Serial.print ("cm"); / / und die Einheit Serial.println (""); // nur in eine neue Zeile drucken, wenn (Abstand <35) {digitalWrite (Summer, HIGH); Serial.println ("Summer On");} digitalWrite (Summer, LOW) ); gaslevel = (analogRead (MQ3)); gaslevel = map (gaslevel, 0,1023,0,255); if (gaslevel> 100 && gaslevel <= 300) {// gaslevel ist größer als 100 und kleiner als 300 digitalWrite (R. , LOW); // ROTE LED ist ausgeschaltet _verzögert_ms (500); // Verzögerung digitalWrite (Y, HIGH); // GELB LED ist eingeschaltet_verzögert_ms (500);} sonst wenn (Gaslevel> 300 && Gaslevel <= 600) { // Gaslevel ist größer als 300 und kleiner als 600 digitalWrite (Y, LOW); // YELLOW LED ist aus _delay_ms (500); digitalWrite (R, HIGH); // RED LED ist an} else {digitalWrite (R, LOW) ); // rote LED ist ausgeschaltet digitalWrite (Y, LOW); // GELBE LED ist ausgeschaltet} Serial.println (Gaslevel); // Werte auf dem seriellen Monitor drucken _delay_ms (100); viberationFun ();}

6. viberationFun ()ist eine Funktion, die erkennt, ob das Fahrrad mit einem anderen Objekt kollidiert ist oder nicht. Wenn eine Kollision festgestellt wird, wird eine Nachricht an die im Code angegebenen Nummern gesendet. Auf diese Weise erreicht die Nachricht vom Unfall jemanden, der die notwendigen Schritte unternimmt, um den Fahrer zu retten.

void viberationFun () {schockVal = digitalRead (vs); int t = 0; char sendto [11] = "IHRE NUMMER"; char sendto1 [11] = "IHRE NUMMER 2"; char message [27] = "Unfall wurde erkannt"; if (Schockwert == HOCH || Schockwert == 1) {if (t == 0) {Serial.println (Schockwert); if (! fona.sendSMS (sendto, message) &&! fona.sendSMS (sendto1, message)) {Serial.println (F ("Failed")); } else {Serial.println (F ("Gesendet!")); t = 1; } delay (1000); if (! fona.sendSMS (sendto1, message)) {Serial.println (F ("Failed")); } else {Serial.println (F ("Gesendet!")); t = 1; }}} else {t = 0; }}

Schritt 9: Zusammenbau der Hardware

Jetzt, da wir die Hauptverbindungen und auch den gesamten Schaltkreis unseres Projekts kennen, können wir fortfahren und mit der Herstellung der Hardware unseres Projekts beginnen. Dabei ist zu beachten, dass die Schaltung kompakt sein muss und die Bauteile dicht beieinander platziert werden müssen. Veroboard ist im Vergleich zum Steckbrett die bessere Option, da sich die Verbindungen auf dem Steckbrett lösen und Kurzschlüsse auftreten können und das Steckbrett im Vergleich zum Veroboard mehr Gewicht hat. Die Schaltung auf dem Veroboard ist sehr klein, sodass sie problemlos in den Helm eingesetzt werden kann.

  1. Nehmen Sie ein Veroboard und reiben Sie seine Seite mit der Kupferbeschichtung mit einem Schaberpapier ab.
  2. Platzieren Sie nun die Komponenten vorsichtig und schließen Sie sie so nahe, dass die Größe des Stromkreises nicht sehr groß wird.
  3. Stellen Sie die Verbindungen vorsichtig mit Lötkolben her. Wenn beim Herstellen der Verbindungen ein Fehler gemacht wird, versuchen Sie, die Verbindung zu entlöten und die Verbindung erneut ordnungsgemäß zu löten. Am Ende muss die Verbindung jedoch fest sein.
  4. Wenn alle Verbindungen hergestellt sind, führen Sie einen Durchgangstest durch. In der Elektronik ist der Durchgangstest die Überprüfung eines Stromkreises, um zu prüfen, ob der Stromfluss im gewünschten Pfad fließt (dass es sich mit Sicherheit um einen Gesamtstromkreis handelt). Ein Durchgangstest wird durchgeführt, indem eine kleine Spannung (verdrahtet in Anordnung mit einer LED oder einem Aufruhr erzeugenden Teil, zum Beispiel einem piezoelektrischen Lautsprecher) über dem gewählten Weg eingestellt wird.
  5. Wenn der Durchgangstest bestanden ist, bedeutet dies, dass die Schaltung wie gewünscht ausreichend hergestellt ist. Es kann jetzt getestet werden.
  6. Schließen Sie die Batterie an den Stromkreis an.

Der Rest des Stromkreises wird im Helm platziert, mit Ausnahme des Ultraschallsensors, der auf der Rückseite des Helms angebracht wird, um die von hinten kommenden Fahrzeuge zu erkennen. In diesem Projekt wird eine Lipo-Batterie verwendet, da es sich um eine sehr leichte Batterie handelt. Selbst wenn der Fahrer eine lange Reise unternimmt, kann dies zu einem besseren Timing führen. Passen Sie die Lipo-Batterie im Helm an, da dies aufgrund rauer Wetterbedingungen wie Regen zum Ausfall der Schaltung führen kann.

Schritt 10: Testen

Wie jetzt wird die Hardware zusammengebaut und der Code wird auch auf den Mikrocontroller hochgeladen. Lassen Sie uns den letzten Schritt durchgehen und die Schaltung testen. Setzen Sie sich auf das Motorrad und drehen Sie sich AUF den Druckknopfschalter, um die Schaltung zu aktivieren. Fahren Sie auf Ihrer Straße und bitten Sie jemanden, sich Ihnen mit hoher Geschwindigkeit von hinten im Auto zu nähern. Sie werden feststellen, dass der Summer zu läuten beginnt und danach mit hoher Geschwindigkeit bremst, so dass große Vibrationen auftreten können. Sobald die Vibration auftritt, wird eine Warnmeldung an die im Code angegebene Handynummer gesendet.

Empfehlungen

Dies ist ein sehr interessantes Projekt. Es gibt verschiedene Optionen, die mithilfe einiger grundlegender elektronischer Komponenten weiter aufgenommen werden können. Einige von ihnen sind unten dargestellt:

  1. Sie können Raspberry Pi mit dem verwenden Pi Kameramodul und stellen Sie die Position so ein, dass Sie die Projektion auf den Spiegel des Helms beobachten können. Auf diese Weise erhalten Sie einen Rückblick auf die Straße und dies ist beim Überholen usw. sehr hilfreich.
  2. Das Relaismodul kann mit dem Zündschalter des Motorrads verbunden und so eingestellt werden, dass sich die Zündung dreht AUFNur wenn der Fahrer den Helm getragen hat.
  3. Kleine Sonnenkollektoren können auch an der Ober- und Rückseite des Helms angebracht werden, so dass der Bedarf an Batterie verringert wird und das Gewicht der Schaltung im Inneren des Helms weiter reduziert werden kann.
Facebook Twitter Google Plus Pinterest