Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

Onderdelen en benodigdheden

Draadbruggen (standaard) 1
Algemene NPN-transistor 1
Keramische condensator 0,1µF 1
Weerstand 1k ohm 1
Weerstand 221 ohm 1
RGB Diffused Common Cathode 1
GPS-module GY-NEO6MV2 1
Trilmotorcel 1
UDOO 2AA-batterijhouder voor RTC 1
Arduino MKR Fox 1200 1

Nodige gereedschappen en machines

  • Soldeerbout (standaard)

Apps en online diensten

  • Arduino Web Editor
  • Sigfox

Over dit project

Overzicht

Ouders maken zich altijd zorgen om hun kinderen. Ze willen dat hun kinderen op tijd op school komen en thuis zijn, via de afgesproken route.

SmartWay neemt deze zorgen weg. SmartWay monitort je kind op de weg naar en van school, zodat het altijd de juiste route volgt om veilig aan te komen.

SmartWay gebruikt GPS om de locatie te volgen en stuurt direct een e-mail als het kind afwijkt van de toegewezen route. Ook wordt een e-mail gestuurd wanneer het kind thuis of op school aankomt, of als het te laat is. Zo kunnen ouders rustig hun koffie drinken wetende dat hun kind veilig aankomt.

SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

Functionaliteit

SmartWay monitort continu de geolocatie van je kind vanaf het opstaan tot de aankomst thuis. Het apparaat heeft een RGB LED en een trilmotor om het kind te waarschuwen als het de verkeerde weg opgaat of te laat is, en om te feliciteren bij aankomst op school.

SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
  • De eerste lus if(off track) detecteert of het kind afwijkt van de route. Het systeem telt hoe vaak dit voorkomt. Bij de eerste afwijking waarschuwt het apparaat met rode LED en trilling, en het kind krijgt twee minuten om terug te keren. Blijft het kind afwijken, dan ontvangt de ouder elke twee minuten een e-mail met waarschuwing en geolocatie totdat het kind thuis of op school is.
  • if(school time) en if(home time) controleren of het tijd is voor school of thuis, en of het kind aangekomen is. Bij tijdige aankomst wordt de LED groen en ontvangt de ouder een e-mail met aankomsttijd. Is het kind te laat, dan...

Het apparaat kan maximaal 12 bytes sturen, dus een compact pakket is nodig. Overige variabelen worden in de SigFox-backend geconfigureerd.

SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

Er zijn vier pakketten die het apparaat kan sturen:

  • Kind is afgedwaald - ("off course")
  • Kind is thuis aangekomen - ("at home")
  • Kind is op school aangekomen - ("at school")
  • Kind is te laat - ("late")

Waarschuwingsysteem

Het kind wordt gewaarschuwd bij aankomst op school, thuis, te laat zijn, of afwijken van de route.

SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

Het apparaat in actie

SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

Voordelen

Ouders die dit apparaat gebruiken, profiteren van:

  • Zekerheid dat hun kind veilig op school en thuis aankomt
  • Zekerheid dat hun kind op tijd aankomt
  • Zekerheid dat hun kind niet van de route afwijkt
  • Energiebesparend en laag in kosten - langdurige batterijen

Het project bouwen

Stap 1: Benodigde apparatuur

Om te beginnen, verzamel de materialen:

  • Draadbruggen
  • 1 NPN-transistor
  • 1 keramische condensator (0,1µF)
  • 3 weerstanden (220Ω)
  • 1 weerstand (1KΩ)
  • 1 RGB LED
  • 1 GPS-module
  • 1 Trilmotorcel
  • 1 Arduino MKR1200 Fox
  • 1 2x AAA/AA batterijhouder
  • 2 AA-batterijen
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

Stap 2: Het circuit aansluiten

De Fritzing-afbeeldingen hieronder laten zien hoe het circuit aangesloten wordt. Er zijn meerdere delen, dus ze zijn gesplitst in verschillende afbeeldingen.

SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

Stap 3: De code begrijpen

De code bestaat uit meerdere functies, elk met een specifieke rol:

  • Waarschuwingsysteem
  • GPS ophalen
  • RTC synchroniseren
  • Locatie verwerken
  • Pakket sturen
  • Acties uitvoeren

Deze secties worden hieronder uitgelegd.

Waarschuwingsysteem
void setOutputs() {
  pinMode(R, OUTPUT); pinMode(G, OUTPUT); pinMode(B, OUTPUT); pinMode(motorPin, OUTPUT);
}
void vibrateMotor() { digitalWrite(motorPin, HIGH); delay(1000); digitalWrite(motorPin, LOW); }
void ledGreen() { analogWrite(R, 0); analogWrite(G, 255); analogWrite(B, 0); }
void ledOrange() { analogWrite(R, 255); analogWrite(G, 45); analogWrite(B, 0); }
void ledRed() { analogWrite(R, 255); analogWrite(G, 0); analogWrite(B, 0); }
void resetLED() { analogWrite(R, 0); analogWrite(G, 0); analogWrite(B, 0); }

Deze code zit in functions.h. Het waarschuwt het kind via de RGB LED en trilmotor.

GPS ophalen
bool getGPS(int run) {
  while(Serial1.available() > 0) {
    if(gps.encode(Serial1.read())) {
      if(run == 1) { processData(); }
      else if(run == 2) { synchRTC(); }
      if(gps.location.isValid() && gps.time.isValid() && gps.date.isValid()) { return true; }
      else { return false; }
    }
  }
  if(millis() > 10000 && gps.charsProcessed() < 10) {
    Serial.println("Error - GPS Module Responded with Error");
    Serial.println(" Terminating Code");
    Serial.println("________________________________________");
    while(1) {};
  }
}

Deze lus ontvangt locatie en tijd van de GPS-module. Wordt gebruikt in setup om GPS te synchroniseren, de onboard RTC te synchroniseren, en in de hoofdlus voor geolocatie.

RTC synchroniseren
void synchRTC() {
  Serial.println("Synching RTC");
  Serial.println("________________________________________");
  Serial.println(" OK - Initialising RTC");
  rtc.begin();
  Serial.println(" OK - Synching Time");
  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(), year);
  Serial.println(" Success - RTC Synched");
  Serial.println("________________________________________");
  Serial.println(""); Serial.println(""); Serial.println("");
}

Deze code synchroniseert de onboard RTC met de GPS-tijd.

Locatie verwerken
bool processData() {
  if(gps.location.isValid()) {
    latitude = gps.location.lat();
    longitude = gps.location.lng();
    latitude = 53.355504; longitude = -6.258452; // voorbeeldcoördinaten
    if(check.isOut()) {
      if(check.track()) {
        Serial.println("OUT OF BOUNDS");
        warn.offTrackLoop();
      }
    }
    if(check.isHomeTime() && arrivedSchool) {
      if(check.isHome()) {
        Serial.println("AT HOME");
        warn.arrivedHomeLoop();
      } else {
        Serial.println("LATE -> HOME");
        warn.lateLoop();
      }
    } else if(check.isSchoolTime() && arrivedHome) {
      Serial.println(".");
      if(check.isSchool()) {
        Serial.println("AT SCHOOL");
        warn.arrivedSchoolLoop();
      } else {
        Serial.println("LATE -> SCHOOL");
        warn.lateLoop();
      }
    } else {
      Serial.println("ON WAY");
    }
  }
}

Deze lus verwerkt de locatie en vergelijkt met de tijd om te bepalen wat te doen.

Acties uitvoeren
struct Do {
  void offTrackLoop() {
    if(offTrackVar) { parseData(0); }
    vibrateMotor(); ledRed(); delay(1000);
    vibrateMotor(); resetLED(); offTrackVar = true; delay(120000);
  }
  void lateLoop() {
    if(!lateVar) { parseData(1); }
    vibrateMotor(); ledOrange(); delay(1000); resetLED(); lateVar = true;
  }
  void arrivedHomeLoop() {
    lateVar = false; offTrackVar = false;
    vibrateMotor(); ledGreen(); delay(1000); resetLED(); parseData(2);
    arrivedHome = true; arrivedSchool = false;
  }
  void arrivedSchoolLoop() {
    lateVar = false; offTrackVar = false;
    vibrateMotor(); ledGreen(); delay(1000); resetLED(); parseData(3);
    arrivedHome = false; arrivedSchool = true;
  }
};

Deze struct voert acties uit op basis van Locatie verwerken, waarschuwt het kind en stuurt een pakket naar SigFox indien nodig.

Pakket sturen
void parseData(int state) {
  SigFox.beginPacket();
  if(state == 0) { SigFox.print("off track"); }
  else if(state == 1) { SigFox.print("late"); }
  else if(state == 2) { SigFox.print("at home"); }
  else { SigFox.print("at school"); }
  SigFox.endPacket();
}

Deze functie stuurt data naar SigFox.

Variabelen instellen

De code bevat variabelen met "TODO" als commentaar; deze moeten aangepast worden aan de gebruiker:

  • Schooltijd
  • Reistijd van het kind
  • Eindtijd school
  • Debuggen?
  • School geolocatie (LAT, LNG)
  • Thuis geolocatie (LAT, LNG)

De onderstaande afbeeldingen begeleiden je bij het instellen.

SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

Bibliotheken

  • SigFox - copyright (c) 2016 Arduino LLC GNU LGPL
  • ctype - copyright (c) 2006 Free Software Foundation GPL
  • RTCZero - copyright (c) 2015 Arduino LLC LGPL
  • String - copyright (c) 2009-10 Hernando Barragan, (c) 2011 Paul Stoffrengen LGPL
  • TinyGPS++ - copyright (c) 2008-13 Mikal Hart LGPL

Opzetten

Zorg dat het circuit correct is aangesloten. Voor details over het opzetten van je MKR Fox, zie de Arduino-tutorial. Voor meer over de Arduino SigFox-bibliotheek, klik hier.

Backend-programma

Je moet een geregistreerde Arduino MKR1200 Fox hebben voor de backend.

  1. Open de SigFox-backend en log in.
  2. Klik op "Device Type" in het dropdownmenu bovenaan.
  3. Selecteer je Arduino MKR Fox en klik op bewerken.
  4. Selecteer "callbacks" in het linkermenu en navigeer naar de "new"-knop rechtsboven.
  5. Klik op "Custom Callbacks".
  6. Vul het formulier in om je callback te maken. Je bericht moet er zo uitzien:
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

Klik op OK en je bent klaar.

Eind

Upload de code hieronder, pas de "TODO"-variabelen aan, wacht tot het blauwe lichtje op de GPS-module knippert, haal de microcontroller van de computer en plaats batterijen in de houder. Klaar!

Ik ontwierp een behuizing met twee acrylaatplaten, randen gesmolten en gebogen op 90 graden. Het circuit zat erin, de batterijhouder eronder, en twee kabelbinders hielden het samen.

SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten
SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

Ten slotte bedekte ik een deel van de bovenkant (transparante deksel) om alle draden te verbergen en alleen de "hersenen" van het project zichtbaar te maken.

Achtergrond

Ik weet zelf hoe stressvol het kan zijn om je kind naar school te sturen; iedereen maakt zich zorgen over wat er kan gebeuren op de weg.

Dit project is voor alle ouders die stress ervaren. SmartWay laat je ontspannen, wetend dat je kind veilig aankomt.

SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

Code

SmartWay

De complete code

Aangepaste onderdelen en behuizingen

Niet standaard in Fritzing inbegrepen arduino_mkr_fox_1200_fixed_gwlzp1tuih_uh8ucYEGxI.fzpz

Schema's

SmartWay: Complete kit voor trilmotor, RGB LED, GPS-module & Arduino MKR Fox 1200 projecten

overall_WZeRYkIUCF.fzz

Productieproces

  1. Raspoulette: Zonnestroom-gevoede Autonome Koeienpoort Systeem Prototype
  2. Simple Pi Robot – Bouw een 2-WD Autonome Rover met Raspberry Pi
  3. Lineaire motoren begrijpen: Van elektrische energie naar nauwkeurige lineaire beweging
  4. BLDC-motoren begrepen: professionele gids
  5. Tandwielmotorverteren Uitgelegd: Hoe Ze Werken en Waarom Ze Essentieel Zijn
  6. Servomotoren Uitgelegd: Hoe Ze Werken en Waarom Ze Belangrijk Zijn
  7. Servomotor vertragers begrijpen: Functies, voordelen en toepassingen
  8. Startmotor van de motor: werking en waarom het essentieel is
  9. Optimalisatie van bewegingsregeling met Parker K-reeks frameless servomotoren
  10. AC-commutatormotoren begrijpen: ontwerp, typen en toepassingen
  11. Stap-voor-Stap Gids voor Het Inspecteren en Diagnosticeren van DC-Motorproblemen