Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

SmartWay

Komponenten und Verbrauchsmaterialien

Jumper (generisch)
Gesamt
× 1
Allzwecktransistor NPN
Für vibrierende Motorzellenschaltung
× 1
Keramikkondensator 0,1µF
Für vibrierende Motorzellenschaltung
× 1
Widerstand 1k Ohm
Für vibrierende Motorzellenschaltung
× 1
Widerstand 221 Ohm
Für RGB-LED-Schaltung
× 1
RGB diffundierte gemeinsame Kathode
× 1
GPS-Modul GY-NEO6MV2
× 1
Vibrierende Motorzelle
× 1
UDOO 2AA Batteriehalter für RTC
× 1
Arduino MKR Fox 1200
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)

Apps und Onlinedienste

Arduino Web Editor
Sigfox

Über dieses Projekt

Übersicht

Eltern sorgen sich immer um ihre Kinder. Eltern möchten, dass ihre Kinder pünktlich zur Schule kommen und auf dem vorgegebenen Weg pünktlich nach Hause kommen.

SmartWay möchte diese Sorge aus dem Alltag der Eltern nehmen. SmartWay überwacht Ihr Kind auf dem Weg zur und von der Schule und stellt sicher, dass Ihr Kind immer den richtigen Weg einschlägt, um sein Ziel, die Schule, zu erreichen.

SWay überwacht die Geolokalisierung Ihres Kindes per GPS und sendet den Eltern sofort eine E-Mail, wenn das Kind von dem von Ihnen zugewiesenen Weg abweicht. SmartWay sendet den Eltern auch eine E-Mail, wenn das Kind nach Hause oder in die Schule kommt, und informiert sie, wenn das Kind zu spät kommt. Auf diese Weise können sich Eltern zurücklehnen und ihren Kaffee genießen, da sie wissen, dass ihr Kind sicher in der Schule und nach Hause ankommt.

Funktionalität

SmartWay überwacht kontinuierlich die Geolokalisierung Ihres Kindes vom Aufwachen bis zu seiner Ankunft zu Hause. Das Gerät ist außerdem mit einer RGB-LED und einem Vibrationsmotor ausgestattet, um Ihr Kind zu warnen, wenn es nicht den richtigen Schulweg nimmt oder zu spät kommt, und gratuliert ihm, wenn es in der Schule angekommen ist.

Das Gerät arbeitet durch viele Funktionen, um sicherzustellen, dass Ihr Kind sicher ist.

  • Die erste Schleife if(off track) erkennt, wenn das Kind vom zugewiesenen Pfad abweicht, das Gerät verfügt über ein System, das erkennt, wie oft dies auftritt; Wenn Ihr Kind das erste Mal vom Kurs abweicht, warnt es das Gerät, indem es die LED rot dreht und den Motor vibriert, dann hat das Kind zwei Minuten Zeit, um wieder auf den Kurs zu kommen. Bleibt das Kind für weitere zwei Minuten vom Kurs ab, erhalten die Eltern eine E-Mail mit der Warnung, dass ihr Kind zusammen mit seiner Geolokalisierung vom Kurs abweicht, die E-Mail wird im Abstand von 2 Minuten empfänglich bis zum Eintreffen des Kindes gesendet zu Hause oder in der Schule.
  • if(Schulzeit) und if(Heimatzeit) Schleifen erkennen, ob es Zeit für Schule und Zuhause ist, dann überprüft das Gerät, ob das Kind in der Schule oder zu Hause angekommen ist. Wenn es rechtzeitig angekommen ist, wird die LED grün und das Gerät sendet den Eltern eine E-Mail, die sie darüber informiert, dass ihre Das Kind ist zusammen mit der Ankunftszeit am Zielort angekommen. Andernfalls, wenn es Zeit für den Schulbeginn ist und das Kind nicht in der Schule ist, wird es auch

Das Gerät kann nur 12 Byte an Informationen senden, daher wird beim Senden ein kompaktes Paket benötigt. Andere Variablen werden im SigFox-Backend konfiguriert.

Das Gerät kann vier Pakete senden

  • Kind ist vom Kurs abgekommen - ("vom Kurs")
  • Kind zu Hause angekommen - ("zu Hause")
  • Kind zur Schule gekommen - ("in der Schule")
  • Kind kommt zu spät - ("spät")

Warnsystem

Das Kind, das das Gerät trägt, wird benachrichtigt, wenn es zur Schule kommt, zu Hause ankommt, zu spät am Ziel ankommt oder vom Kurs abgewichen ist

Das Gerät in Aktion

Vorteile

Eltern, die dieses Gerät verwenden, profitieren in:

  • sorgt dafür, dass ihr Kind sicher zur und von der Schule kommt
  • sorgt dafür, dass ihr Kind pünktlich an diesen Orten ankommt
  • sicherstellen, dass ihr Kind natürlich nicht abweicht
  • Energiesparend und kostengünstig - Langlebige Batterien

Aufbau des Projekts

Schritt 1:Erforderliches Gerät

Um mit der Erstellung des Projekts zu beginnen, müssen wir unsere Materialien sammeln. Für dieses Projekt benötigen Sie:

  • Überbrückungskabel
  • 1, NPN-Transistor
  • 1, Keramikkondensator (0,1µF)
  • 3, Widerstände (220Ω)
  • 1, Widerstand (1KΩ)
  • 1, RGB-LED
  • 1, GPS-Modul
  • 1, vibrierende Motorzelle
  • 1, Arduino MKR1200 Fuchs
  • 1, 2x AAA/AA Batteriebox
  • 2, AA-Batterien

Schritt 2:Stromkreis anschließen

Der nächste Schritt besteht darin, die Schaltung anzuschließen; Die Fritzing-Bilder unten veranschaulichen, wie dies geschieht. Die Verkabelung besteht aus mehreren Teilen, sodass sie in verschiedene Bilder aufgeteilt werden.

Schritt 3:Den Code bestätigen

Der Code besteht aus mehreren Funktionen, wobei jede Funktion eine bestimmte Rolle im Aufbau des Projekts übernimmt.

  • Warnsystem
  • GPS holen
  • RTC synchronisieren
  • Prozessstandort
  • Paket senden
  • Aktionen ausführen

Diese Abschnitte werden unten erklärt.

  • Warnsystem
void setOutputs () { pinMode (R, OUTPUT); pinMode (G, AUSGANG); pinMode (B, AUSGANG); pinMode (motorPin, OUTPUT);}void vibrateMotor() // vibriere die Motorzelle {digitalWrite (motorPin, HIGH); Verzögerung (1000); digitalWrite (motorPin, LOW);}void ledGreen () // LED, Grün {analogWrite (R, 0); analogWrite (G, 255); analogWrite (B, 0);}void ledOrange () // LED, Orange { analogWrite (R, 255); analogWrite(G, 45); analogWrite (B, 0);}void ledRed () // LED, Rot { analogWrite (R, 255); analogWrite (G, 0); analogWrite (B, 0);}void resetLED () // LED ausschalten { AnalogWrite (R, 0); analogWrite (G, 0); analogWrite(B, 0);} 

Dieser Abschnitt des Codes befindet sich in der functions.h Datei. Der Code informiert das Kind, das das Gerät trägt, über den aktuellen Status. Insgesamt steuern diese Schleifen die RGB-LED und die vibrierende Motorzelle.

  • GPS holen
bool getGPS(int run){ while(Serial1.available()> 0) { if(gps.encode(Serial1.read())) { if(run ==1) { processData(); aufrechtzuerhalten. Sonst if(run ==2) {synchRTC(); } if(gps.location.isValid() &&gps.time.isValid() &&gps.date.isValid()) { return true; aufrechtzuerhalten. Sonst { false zurückgeben; } } } if (millis ()> 10000 &&gps.charsProcessed () <10) { Serial.println ( "Fehler - GPS-Modul hat mit Fehler geantwortet"); Serial.println ( "Beendigungscode"); Serial.println("_________________________________________"); während(1) {}; }} 

Dies ist die Schleife, die für den Empfang des Standorts und der Zeit vom GPS-Modul verantwortlich ist. Es gibt 3 Dinge, die diese Schleife macht, sie wird in der Setup-Schleife verwendet Um das GPS zu synchronisieren, wird es dann verwendet, um die Onboard-RTC mit dem GPS zu synchronisieren, und es wird in der Hauptschleife verwendet, um die Geolokalisierung des Geräts zu erhalten.

  • RTC synchronisieren
void synchRTC () { Serial.println ( "Synching RTC"); Serial.println("_________________________________________"); Serial.println ("OK - RTC initialisieren"); rtc.begin(); Serial.println ("OK - Synchronisierungszeit"); // wir müssen die ersten 2 Stellen der Variablen trimmen (2018 -> 18) uint16_t yearRAW =gps.date.year(); String yearString =String(yearRAW); yearString.remove(0,1); uint16_t year =yearString.toInt(); rtc.setTime(gps.time.hour(), gps.time.minute(), gps.time.second()); rtc.setDate(gps.date.day(), gps.date.month(), Jahr); Serial.println ("Erfolg - RTC synchronisiert"); Serial.println("_________________________________________"); Serial.println(""); Serial.println(""); Serial.println("");} 

Dieser Codeabschnitt synchronisiert die Onboard-RTC mit der vom GPS-Modul empfangenen Zeit, liest zuerst die Daten vom GPS-Modul und verarbeitet sie dann. Die Schleife setzt dann die aktuelle Uhrzeit der Onboard-RTC auf die empfangene Zeit und startet die RTC.

  • Prozess Standort
bool processData(){ if(gps.location.isValid()) { Breite =gps.location.lat(); Längengrad =gps.location.lng(); Breite =53,355504; Längengrad =-6.258452; if (check.isOut ()) { if (check.track ()) { Serial.println ( "OUT OF BOUNDS"); warn.offTrackLoop(); aufrechtzuerhalten. warn.arrivedHomeLoop(); } Else {Serial.println ("SPÄT -> HOME"); warn.lateLoop(); } } else if (check.isSchoolTime () &&angekommenHome) { Serial.println ( "."); if (check.isSchool ()) {Serial.println ( "AT SCHULE"); warn.arrivedSchoolLoop(); aufrechtzuerhalten. Sonst {Serial.println ("SPÄT -> SCHULE"); warn.lateLoop(); } } else {Serial.println ("AUF WEG"); } }} 

Diese Schleife verarbeitet den Standort des Geräts und vergleicht ihn mit der aktuellen Uhrzeit, um zu sehen, wo sich das Kind zu diesem Zeitpunkt befinden sollte. Es wird dann basierend auf dem Ergebnis die entsprechende Aktion ausführen.

  • Tun Aktionen
struct Do{ void offTrackLoop() { if(offTrackVar) { parseData(0); } vibrierenMotor (); ledRot(); Verzögerung (1000); vibrierenMotor(); resetLED(); offTrackVar =wahr; Verzögerung (120000); } void lateLoop() { if(!lateVar) { parseData(1); } vibrierenMotor (); ledOrange(); Verzögerung (1000); resetLED(); spätVar =wahr; aufrechtzuerhalten. Void angekommenHomeLoop() {lateVar =false; offTrackVar =false; vibrierenMotor(); ledGrün(); Verzögerung (1000); resetLED(); parseData(2); angekommenHeim =wahr; angekommenSchool =false; aufrechtzuerhalten. Void angekommenSchoolLoop() {lateVar =false; offTrackVar =false; vibrierenMotor(); ledGrün(); Verzögerung (1000); resetLED(); parseData(3); angekommenHome =false; angekommenSchool =wahr; }}; 

Diese Struktur wird aufgerufen, um auf die von Prozessstandort gegebene Antwort zu reagieren es warnt das Kind beim Umschalten der RGB-LED und der vibrierenden Motorzelle. Es wird bei Bedarf auch ein Paket an SigFox senden.

  • Senden Paket
void parseData(int state){ SigFox.beginPacket(); // Beginnen Sie mit dem Senden der Nachricht if(state ==0) // off track { SigFox.print("off track"); // Nachricht senden} else if(state ==1) // spät { SigFox.print("late"); // Nachricht senden} else if(state ==2) // Zuhause angekommen { SigFox.print("at home"); // Nachricht senden } else // Schule angekommen { SigFox.print("in der Schule"); // Nachricht senden } SigFox.endPacket();} 

Diese Funktion sendet die Daten an SigFox, der Paketversand wird gestartet und dann wird der entsprechende Wert geparst.

Einrichten der Variablen

Der Code enthält mehrere Variablen, nach denen TODO als Kommentar geschrieben wird. Diese Variablen müssen an den Client angepasst werden, der Client wird zum Einrichten aufgefordert

  • Zeit für die Schule
  • Zeit, die das Kind braucht, um zu reisen
  • Zeit, zu der die Schule endet
  • Debugging?
  • Geolokalisierung von Schulen (LAT, LNG);
  • Heimat-Geolokalisierung (LAT, LNG);

Die folgende Anleitung führt Sie durch die Einrichtung der Variablen.

Bibliotheken

SigFox - Copyright (c) 2016 Arduino LLC GNU Lesser General Public License Diese Bibliothek ist gemeinfrei

ctype - Copyright (c) 2006 Free Software Foundation unter der GNU General Public License, diese Bibliothek ist gemeinfrei

RTCZero - Copyright (c) 2015 Arduino LLC unter der GNU Lesser General Public License, diese Bibliothek ist gemeinfrei

String - Copyright (c) 2009-10 Hernando Barragan, Copyright (c) 2011 Paul Stoffrengen unter der GNU Lesser General Public License, diese Bibliothek ist gemeinfrei

TinyGPS++ - Copyright (c) 2008-13 Mikal Hart unter der GNU Lesser General Public License, diese Bibliothek ist gemeinfrei

Einrichtung

Stellen Sie sicher, dass der Stromkreis richtig verdrahtet ist. Für Details zum Einrichten Ihres MKR-Foxs klicken Sie hier für das Arduino-Tutorial. Wenn Sie mehr über die Arduino SigFox-Bibliothek erfahren möchten, klicken Sie hier.

Back-End-Programm

Sie müssen einen registrierten Arduino MKR1200-Fuchs haben, um das Backend zu programmieren.

  • Schritt 1

Öffnen Sie das SigFox-Backend und melden Sie sich bei Ihrem SigFox-Konto an.

  • Schritt 2

Klicken Sie im Dropdown-Menü oben auf der Seite auf "Gerätetyp"

  • Schritt 3:

Wählen Sie Ihren Arduino MKRfox aus und klicken Sie auf Bearbeiten

  • Schritt 4:

Wählen Sie im Menü auf der linken Seite Rückrufe aus und navigieren Sie zur Schaltfläche "Neu" in der oberen rechten Ecke.

  • Schritt 5:

Nachdem Sie auf Neu geklickt haben, werden Ihnen eine Reihe von Rückrufkonfigurationsoptionen angezeigt. Klicken Sie auf Benutzerdefinierte Rückrufe

Als nächstes öffnet sich ein Fenster, Sie müssen das angegebene Formular ausfüllen, um Ihren Rückruf zu erstellen

Am Ende sollte Ihre Nachricht so aussehen:

Klicken Sie nun auf OK und Sie sind fertig.

Finale

Als letztes müssen Sie den unten stehenden Code hochladen. Stellen Sie sicher, dass Sie die mit "TODO" gekennzeichnete Variable nach Ihren Wünschen angepasst haben, warten Sie, bis das blaue Licht am GOS-Modul blinkt und trennen Sie dann den Mikrocontroller von Ihrem Computer und Legen Sie die Batterien in das Batteriefach. Sie sind fertig.

Ich habe ein Gehäuse entworfen, um das Gerät sicher zu halten und es attraktiv aussehen zu lassen, ich habe zwei Acrylteile verwendet und die Kanten geschmolzen, die sie um 90 Grad geschwungen haben. Ich habe den gesamten Stromkreis darin platziert und den Batteriekasten darunter und dann die Plastikteile mit zwei Kabelbindern zusammengebunden.

Am Ende bedeckte ich ein Stück der Oberseite (transparente Abdeckung), um alle Drähte vor dem Blick zu verbergen und nur das Gehirn des Projekts sichtbar zu machen.

Hintergrund

Ich persönlich weiß, wie stressig die einfache Aufgabe sein kann, Ihr Kind zur Schule zu schicken, jeder macht sich Sorgen, was seinem Kind auf dem Weg zur Schule passieren kann.

Dieses Projekt richtet sich an alle Menschen, die sich gestresst fühlen, wenn sie ihr Kind zur Schule schicken. Mit SWay können Sie sich entspannen und wissen, dass Ihr Kind sicher in der Schule ankommt.

Code

SmartWay
Der vollständige Code

Kundenspezifische Teile und Gehäuse

Standardmäßig nicht in Fritzing enthalten arduino_mkr_fox_1200_fixed_gwlzp1tuih_uh8ucYEGxI.fzpz

Schaltpläne

Overall_WZeRYkIUCF.fzz

Herstellungsprozess

  1. AC-Kommutatormotoren
  2. Raspoulette-Prototyp
  3. Einfacher Pi-Roboter
  4. Überprüfen eines Gleichstrommotors
  5. Was ist ein Linearmotor?
  6. Eine Einführung in den BLDC-Motor
  7. Was ist ein Getriebemotor-Untersetzungsgetriebe?
  8. Was ist ein Servomotor?
  9. Was ist ein Servomotor-Reduzierer?
  10. Grundlegendes zum Startermotor des Motors