Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Module Arduino + GPS - Notification de destination

Composants et fournitures

Arduino UNO
× 1
Module GPS (Générique)
Module GPS NEO-6M
× 1
LED (générique)
× 1
Texas Instruments Dual H-Bridge Motor Drivers L293D
× 1
Moteur à disque vibrant pour cafards solaires Brown Dog Gadgets
× 1
SparkFun Snappable Protoboard
× 1
Batterie 9V (générique)
× 1
Connecteur 9V vers Barrel Jack
× 1
Une boîte
Quelque chose pour enfermer le projet.
× 1
Câbles de raccordement (générique)
× 1

Outils et machines nécessaires

Fer à souder (générique)
Dénudeur de fils

Applications et services en ligne

Arduino IDE

À propos de ce projet

Introduction :Le problème et la solution

Tout le monde sait que les embouteillages peuvent être une perte de temps importante. Et il est impossible de prédire combien de temps cela prendrait de l'origine à la destination.

Le problème des embouteillages m'a touché lorsque je suis arrivé dans une ville il y a deux mois. Chaque jour, je passe plus de deux heures coincé dans les embouteillages. Et je me suis dit pourquoi ne puis-je pas utiliser ce temps pour faire quelque chose ?

Remarque :j'utilise les transports en commun. :-)

Il y a plein d'autres choses que vous pouvez faire tout en étant coincé dans les embouteillages !

Certains de ceux ci-dessous ne sont pas seulement amusants, mais aussi productifs :

  • Prenez le temps de réfléchir et de planifier, que ce soit pour les projets actuels et futurs.
  • Prenez le temps de vous former, de regarder des vidéos pédagogiques ou de suivre un cours en ligne sur Udemy, Coursera, etc.

Et bien sûr faire les trucs électroniques m'inspirent toujours. J'ai donc construit un notificateur de destination à l'aide d'Arduino et d'un module GPS. Donc, ce qu'il fait, c'est que chaque fois que vous êtes près de votre destination, il vous avertit par une LED rougeoyante ou par des vibrations (en utilisant un mini moteur vibrant). J'ai fourni des circuits pour les LED et le moteur vibrant.

Pour cela, vous devez d'abord trouver la latitude et la longitude pour définir l'emplacement. Une fois que vous avez trouvé votre emplacement, vous pouvez utiliser les valeurs de latitude et de longitude pour trouver la distance jusqu'à l'emplacement et en gardant une plage, vous pouvez activer le notificateur. La logique est simple, non ?!

Alors commençons.......

Pièces et outils :

Pour commencer avec votre notificateur de destination, voici les éléments requis :

  • Arduino UNO
  • Module GPS NEO-6M

GPS signifie système de positionnement global et peut être utilisé pour déterminer la position, l'heure et la vitesse si vous voyagez.

  • Ce module a une antenne externe et une EEPROM intégrée.
  • Interface :RS232 TTL
  • Alimentation :3 V à 5 V
  • Débit en bauds par défaut :9 600 bits/s
  • Fonctionne avec des phrases NMEA standard

Le module GPS NEO-6M a quatre broches :VCC, RX, TX et GND. Le module communique avec l'Arduino via une communication série à l'aide des broches TX et RX, le câblage ne pourrait donc pas être plus simple :

Câblage du module GPS NEO-6M vers Arduino UNO

NIV VCC

Broche RX TX définie dans la série logicielle

Broche TX RX définie dans le logiciel série

GND GND

IC L293D

Le L293D est un circuit intégré de commande de moteur à 16 broches qui peut contrôler jusqu'à deux moteurs à courant continu simultanément dans n'importe quelle direction.

Pourquoi utiliser L293D ?

L'entrée du circuit intégré du pilote de moteur ou du pilote de moteur est un signal de courant faible. La fonction du circuit est de convertir le signal de courant faible en un signal de courant élevé. Ce signal de courant élevé est ensuite transmis au moteur.

Bibliothèque TinyGPS++ :

La bibliothèque TinyGPS++ permet d'obtenir facilement des informations de localisation dans un format utile et facile à comprendre.

La bibliothèque TinyGPS++ vous permet d'obtenir bien plus d'informations que l'emplacement, et de manière simple, en plus de l'emplacement, vous pouvez obtenir :

>>date

>>heure

>>vitesse

>>cours

>>altitude

>>satellites

>>hdop

Capturer la latitude et la longitude :

Je suggérerai de télécharger les fichiers frits donnés à la fin du projet pour une meilleure clarification de la connexion ou si vous avez le moindre doute, n'hésitez pas à demander dans les commentaires.

Code Arduino pour la capture de localisation :

#include 
#include
static const int RXPin =4, TXPin =3;
static const uint32_t GPSBaud =9600;
// L'objet TinyGPS++
TinyGPSPlus gps ;
// La connexion série à l'appareil GPS
SoftwareSerial ss(RXPin, TXPin);
void setup(){
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop(){
// Ce sketch affiche des informations à chaque fois qu'un nouveau la phrase est correctement encodée.
while (ss.available()> 0){
gps.encode(ss.read());
if (gps.location.isUpdated()){
Serial.print("Latitude=");
Serial.print(gps.location.lat(), 6);
Serial.print(" Longitude=");
Serial.println(gps.location.lng(), 6);
}
}
}

Remarque :Vous devez installer Bibliothèque TinyGPS++

connectez-vous selon le schéma de circuit et téléchargez le code ci-dessus, ouvrez le moniteur série à un débit en bauds de 9600 et vous verrez la sortie suivante

Remarque : Pour obtenir la latitude et la longitude, cela peut prendre un certain temps, car le récepteur doit capturer les signaux. dès qu'il commence à recevoir des signaux, la LED du module GPS clignote.

Notification de destination via la LED :

Donc, pour m'assurer que mon idée fonctionne, j'ai fait un prototype à l'aide de LED pour notifier la destination. Donc, ce que j'ai fait, c'est que j'ai ajouté les valeurs de latitude et de longitude de la destination du code précédent (Read_Lat_Lng.ino) et j'ai trouvé la distance jusqu'à la destination depuis l'emplacement actuel. Et l'a utilisé pour régler la plage à laquelle la LED doit s'allumer.

Code :

#include 
#include
static const int RXPin =4, TXPin =3;
static const uint32_t GPSBaud =9600;
// L'objet TinyGPS++
TinyGPSPlus gps ;
// La connexion série à l'appareil GPS
SoftwareSerial ss(RXPin, TXPin);
// Pour les statistiques qui se produire toutes les 5 secondes
unsigned long last =0UL;
int ledPin =13;
void setup()
{
Serial.begin(115200);
ss.begin(GPSBaud);
pinMode(ledPin, OUTPUT);
}
boucle vide()
{
// Envoi des caractères entrants
while (ss.available()> 0)
gps.encode(ss.read());
if (gps.location.isUpdated())
{
Serial. print(F(" Lat="));
Serial.print(gps.location.lat(), 6);
Serial.print(F(" Long="));
Serial.println(gps.location.lng(), 6);
}
else if (millis() - last> 5000)
{
Serial.println();
if (gps.location.isValid())
{
// remplace les valeurs 'Dest_LAT' et 'Dest_LON' bas edon votre position
// vous pouvez trouver la latitude et la longitude de Read_Lat_Lng.ino
statique const double Dest_LAT =18.786254, Dest_LON =73.880798;
double distanceToDest =
TinyGPSPlus::distanceBetween(
gps.location.lat(),
gps.location.lng(),
Dest_LAT,
Dest_LON);
Serial.print(F("Distance à Destination ="));
Serial.print(distanceToDest/1000, 6); // *Imprime la distance jusqu'à la destination
if(distanceToDest/1000 <0.0500000) //Ici, lorsque distanceToDest/1000 est inférieur à 0.050000, la LED s'allume. Modifiez donc * la distance jusqu'à la destination selon vos besoins.
{
digitalWrite(ledPin, HIGH);
}
else
{
digitalWrite(ledPin, LOW);
}
}
if (gps.charsProcessed() <10)
Serial.println(F("AVERTISSEMENT :aucune donnée GPS. Vérifiez le câblage."));
last =millis();
Serial.println();
}
}

Téléchargez le code et vous verrez ce qui suit sur le moniteur série.

Ainsi, la distance jusqu'à la destination peut être utilisée pour définir la plage à laquelle l'opération de sortie (notification) doit s'effectuer.

Le dernier !

OK, mon prototype a bien fonctionné. Maintenant, je veux enfermer mon projet dans une boîte qui peut contenir un Arduino, un module GPS, un moteur avec circuit intégré de pilote et l'alimentation 9V.

Connexion au CI L293D

  • Connectez 5 V pour activer 1, Vs et Vss sur le L293D
  • Connectez les broches de sortie numérique (nous utilisons 6 et 7) à l'entrée 1 et à l'entrée 2 sur le L293D.
  • Connectez le GND de votre Arduino aux deux broches GND du même côté du L293D
  • Enfin, connectez la sortie 1 et la sortie 2 du L293D aux broches de votre moteur.

Code :

#include 
#include
static const int RXPin =4, TXPin =3;
static const uint32_t GPSBaud =9600;
// L'objet TinyGPS++
TinyGPSPlus gps ;
// La connexion série à l'appareil GPS
SoftwareSerial ss(RXPin, TXPin);
// Pour les statistiques qui arrive toutes les 5 secondes
unsigned long last =0UL;
int motorpin1=6;
int motorpin2=7;
void setup()
{
Serial .begin(115200);
ss.begin(GPSBaud);
pinMode(motorpin1,OUTPUT);
pinMode(motorpin2,OUTPUT);
}
boucle vide ()
{
// Répartir les caractères entrants
tandis que (ss.available()> 0)
gps.encode(ss.read());
si (gps.location.isUpdated())
{
Serial.print(F(" Lat="));
Serial.print(gps.location.lat(), 6);
Serial.print(F(" Long="));
Serial.println(gps.location.lng(), 6);
}
else if (millis( ) - dernier> 5000)
{
Serial.println();
if (gps.location.isValid())
{
// remplacez les valeurs 'Dest_LAT' et 'Dest_LON' en fonction de votre emplacement
// vous pouvez trouver la latitude et la longitude de Read_Lat_Lng.ino
static const double Dest_LAT =18.786254, Dest_LON =73.880798;
double distanceToDest =
TinyGPSPlus::distanceBetween(
gps.location.lat(),
gps.location.lng(),
Dest_LAT,
Dest_LON);
Serial.print(F("Distance to Destination ="));
Serial.print(distanceToDest/1000, 6); // *Imprime la distance jusqu'à la destination
if(distanceToDest/1000 <0.0500000) //Ici, lorsque distanceToDest/1000 est inférieur à 0.050000, la LED s'allume. Modifiez donc * la distance jusqu'à la destination selon vos besoins.
{
digitalWrite(motorpin1,LOW);
digitalWrite(motorpin2,HIGH);
}
else
{
digitalWrite(motorpin1, ÉLEVÉ);
digitalWrite(motorpin2,HIGH);
}
}
if (gps.charsProcessed() <10)
Serial.println(F("AVERTISSEMENT :aucune donnée GPS. Vérifiez le câblage."));
last =millis();
Serial.println();
}
}

Bonne fabrication !

Code

  • Read_Lat_Lng.ino
  • Destination_notifier_LED.ino
  • Destination_notifier_motor.ino
Read_Lat_Lng.inoArduino
 #include #include static const int RXPin =4, TXPin =3;static const uint32_t GPSBaud =9600;// L'objet TinyGPS++TinyGPSPlus gps;// La connexion série au GPS deviceSoftwareSerial ss(RXPin, TXPin);void setup(){ Serial.begin(9600); ss.begin(GPSBaud);}void loop(){ // Ce sketch affiche des informations à chaque fois qu'une nouvelle phrase est correctement encodée. while (ss.available()> 0){ gps.encode(ss.read()); if (gps.location.isUpdated()){ Serial.print("Latitude="); Serial.print(gps.location.lat(), 6); Serial.print(" Longitude="); Serial.println(gps.location.lng(), 6); } }}
Destination_notifier_LED.inoArduino
#include #include static const int RXPin =4, TXPin =3;static const uint32_t GPSBaud =9600;// L'objet TinyGPS++TinyGPSPlus gps;// La connexion série au GPS deviceSoftwareSerial ss(RXPin, TXPin);// Pour les statistiques qui se produisent toutes les 5 secondes unsigned long last =0UL;int ledPin =13;void setup(){ Serial.begin(115200); ss.begin(GPSBaud);pinMode(ledPin, OUTPUT);}void loop(){ // Répartir les caractères entrants tandis que (ss.available()> 0) gps.encode(ss.read()); if (gps.location.isUpdated()) { Serial.print(F(" Lat=")); Serial.print(gps.location.lat(), 6); Serial.print(F(" Long=")); Serial.println(gps.location.lng(), 6); } else if (millis() - last> 5000) { Serial.println(); if (gps.location.isValid()) { // remplace les valeurs 'Dest_LAT' et 'Dest_LON' en fonction de votre emplacement // vous pouvez trouver la latitude et la longitude de Read_Lat_Lng.ino statique const double Dest_LAT =18,786254, Dest_LON =73,880798; double distanceToDest =TinyGPSPlus::distanceBetween( gps.location.lat(), gps.location.lng(), Dest_LAT, Dest_LON); Serial.print(F("Distance à destination =")); Serial.print(distanceToDest/1000, 6); // *Imprime la distance jusqu'à la destination if(distanceToDest/1000 <0.0500000) //Ici, lorsque la distanceToDest/1000 est inférieure à 0.050000, la LED s'allume. Modifiez donc * la distance jusqu'à la destination selon vos besoins. { digitalWrite(ledPin, HAUT); } else { digitalWrite(ledPin, LOW); } } if (gps.charsProcessed() <10) Serial.println(F("AVERTISSEMENT :aucune donnée GPS. Vérifiez le câblage.")); dernier =millis(); Serial.println(); }}
Destination_notifier_motor.inoArduino
#include #include static const int RXPin =4, TXPin =3;static const uint32_t GPSBaud =9600;// L'objet TinyGPS++TinyGPSPlus gps;// La connexion série au GPS deviceSoftwareSerial ss(RXPin, TXPin);// Pour les statistiques qui se produisent toutes les 5 secondes unsigned long last =0UL;int motorpin1=6;int motorpin2=7;void setup(){ Serial.begin(115200); ss.begin(GPSBaud);pinMode(motorpin1,OUTPUT);pinMode(motorpin2,OUTPUT); }void loop(){ // Distribue les caractères entrants tandis que (ss.available()> 0) gps.encode(ss.read()); if (gps.location.isUpdated()) { Serial.print(F(" Lat=")); Serial.print(gps.location.lat(), 6); Serial.print(F(" Long=")); Serial.println(gps.location.lng(), 6); } else if (millis() - last> 5000) { Serial.println(); if (gps.location.isValid()) { // remplace les valeurs 'Dest_LAT' et 'Dest_LON' en fonction de votre emplacement // vous pouvez trouver la latitude et la longitude de Read_Lat_Lng.ino statique const double Dest_LAT =18,786254, Dest_LON =73,880798; double distanceToDest =TinyGPSPlus::distanceBetween( gps.location.lat(), gps.location.lng(), Dest_LAT, Dest_LON); Serial.print(F("Distance à destination =")); Serial.print(distanceToDest/1000, 6); // *Imprime la distance jusqu'à la destination if(distanceToDest/1000 <0.0500000) //Ici, lorsque la distanceToDest/1000 est inférieure à 0.050000, la LED s'allume. Modifiez donc * la distance jusqu'à la destination selon vos besoins. { digitalWrite(motorpin1,LOW); digitalWrite(motorpin2, HIGH); } else { digitalWrite(motorpin1,HIGH); digitalWrite(motorpin2, HIGH); } } if (gps.charsProcessed() <10) Serial.println(F("AVERTISSEMENT :aucune donnée GPS. Vérifiez le câblage.")); dernier =millis(); Serial.println(); }}

Schémas

read_lat_lng_l3VSL54w0k.fzz destination_notifier_led_c7qaqTImXg.fzz destination_notifier_motor_fGc8OV6Y0w.fzz

Processus de fabrication

  1. Dés numériques Arduino
  2. Générateur d'ondes JX
  3. Iron Man
  4. Trouvez-moi
  5. Bras robotique Arduino imprimé en 3D
  6. Comment interfacer Arduino Mega avec le module GPS NEO-6M
  7. Contrôle de l'humidificateur Arduino
  8. module GPS u-blox LEA-6H 02 avec Arduino et Python
  9. NeoMatrix Arduino Pong