Proses manufaktur
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
| ||||
|
|
Pendahuluan:Masalah dan Solusinya
Semua orang tahu bahwa kemacetan lalu lintas dapat membuang-buang waktu. Dan tidak mungkin untuk memprediksi berapa lama waktu yang dibutuhkan dari asal ke tujuan.
Masalah kemacetan lalu lintas mempengaruhi saya ketika saya datang ke sebuah kota dua bulan lalu. Setiap hari saya menghabiskan lebih dari dua jam terjebak dalam kemacetan. Dan saya merasa kenapa saya tidak bisa memanfaatkan waktu ini untuk melakukan sesuatu?
Catatan:Saya menggunakan transportasi umum. :-)
Ada banyak hal lain yang bisa kamu lakukan saat terjebak macet!
Beberapa di bawah ini tidak hanya menyenangkan, tetapi juga produktif:
Dan tentu saja membuat barang elektronik selalu menginspirasi saya. Jadi saya membuat pemberitahuan tujuan menggunakan modul Arduino dan GPS. Jadi apa yang dilakukannya adalah setiap kali Anda dekat dengan tujuan Anda, ia memberi tahu Anda dengan LED yang bersinar atau melalui getaran (dengan menggunakan motor bergetar mini). Saya telah menyediakan sirkuit untuk LED dan motor getar.
Untuk itu, pertama Anda perlu mencari lintang dan bujur untuk menentukan lokasi. Setelah Anda menemukan lokasi Anda, Anda dapat menggunakan nilai lintang dan bujur untuk menemukan jarak ke lokasi dan dengan menjaga jarak Anda dapat mengaktifkan pemberi tahu. Logikanya sederhana bukan?!
Jadi mari kita mulai.......
Bagian dan Alat:
Untuk memulai dengan pemberi tahu tujuan Anda, berikut adalah bagian yang diperlukan:
GPS singkatan dari sistem penentuan posisi global dan dapat digunakan untuk menentukan posisi, waktu, dan kecepatan jika Anda bepergian.
Modul GPS NEO-6M memiliki empat pin:VCC, RX, TX, dan GND. Modul berkomunikasi dengan Arduino melalui komunikasi serial menggunakan pin TX dan RX, sehingga pengkabelan menjadi lebih sederhana:
Modul GPS NEO-6MPengkabelan ke Arduino UNO
VCC VIN
Pin RX TX ditentukan dalam serial perangkat lunak
Pin TX RX ditentukan dalam serial perangkat lunak
GND GND
IC L293D
L293D adalah IC driver motor 16-pin yang dapat mengontrol hingga dua motor DC secara bersamaan ke segala arah.
Mengapa menggunakan L293D?
Input ke IC driver motor atau driver motor adalah sinyal arus rendah. Fungsi rangkaian adalah mengubah sinyal arus rendah menjadi sinyal arus tinggi. Sinyal arus tinggi ini kemudian diberikan ke motor.
Perpustakaan TinyGPS++ :
Pustaka TinyGPS++ memudahkan untuk mendapatkan informasi lokasi dalam format yang berguna dan mudah dipahami.
Pustaka TinyGPS++ memungkinkan Anda mendapatkan lebih banyak informasi daripada sekadar lokasi, dan dengan cara sederhana, selain lokasi, Anda bisa mendapatkan:
>>tanggal
>>waktu
>>kecepatan
>>kursus
>>ketinggian
>>satelit
>>hdop
Menangkap Lintang dan Bujur:
Saya akan menyarankan mengunduh file fritzing yang diberikan di akhir proyek untuk klarifikasi koneksi yang lebih baik atau jika Anda ragu, jangan ragu untuk bertanya di komentar.
Kode Arduino untuk Pengambilan Lokasi:
#include
#include
static const RXPin =4, TXPin =3;
static const uint32_t GPSBaud =9600;
// Objek TinyGPS++
TinyGPSPlus gps;
// Sambungan serial ke perangkat GPS
SoftwareSerial ss(RXPin, TXPin);
void setup(){
Serial.begin(9600);
ss.begin(GPSBaud);
}
void loop(){
// Sketsa ini menampilkan informasi setiap kali baru kalimat dikodekan dengan benar.
while (ss.available()> 0){
gps.encode(ss.read());
if (gps.location.isUpdated()){
Serial.print("Lintang =");
Serial.print(gps.location.lat(), 6);
Serial.print(" Bujur=");
Serial.println(gps.location.lng(), 6);
}
}
}
Catatan:Anda harus menginstal Perpustakaan TinyGPS++
sambungkan sesuai diagram rangkaian dan unggah kode di atas, Buka monitor serial pada baud rate 9600 dan Anda akan melihat output berikut
Catatan: Untuk mendapatkan garis lintang dan garis bujur mungkin diperlukan waktu. Karena penerima perlu menangkap sinyal. setiap kali mulai mendapatkan sinyal, LED pada modul GPS akan berkedip.
Pemberitahu Tujuan Melalui LED:
Jadi untuk memastikan ide saya berhasil, saya membuat prototipe menggunakan LED untuk memberi tahu tujuan. Jadi yang saya lakukan adalah, saya menambahkan nilai Latitude dan Longitude tujuan dari kode sebelumnya (Read_Lat_Lng.ino) dan menemukan jarak ke tujuan dari lokasi saat ini. Dan menggunakannya untuk mengatur rentang di mana LED harus menyala.
Kode:
#include
#include
static const RXPin =4, TXPin =3;
static const uint32_t GPSBaud =9600;
// Objek TinyGPS++
TinyGPSPlus gps;
// Sambungan serial ke perangkat GPS
SoftwareSerial ss(RXPin, TXPin);
// Untuk statistik yang terjadi setiap 5 detik
unsigned long last =0UL;
int ledPin =13;
void setup()
{
Serial.begin(115200);
ss.begin(GPSBaud);
pinMode(ledPin, OUTPUT);
}
void loop()
{
// Mengirim karakter yang masuk
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() - terakhir> 5000)
{
Serial.println();
if (gps.location.isValid())
{
// ganti nilai 'Dest_LAT' dan 'Dest_LON' bas edon lokasi Anda
// Anda dapat menemukan Lintang dan Bujur dari 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("Jarak ke Tujuan ="));
Serial.print(distanceToDest/1000, 6); // *Mencetak jarak ke tujuan
if(distanceToDest/1000 <0.050000) //Di sini ketika distanceToDest/1000 kurang dari 0.050000 LED menyala . Jadi ubah *jarak ke tujuan sesuai kebutuhan Anda.
{
digitalWrite(ledPin, HIGH);
}
else
{
digitalWrite(ledPin, LOW);
}
}
if (gps.charsProcessed() <10)
Serial.println(F("WARNING:No GPS data. Check wiring."));
last =milis();
Serial.println();
}
}
Unggah kode dan Anda akan melihat yang berikut di monitor serial.
Jadi jarak ke tujuan dapat digunakan untuk menentukan rentang di mana operasi keluaran (pemberitahuan) harus dilakukan.
Yang Terakhir!
OK prototipe saya bekerja dengan baik. Sekarang saya ingin memasukkan proyek saya ke dalam kotak yang dapat memuat Arduino, modul GPS, motor dengan IC driver, dan catu daya 9V.
Koneksi ke IC L293D
Kode:
#include
#include
static const RXPin =4, TXPin =3;
static const uint32_t GPSBaud =9600;
// Objek TinyGPS++
TinyGPSPlus gps;
// Sambungan serial ke perangkat GPS
SoftwareSerial ss(RXPin, TXPin);
// Untuk statistik yang terjadi setiap 5 detik
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 ()
{
// Mengirim karakter yang masuk
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 (milis( ) - terakhir> 5000)
{
Serial.println();
if (gps.location.isValid())
{
// ganti nilai 'Dest_LAT' dan 'Dest_LON' berdasarkan lokasi Anda
// Anda dapat menemukan Lintang dan Bujur dari 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("Jarak ke Tujuan ="));
Serial.print(jarakToDest/1000, 6); // *Mencetak jarak ke tujuan
if(distanceToDest/1000 <0.050000) //Di sini ketika distanceToDest/1000 kurang dari 0.050000 LED menyala . Jadi ubah *jarak ke tujuan sesuai kebutuhan Anda.
{
digitalWrite(motorpin1,LOW);
digitalWrite(motorpin2,HIGH);
}
else
{
digitalWrite(motorpin1, TINGGI);
digitalWrite(motorpin2,TINGGI);
}
}
if (gps.charsProcessed() <10)
Serial.println(F("PERINGATAN:Tidak ada data GPS. Periksa wiring."));
terakhir =milis();
Serial.println();
}
}
Selamat membuat!
#include#include static const RXPin =4, TXPin =3;static const uint32_t GPSBaud =9600;// The TinyGPS++ objectTinyGPSPlus gps;// Koneksi serial ke GPS deviceSoftwareSerial ss(RXPin, TXPin);void setup(){ Serial.begin(9600); ss.begin(GPSBaud);}void loop(){ // Sketsa ini menampilkan informasi setiap kali kalimat baru dikodekan dengan benar. while (ss.available()> 0){ gps.encode(ss.read()); if (gps.location.isUpdated()){ Serial.print("Latitude="); Serial.print(gps.location.lat(), 6); Serial.print("Bujur ="); Serial.println(gps.location.lng(), 6); } }}
#include#include static const RXPin =4, TXPin =3;static const uint32_t GPSBaud =9600;// The TinyGPS++ objectTinyGPSPlus gps;// Koneksi serial ke GPS deviceSoftwareSerial ss(RXPin, TXPin);// Untuk statistik yang terjadi setiap 5 detikunsigned long last =0UL;int ledPin =13;void setup(){ Serial.begin(115200); ss.begin(GPSBaud);pinMode(ledPin, OUTPUT);}void loop(){ // Mengirim karakter yang masuk 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("Panjang=")); Serial.println(gps.location.lng(), 6); } else if (milis() - terakhir> 5000) { Serial.println(); if (gps.location.isValid()) { // ganti nilai 'Dest_LAT' dan 'Dest_LON' berdasarkan lokasi Anda // Anda dapat menemukan Lintang dan Bujur dari 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("Jarak ke Tujuan =")); Serial.print(distanceToDest/1000, 6); // *Mencetak jarak ke tujuan if(distanceToDest/1000 <0.050000) //Di sini ketika distanceToDest/1000 kurang dari 0.050000 LED menyala . Jadi ubah *jarak ke tujuan sesuai kebutuhan Anda. { digitalWrite(ledPin, TINGGI); } else { digitalWrite(ledPin, RENDAH); } } if (gps.charsProcessed() <10) Serial.println(F("PERINGATAN:Tidak ada data GPS. Periksa wiring.")); terakhir =mili(); Serial.println(); }}
#include#include static const RXPin =4, TXPin =3;static const uint32_t GPSBaud =9600;// The TinyGPS++ objectTinyGPSPlus gps;// Koneksi serial ke GPS deviceSoftwareSerial ss(RXPin, TXPin);// Untuk statistik yang terjadi setiap 5 detikunsigned 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(){ // Mengirim karakter yang masuk 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("Panjang=")); Serial.println(gps.location.lng(), 6); } else if (milis() - terakhir> 5000) { Serial.println(); if (gps.location.isValid()) { // ganti nilai 'Dest_LAT' dan 'Dest_LON' berdasarkan lokasi Anda // Anda dapat menemukan Lintang dan Bujur dari 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("Jarak ke Tujuan =")); Serial.print(distanceToDest/1000, 6); // *Mencetak jarak ke tujuan if(distanceToDest/1000 <0.050000) //Di sini ketika distanceToDest/1000 kurang dari 0.050000 LED menyala . Jadi ubah *jarak ke tujuan sesuai kebutuhan Anda. { digitalWrite(motorpin1,LOW); digitalWrite(motorpin2,TINGGI); } else { digitalWrite(motorpin1,HIGH); digitalWrite(motorpin2,TINGGI); } } if (gps.charsProcessed() <10) Serial.println(F("PERINGATAN:Tidak ada data GPS. Periksa wiring.")); terakhir =mili(); Serial.println(); }}
Proses manufaktur
Komponen dan persediaan Arduino 101 × 1 Sensor Suhu DHT22 × 1 Kabel jumper (generik) × 1 LED (generik) × 2 Resistor 10k ohm × 1 Resistor 330 ohm × 2 Perisai tombol LCD DFRobot × 1 Breadboard (generik) × 1 A
Komponen dan persediaan LED (generik) × 10 Arduino UNO × 1 Resistor 221 ohm × 10 Kabel jumper (generik) × 13 Potensiometer putar (generik) × 1 Aplikasi dan layanan online Arduino IDE Tentang proyek ini Ada sepuluh LED
Komponen dan persediaan Arduino UNO × 2 SparkFun Transceiver Breakout - nRF24L01+ (RP-SMA) × 2 Funduino Joystick Shield V1.A × 1 SparkFun Dual H-Bridge driver motor L298 × 2 Kit Sasis Mobil Robot Cerdas 4WD × 1 LED (generik) × 3 Resi
Komponen dan persediaan Arduino Nano R3 × 1 Potensiometer putar (generik) × 7 Sakelar Tombol Tekan SparkFun 12mm × 7 port MIDI × 1 Resistor 221 ohm × 4 LED (generik) × 2 Tentang proyek ini Pembaruan 11.03.2019 Hai, Saya