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

Componenten en benodigdheden

Jumperdraden (algemeen)
Algemeen
× 1
Transistor-NPN voor algemeen gebruik
Voor vibrerend motorcelcircuit
× 1
Keramische condensator 0,1 µF
Voor vibrerend motorcelcircuit
× 1
Weerstand 1k ohm
Voor vibrerend motorcelcircuit
× 1
Weerstand 221 ohm
Voor RGB LED-circuit
× 1
RGB diffuse gemeenschappelijke kathode
× 1
GPS-module GY-NEO6MV2
× 1
Vibrerende motorcel
× 1
UDOO 2AA-batterijhouder voor RTC
× 1
Arduino MKR Fox 1200
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Arduino Web Editor
Sigfox

Over dit project

Overzicht

Ouders maken zich altijd zorgen om hun kinderen. Ouders willen dat hun kinderen stipt op school aankomen en op tijd thuiskomen, volgens de toegewezen route.

SmartWay wil deze zorg uit het dagelijks leven van de ouder verwijderen. SmartWay houdt uw kind in de gaten als het van en naar school gaat en zorgt ervoor dat uw kind altijd de juiste weg volgt om op zijn/haar bestemming, school, aan te komen.

SWay zal de geolocatie van uw kind volgen met behulp van GPS en zal de ouder onmiddellijk een e-mail sturen als het kind afwijkt van het pad dat u aan hem/haar hebt toegewezen. SmartWay stuurt de ouders ook een e-mail wanneer het kind thuis of op school komt, en informeert hen als het kind te laat is. Op deze manier kunnen ouders achterover leunen en genieten van hun koffie, wetende dat hun kind veilig op school en thuis aankomt.

Functionaliteit

SmartWay houdt continu de geolocatie van uw kind in de gaten vanaf het moment dat hij/zij wakker wordt tot wanneer hij/zij thuiskomt. Het apparaat is ook uitgerust met een RGB-led en een trilmotor om uw kind te waarschuwen als hij/zij niet op de juiste manier naar school gaat of te laat is, en om hem/haar te feliciteren wanneer hij/zij op school is aangekomen.

Het apparaat werkt door middel van vele functies om ervoor te zorgen dat uw kind veilig is.

  • De eerste lus if(off track) detecteert of het kind is afgeweken van het toegewezen pad, het apparaat heeft een systeem dat detecteert hoe vaak dit gebeurt; als uw kind de eerste keer van de koers afwijkt, waarschuwt het apparaat hem/haar door de LED rood te draaien en de motor te laten trillen, waarna het kind twee minuten de tijd krijgt om weer op koers te komen. Als het kind nog twee minuten uit de koers blijft, ontvangt de ouder een e-mail met de waarschuwing dat hun kind uit de koers is, samen met zijn/haar geolocatie, de e-mail wordt met tussenpozen van 2 minuten verzonden totdat het kind arriveert thuis of op school.
  • if(schooltijd) en if(thuistijd) lussen detecteren of het tijd is voor school en thuis, dan controleert het apparaat of het kind op school of thuis is aangekomen, als het op tijd is, wordt de LED groen en stuurt het apparaat de ouder een e-mail om hen te informeren dat hun kind samen met de aankomsttijd op zijn/haar bestemming is aangekomen. Anders, als het tijd is om naar school te gaan en het kind is niet op school, zal het ook

Het apparaat kan slechts 12 byes aan informatie verzenden, daarom is een compact pakket nodig bij het verzenden. Andere variabelen worden geconfigureerd in de SigFox-backend.

Er zijn vier pakketten die het apparaat kan verzenden

  • kind is uit koers - ("uit koers")
  • kind is thuisgekomen - ("thuis")
  • kind kwam op school - ("op school")
  • kind is te laat - ("laat")

Waarschuwingssysteem

Het kind dat het apparaat draagt, wordt gewaarschuwd wanneer hij/zij op school aankomt, thuiskomt, te laat op een bestemming aankomt of van koers is afgeweken

Het apparaat in actie

Voordelen

Ouders die dit apparaat gebruiken, profiteren van:

  • ervoor zorgen dat hun kind veilig van en naar school komt
  • zorg ervoor dat hun kind stipt op deze locaties arriveert
  • zorgen dat hun kind natuurlijk niet afwijkt
  • Energiebesparing en lage kosten - Batterijen die lang meegaan

Het project bouwen

Stap 1:Vereiste apparatuur

Om te beginnen met het maken van het project, moeten we onze materialen verzamelen. Voor dit project heb je nodig:

  • jumperdraden
  • 1, NPN-transistor
  • 1, keramische condensator (0,1 µF)
  • 3, weerstanden (220Ω)
  • 1, weerstand (1KΩ)
  • 1, RGB-led
  • 1, GPS-module
  • 1, vibrerende motorcel
  • 1, Arduino MKR1200 vos
  • 1, 2x AAA/AA-batterijdoos
  • 2, AA-batterijen

Stap 2:Het circuit aansluiten

De volgende stap is om het circuit aan te sluiten; de Fritzing-afbeeldingen hieronder zullen illustreren hoe dit wordt gedaan. De bedrading heeft meerdere onderdelen, dus ze zijn opgesplitst in verschillende afbeeldingen.

Stap 3:De code erkennen

De code bestaat uit meerdere functies, elke functie vervult een specifieke rol in de opzet van het project.

  • Waarschuwingssysteem
  • GPS ophalen
  • Synchronisatie RTC
  • Proceslocatie
  • Pakket verzenden
  • Acties uitvoeren

Deze secties worden hieronder uitgelegd.

  • Waarschuwingssysteem
void setOutputs(){ pinMode(R, OUTPUT); pinMode (G, UITGANG); pinMode (B, UITGANG); pinMode(motorPin, OUTPUT);}void vibrateMotor() // tril de motorcel {digitalWrite(motorPin, HIGH); vertraging (1000); digitalWrite(motorPin, LOW);}void ledGreen() // LED, groen{analogeWrite(R, 0); analoogWrite(G, 255); analogWrite(B, 0);}void ledOrange() // LED, oranje{ analogWrite(R, 255); analoogWrite(G, 45); analogWrite(B, 0);}void ledRed() // LED, rood{ analogWrite(R, 255); analoogWrite(G, 0); analogWrite(B, 0);}void resetLED() // Schakel LED uit {analogalWrite(R, 0); analoogWrite(G, 0); analoogWrite(B, 0);} 

Dit gedeelte van de code is te vinden in de functions.h het dossier. De code informeert het kind dat het apparaat draagt ​​over de huidige staat. Over het algemeen besturen deze lussen de RGB-led en de trillende motorcel.

  • 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("Fout - GPS-module reageerde met fout"); Serial.println ("Beëindigingscode"); Serial.println("_________________________________________"); terwijl(1) {}; }} 

Dit is de lus die verantwoordelijk is voor het ontvangen van de locatie en tijd van de GPS-module. Er zijn 3 dingen die deze lus doet, het wordt gebruikt in de setup-lus om de GPS te synchroniseren, wordt deze vervolgens gebruikt om de ingebouwde RTC te synchroniseren met de GPS' en wordt in de hoofdlus gebruikt om de geolocatie van het apparaat te verkrijgen.

  • RTC synchroniseren
void synchRTC(){ Serial.println("Synchronisatie RTC"); Serial.println("_________________________________________"); Serial.println ("OK - RTC wordt geïnitialiseerd"); rtc.begin(); Serial.println ("OK - Synchronisatietijd"); // we moeten de eerste 2 cijfers van de variabele inkorten (2018 -> 18) uint16_t yearRAW =gps.date.year(); String jaarString =String (jaarRAW); jaarString.verwijder(0,1); uint16_t jaar =yearString.toInt(); rtc.setTime(gps.time.hour(), gps.time.minute(), gps.time.second()); rtc.setDate(gps.datum.dag(), gps.datum.maand(), jaar); Serial.println ("Succes - RTC gesynchroniseerd"); Serial.println("_________________________________________"); Serieel.println(""); Serieel.println(""); Serial.println("");} 

Dit codegedeelte synchroniseert de ingebouwde RTC met de tijd die wordt ontvangen van de GPS-module, het leest eerst de gegevens van de GPS-module en verwerkt deze vervolgens. De lus stelt vervolgens de huidige tijd van de ingebouwde RTC in op de ontvangen tijd en start de RTC.

  • Proces Locatie
bool processData(){ if(gps.location.isValid()) { latitude =gps.location.lat(); lengtegraad =gps.locatie.lng(); breedtegraad =53.355504; lengtegraad =-6,258452; if(check.isOut()) { if(check.track()) { Serial.println("BUITEN DE GRENS"); warn.offTrackLoop(); } } if(check.isHomeTime() &&arrivalSchool) { if(check.isHome()) { Serial.println("AT HOME"); warn.arrivedHomeLoop(); } else { Serial.println("LATE -> HOME"); waarschuwen.lateLoop(); } } else if(check.isSchoolTime() &&arriveerdeHome) { Serial.println("."); if(check.isSchool()) { Serial.println("OP SCHOOL"); warn.arrivedSchoolLoop(); } else { Serial.println ("LAAT -> SCHOOL"); waarschuwen.lateLoop(); } } else { Serial.println ("ON WAY"); } }} 

Deze lus verwerkt de locatie van het apparaat en vergelijkt deze met de huidige tijd om te zien waar het kind op dit moment zou moeten zijn. Het zal dan de juiste actie ondernemen op basis van het resultaat.

  • Doe Acties
struct Do{ void offTrackLoop() { if(offTrackVar) { parseData(0); } trilmotor(); ledRood(); vertraging (1000); trillenMotor(); resetLED(); offTrackVar =waar; vertraging (120000); } void lateLoop() { if(!lateVar) { parseData(1); } trilmotor(); ledOranje(); vertraging (1000); resetLED(); lateVar =waar; } void arriveHomeLoop() { lateVar =false; offTrackVar =onwaar; trillenMotor(); ledGroen(); vertraging (1000); resetLED(); ontledenData(2); arriveerdeHome =waar; arriveerdeSchool =onwaar; } void arriveSchoolLoop() { lateVar =false; offTrackVar =onwaar; trillenMotor(); ledGroen(); vertraging (1000); resetLED(); ontledenData (3); arriveerdeHome =onwaar; arriveerdeSchool =waar; }}; 

Deze structuur wordt aangeroepen om actie te ondernemen op het antwoord van Proceslocatie het zal het kind waarschuwen door de RGB-LED en de vibrerende motorcel te wisselen. Het zal indien nodig ook een pakket naar SigFox sturen.

  • Verzenden Pakket
void parseData(int state){ SigFox.beginPacket(); // begin met het verzenden van berichten if (state ==0) // off track { SigFox.print("off track"); // stuur het bericht } else if(state ==1) // late { SigFox.print("late"); // stuur het bericht } else if(state ==2) // arriveerde thuis { SigFox.print("at home"); // stuur het bericht } else // arriveerde school { SigFox.print("at school"); // stuur het bericht } SigFox.endPacket();} 

Deze functie verzendt de gegevens naar SigFox, het verzenden van het pakket wordt gestart en vervolgens wordt de juiste waarde geparseerd.

De variabelen instellen

De code zal meerdere variabelen bevatten met TODO geschreven als een opmerking erna. Deze variabele moet worden aangepast aan de klant, de klant zal worden gevraagd om in te stellen

  • Tijd voor school
  • Tijd die het kind nodig heeft om te reizen
  • Tijd waarop de school eindigt
  • Foutopsporing?
  • Geolocatie school (LAT, LNG);
  • Geolocatie thuis (LAT, LNG);

De onderstaande gids helpt u bij het instellen van de variabelen.

Bibliotheken

SigFox - copyright (c) 2016 Arduino LLC GNU Lesser General Public License deze bibliotheek is in het publieke domein

ctype - copyright (c) 2006 Free Software Foundation onder de GNU General Public License, deze bibliotheek is in het publieke domein

RTCZero - copyright (c) 2015 Arduino LLC onder de GNU Lesser General Public License, deze bibliotheek is in het publieke domein

String - copyright (c) 2009-10 Hernando Barragan, copyright (c) 2011 Paul Stoffrengen onder de GNU Lesser General Public License, deze bibliotheek is in het publieke domein

TinyGPS++ - copyright (c) 2008-13 Mikal Hart onder de GNU Lesser General Public License, deze bibliotheek is in het publieke domein

Instellen

Zorg ervoor dat het circuit correct is bedraad. Klik hier voor de Arduino-tutorial voor meer informatie over het instellen van uw MKR-vos. Als je meer wilt weten over de Arduino SigFox-bibliotheek, klik dan hier.

Backend-programma

Je moet een geregistreerde Arduino MKR1200 fox hebben om de backend te programmeren.

  • Stap 1

Open de SigFox-backend en log in op uw SigFox-account.

  • Stap 2

klik op "Apparaattype" in het vervolgkeuzemenu bovenaan de pagina

  • Stap 3:

selecteer je Arduino MKRfox en klik op bewerken

  • Stap 4:

Selecteer terugbellen in het menu aan de linkerkant en navigeer naar de knop "nieuw" in de rechterbovenhoek.

  • Stap 5:

Nadat u op nieuw heeft geklikt, krijgt u een aantal configuratie-opties voor terugbellen te zien. Klik op Aangepaste terugbelverzoeken

Vervolgens wordt een venster geopend, u moet het gegeven formulier invullen om uw terugbelverzoek te maken

Aan het einde zou uw bericht er als volgt uit moeten zien:

Klik nu op ok en je bent helemaal klaar.

Finale

Het laatste dat u hoeft te doen, is de onderstaande code uploaden. Zorg ervoor dat u de variabele gemarkeerd met "TODO" naar uw voorkeur hebt aangepast, wacht tot het blauwe lampje op de GOS-module knippert en koppel vervolgens de microcontroller los van uw computer en plaats batterijen in de accubak. Je bent helemaal klaar.

Ik ontwierp een behuizing om het apparaat veilig te houden en om het er aantrekkelijk uit te laten zien, gebruikte ik twee stukken acryl en smolt de randen om ze 90 graden te buigen. Ik plaatste het hele circuit erin en de accubak eronder en bond de stukjes plastic aan elkaar met twee kabelbinders.

Uiteindelijk heb ik een stuk van de bovenkant bedekt (transparante hoes) om alle draden uit het zicht te verbergen en alleen het brein van het project zichtbaar te maken.

Achtergrond

Ik weet persoonlijk hoe stressvol het kan zijn om de simpele taak uit te voeren om je kind naar school te sturen, iedereen maakt zich zorgen over alle dingen die hun kind kunnen overkomen als hij/zij naar school gaat.

Dit project is bedoeld voor alle mensen die zich gestrest voelen als ze hun kind naar school sturen. Met SWay kunt u ontspannen, wetende dat uw kind veilig op school aankomt.

Code

SmartWay
De volledige code

Aangepaste onderdelen en behuizingen

Standaard niet opgenomen in Fritzing arduino_mkr_fox_1200_fixed_gwlzp1tuih_uh8ucYEGxI.fzpz

Schema's

overall_WZeRYkIUCF.fzz

Productieproces

  1. AC-commutatormotoren
  2. Raspoulette-prototype
  3. Simple Pi Robot
  4. Hoe een gelijkstroommotor te controleren?
  5. Wat is een lineaire motor?
  6. Een inleiding tot de BLDC-motor
  7. Wat is een reductiemotorreductor?
  8. Wat is een servomotor?
  9. Wat is servomotorreductor?
  10. Motorstartmotor begrijpen
  11. Frameloze motorintegratie