GPS Shield with Data Logger for Arduino UNO + แถมสายอากาศฟรี

GPS Shield with Data Logger for Arduino UNO + แถมสายอากาศฟรี
GPS Shield with Data Logger for Arduino UNO + แถมสายอากาศฟรี thumbnail 1GPS Shield with Data Logger for Arduino UNO + แถมสายอากาศฟรี thumbnail 2GPS Shield with Data Logger for Arduino UNO + แถมสายอากาศฟรี thumbnail 3
รหัสสินค้า SA10007
หมวดหมู่ GPS
ราคา 950.00 บาท
สถานะสินค้า พร้อมส่ง
แก้ไขล่าสุด 28 เม.ย. 2561
ความพึงพอใจ ยังไม่มีความคิดเห็น
จำนวน
ชิ้น
หยิบลงตะกร้า
Share
Scan this!
GPS Logger Shield for Arduino UNO + Free Antenna (ยี่ห้อ Duinopeak) มาพร้อมกับช่องใส่ SD การ์ดสำหรับบันทึกข้อมูลที่เกี่ยวข้องกับพิกัดต่างๆ



ตัวอย่าง Sketch จำเป็นต้องใช้ TinyGPS++ รวมทั้งต้องใช้ Arduino’s built-in SD library

หมายเหตุ: ตัวอย่าง Sketch นี้สำหรับ NEO-6M (สามารถเข้าไปโหลด source code จาก GitHub)

/******************************************************************************
This example uses SoftwareSerial to communicate with the GPS module on
pins 8 and 9, then communicates over SPI to log that data to a uSD card.

 

It uses the TinyGPS++ library to parse the NMEA strings sent by the GPS module,
and prints interesting GPS information – comma separated – to a newly created
file on the SD card.

Resources:
TinyGPS++ Library  – https://github.com/mikalhart/TinyGPSPlus/releases
SD Library (Built-in)
SoftwareSerial Library (Built-in)

Development/hardware environment specifics:
Arduino IDE 1.6.7
GPS Logger Shield v2.0 – Make sure the UART switch is set to SW-UART
Arduino Uno, RedBoard, Pro, Mega, etc.
******************************************************************************/

#include
#include
#include

#define ARDUINO_USD_CS 8 // uSD card CS pin (pin 8 on Duinopeak GPS Logger Shield)

/////////////////////////
// Log File Defintions //
/////////////////////////
// Keep in mind, the SD library has max file name lengths of 8.3 – 8 char prefix,
// and a 3 char suffix.
// Our log files are called “gpslogXX.csv, so “gpslog99.csv” is our max file.
#define LOG_FILE_PREFIX “gpslog” // Name of the log file.
#define MAX_LOG_FILES 100 // Number of log files that can be made
#define LOG_FILE_SUFFIX “csv” // Suffix of the log file
char logFileName[13]; // Char string to store the log file name
// Data to be logged:
#define LOG_COLUMN_COUNT 8
char * log_col_names[LOG_COLUMN_COUNT] = {
“longitude”, “latitude”, “altitude”, “speed”, “course”, “date”, “time”, “satellites”
}; // log_col_names is printed at the top of the file.

//////////////////////
// Log Rate Control //
//////////////////////
#define LOG_RATE 5000 // Log every 5 seconds
unsigned long lastLog = 0; // Global var to keep of last time we logged

/////////////////////////
// TinyGPS Definitions //
/////////////////////////
TinyGPSPlus tinyGPS; // tinyGPSPlus object to be used throughout
#define GPS_BAUD 9600 // GPS module’s default baud rate

/////////////////////////////////
// GPS Serial Port Definitions //
/////////////////////////////////
// If you’re using an Arduino Uno, Mega, RedBoard, or any board that uses the
// 0/1 UART for programming/Serial monitor-ing, use SoftwareSerial:
#include
#define ARDUINO_GPS_RX 3 // GPS TX, Arduino RX pin
#define ARDUINO_GPS_TX 2 // GPS RX, Arduino TX pin
SoftwareSerial ssGPS(ARDUINO_GPS_TX, ARDUINO_GPS_RX); // Create a SoftwareSerial

// Set gpsPort to either ssGPS if using SoftwareSerial or Serial1 if using an
// Arduino with a dedicated hardware serial port
#define gpsPort ssGPS  // Alternatively, use Serial1 on the Leonardo

// Define the serial monitor port. On the Uno, Mega, and Leonardo this is ‘Serial’
//  on other boards this may be ‘SerialUSB’
#define SerialMonitor Serial

void setup()
{
SerialMonitor.begin(9600);
gpsPort.begin(GPS_BAUD);

SerialMonitor.println(“Setting up SD card.”);
// see if the card is present and can be initialized:
if (!SD.begin(ARDUINO_USD_CS))
{
SerialMonitor.println(“Error initializing SD card.”);
}
updateFileName(); // Each time we start, create a new file, increment the number
printHeader(); // Print a header at the top of the new file
}

void loop()
{
if ((lastLog + LOG_RATE) <= millis())
{ // If it’s been LOG_RATE milliseconds since the last log:
if (tinyGPS.location.isUpdated()) // If the GPS data is vaild
{
if (logGPSData()) // Log the GPS data
{
SerialMonitor.println(“GPS logged.”); // Print a debug message
lastLog = millis(); // Update the lastLog variable
}
else // If we failed to log GPS
{ // Print an error, don’t update lastLog
SerialMonitor.println(“Failed to log new GPS data.”);
}
}
else // If GPS data isn’t valid
{
// Print a debug message. Maybe we don’t have enough satellites yet.
SerialMonitor.print(“No GPS data. Sats: “);
SerialMonitor.println(tinyGPS.satellites.value());
}
}

// If we’re not logging, continue to “feed” the tinyGPS object:
while (gpsPort.available())
tinyGPS.encode(gpsPort.read());
}

byte logGPSData()
{
File logFile = SD.open(logFileName, FILE_WRITE); // Open the log file

if (logFile)
{ // Print longitude, latitude, altitude (in feet), speed (in mph), course
// in (degrees), date, time, and number of satellites.
logFile.print(tinyGPS.location.lng(), 6);
logFile.print(‘,’);
logFile.print(tinyGPS.location.lat(), 6);
logFile.print(‘,’);
logFile.print(tinyGPS.altitude.feet(), 1);
logFile.print(‘,’);
logFile.print(tinyGPS.speed.mph(), 1);
logFile.print(‘,’);
logFile.print(tinyGPS.course.deg(), 1);
logFile.print(‘,’);
logFile.print(tinyGPS.date.value());
logFile.print(‘,’);
logFile.print(tinyGPS.time.value());
logFile.print(‘,’);
logFile.print(tinyGPS.satellites.value());
logFile.println();
logFile.close();

return 1; // Return success
}

return 0; // If we failed to open the file, return fail
}

// printHeader() – prints our eight column names to the top of our log file
void printHeader()
{
File logFile = SD.open(logFileName, FILE_WRITE); // Open the log file

if (logFile) // If the log file opened, print our column names to the file
{
int i = 0;
for (; i < LOG_COLUMN_COUNT; i++)
{
logFile.print(log_col_names[i]);
if (i < LOG_COLUMN_COUNT – 1) // If it’s anything but the last column
logFile.print(‘,’); // print a comma
else // If it’s the last column
logFile.println(); // print a new line
}
logFile.close(); // close the file
}
}

// updateFileName() – Looks through the log files already present on a card,
// and creates a new file with an incremented file index.
void updateFileName()
{
int i = 0;
for (; i < MAX_LOG_FILES; i++)
{
memset(logFileName, 0, strlen(logFileName)); // Clear logFileName string
// Set logFileName to “gpslogXX.csv”:
sprintf(logFileName, “%s%d.%s”, LOG_FILE_PREFIX, i, LOG_FILE_SUFFIX);
if (!SD.exists(logFileName)) // If a file doesn’t exist
{
break; // Break out of this loop. We found our index
}
else // Otherwise:
{
SerialMonitor.print(logFileName);
SerialMonitor.println(” exists”); // Print a debug statement
}
}
SerialMonitor.print(“File name: “);
SerialMonitor.println(logFileName); // Debug print the file name
}

You may need to edit the gpsPort and SerialMonitor objects, toward the top of the code to get the example to work correctly on your Arduino. The sketch defaults to using SoftwareSerial for the GPS, which should work for most boards – as long as the UART-Select jumper is set as SW-UART(D2-D7).

Before uploading the code, plug a µSD card into your GPS Logger Shield. Push it in gently until you hear a click. Then release, and let it latch into place.

Once that’s in place, upload and run! You can check the serial monitor for debugging data, or just trust that the logger is logging.

Once the GPS module gets a good fix, the Arduino will start logging longitude, latitude, altitude, speed, course, date, time, and the number of visible satellites into a CSV file. The data is set to log once every five seconds, but that’s easily tunable if you need more or less data.

Open the serial monitor you will see outputs as below:

After letting it log for a bit, turn off your Arduino, load the SD card into your computer, and check for a GPSLOG###.CSVfile. Open it up in a spreadsheet program, or just use a text editor to see what your Arduino logged.

Getting started with Duinopeak GPS Logger Shield-TinyGPS Serial Streaming for NEO-6M

A couple of our favorite GPS-parsing Arduino libraries are TinyGPS and TinyGPS++. These libraries simplify the task of parsing the excessive NMEA strings, leaving us with just the few bits of data we care about.

You need to install the libraries on your own Arduino development machine, visit the links above to download them. Reference sparkfun’s Installing an Arduino Librarytutorial for any additional library-installing help you may need.

TinyGPS++ Example for NEO-6M only

Here’s a quick example, which uses the TinyGPS++ library to parse NMEA strings for position, altitude, time, and date. The code is also available in GPS Shield GitHub repository.

/******************************************************************************
This example uses SoftwareSerial to communicate with the GPS module on
pins 8 and 9. It uses the TinyGPS++ library to parse the NMEA strings sent
by the GPS module, and prints interesting GPS information to the serial
monitor.

 

After uploading the code, open your serial monitor, set it to 9600 baud, and
watch for latitude, longitude, altitude, course, speed, date, time, and the
number of visible satellites.
******************************************************************************/

#include // Include the TinyGPS++ library
TinyGPSPlus tinyGPS; // Create a TinyGPSPlus object

#define GPS_BAUD 9600 // GPS module baud rate. GP3906 defaults to 9600.

// If you’re using an Arduino Uno, Mega, RedBoard, or any board that uses the
// 0/1 UART for programming/Serial monitor-ing, use SoftwareSerial:
#include
#define ARDUINO_GPS_RX 3 // GPS TX, Arduino RX pin
#define ARDUINO_GPS_TX 2 // GPS RX, Arduino TX pin
SoftwareSerial ssGPS(ARDUINO_GPS_TX, ARDUINO_GPS_RX); // Create a SoftwareSerial

// Set gpsPort to either ssGPS if using SoftwareSerial or Serial1 if using an
// Arduino with a dedicated hardware serial port
#define gpsPort ssGPS  // Alternatively, use Serial1 on the Leonardo

// Define the serial monitor port. On the Uno, Mega, and Leonardo this is ‘Serial’
//  on other boards this may be ‘SerialUSB’
#define SerialMonitor Serial

void setup()
{
SerialMonitor.begin(9600);
gpsPort.begin(GPS_BAUD);
}

void loop()
{
// print position, altitude, speed, time/date, and satellites:
printGPSInfo();

// “Smart delay” looks for GPS data while the Arduino’s not doing anything else
smartDelay(1000);
}

void printGPSInfo()
{
// Print latitude, longitude, altitude in feet, course, speed, date, time,
// and the number of visible satellites.
SerialMonitor.print(“Lat: “); SerialMonitor.println(tinyGPS.location.lat(), 6);
SerialMonitor.print(“Long: “); SerialMonitor.println(tinyGPS.location.lng(), 6);
SerialMonitor.print(“Alt: “); SerialMonitor.println(tinyGPS.altitude.feet());
SerialMonitor.print(“Course: “); SerialMonitor.println(tinyGPS.course.deg());
SerialMonitor.print(“Speed: “); SerialMonitor.println(tinyGPS.speed.mph());
SerialMonitor.print(“Date: “); printDate();
SerialMonitor.print(“Time: “); printTime();
SerialMonitor.print(“Sats: “); SerialMonitor.println(tinyGPS.satellites.value());
SerialMonitor.println();
}

// This custom version of delay() ensures that the tinyGPS object
// is being “fed”. From the TinyGPS++ examples.
static void smartDelay(unsigned long ms)
{
unsigned long start = millis();
do
{
// If data has come in from the GPS module
while (gpsPort.available())
tinyGPS.encode(gpsPort.read()); // Send it to the encode function
// tinyGPS.encode(char) continues to “load” the tinGPS object with new
// data coming in from the GPS module. As full NMEA strings begin to come in
// the tinyGPS library will be able to start parsing them for pertinent info
} while (millis() – start < ms);
}

// printDate() formats the date into dd/mm/yy.
void printDate()
{
SerialMonitor.print(tinyGPS.date.day());
SerialMonitor.print(“/”);
SerialMonitor.print(tinyGPS.date.month());
SerialMonitor.print(“/”);
SerialMonitor.println(tinyGPS.date.year());
}

// printTime() formats the time into “hh:mm:ss”, and prints leading 0’s
// where they’re called for.
void printTime()
{
SerialMonitor.print(tinyGPS.time.hour());
SerialMonitor.print(“:”);
if (tinyGPS.time.minute() < 10) SerialMonitor.print(‘0’);
SerialMonitor.print(tinyGPS.time.minute());
SerialMonitor.print(“:”);
if (tinyGPS.time.second() < 10) SerialMonitor.print(‘0’);
SerialMonitor.println(tinyGPS.time.second());
}

You may need to adjust the gpsPort and SerialMonitor defines near the top of the sketch. As it is, the sketch is set up to use the SoftwareSerial port.

After uploading the code, open up your serial monitor to watch the parsed GPS data stream.

If your module doesn’t have a good GPS fix, you’ll probably see a lot of 0’s stream by; the time should be incrementing, although it’ll be incorrect (unless you plugged your Arduino in at exactly midnight!).

If you can find a way to take your computer and Arduino setup outside, that’ll be your best bet for getting a fix. Otherwise, try to take it near an open window. The better view it has of the sky, the better chance it’ll have to find the four satellites it needs.

A successful, fixed GPS stream will look something like this:

Lat: 40.090422
Long: -105.184534
Alt: 5243.77
Course: 295.56
Speed: 0.01
Date: 26/1/2016
Time: 20:19:34
Sats: 6


Description:

The expansion board is specifically designed for the Ard uino UNO and other GPS record expansion boards. It provides two kinds of GPS antenna interfaces. With IO port pin with multiple analog interface, you can directly connect electronic building blocks for rapid prototyping. With an SD card slot, GPS information can be recorded.
 
Features: 
1. Use the active GPS antenna 
2. You can set the TxD and RxD jumper pins to connect to your need Ardino (D0-D8 optional), compared with a direct connection D0, D1 more scalable 
3. TF deck, SPI interface. Support Arduino library 
4. With a reset button, you can directly reset the Arduino backplane
สินค้านี้ยังไม่มีคนรีวิว
คำถาม
รายละเอียด
ชื่อผู้ถาม
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ถาม
สินค้านี้ยังไม่มีคนถามคำถาม

ชำระเงินค่าสินค้าโดยการโอนเงินเข้าบัญชีธนาคาร KBANK, SCB, BBL,TMB

กรุณาเก็บหลักฐานการโอนเงินของท่านไว้เพื่อแจ้งการชำระเงินด้วยค่ะ

 

ท่านสามารถแจ้งการชำระเงินผ่านระบบอัตโนมัติได้โดย Click Link ข้างล่างค่ะ

https://www.arduitronics.com/informpayment

 

ธ.กสิกรไทย สาขาโลตัส รัตนาธิเบศร์ ออมทรัพย์
ธ.ไทยพาณิชย์ สาขาโลตัส รัตนาธิเบศร์ ออมทรัพย์
ธ.กรุงเทพ สาขาเซ็นทรัล พระราม 3(2) ออมทรัพย์
ธ.ทหารไทย สาขาศูนย์การค้าวรรัตน์ ออมทรัพย์
  • ค่าธรรมเนียม 3.9% + 11 THB
  • การชำระผ่าน PayPal คุณไม่จำเป็นต้องแจ้งชำระเงิน เนื่องจากระบบจะจัดการให้คุณทันที ที่คุณชำระเงินเสร็จสมบูรณ์
เพื่อความเข้าใจตรงกันระหว่างผู้ซื้อและผู้ขายและมิตรภาพที่ดีต่อกัน กรุณาทำความเข้าใจเงื่อนไข

BEST SELLER

รหัสสินค้า BA00001
270.00 บาท
  • สั่งซื้อ
รหัสสินค้า SG00001
50.00 บาท
  • สั่งซื้อ
รหัสสินค้า BA00002
440.00 บาท
  • สั่งซื้อ
รหัสสินค้า AG00014
98.00 บาท
  • สั่งซื้อ
รหัสสินค้า AG00023
44.50 บาท
  • สั่งซื้อ
รหัสสินค้า BA00021
210.00 บาท
  • สั่งซื้อ
รหัสสินค้า SG00086
80.00 บาท
  • สั่งซื้อ
รหัสสินค้า AG00006
68.00 บาท
  • สั่งซื้อ
รหัสสินค้า SG00207
75.00 บาท
  • สั่งซื้อ

SALE

รหัสสินค้า BR00034
60.00 บาท
120.00 บาท
  • สั่งซื้อ
รหัสสินค้า
150.00 บาท
300.00 บาท
  • สั่งซื้อ
รหัสสินค้า BR00072
199.00 บาท
385.00 บาท
  • สั่งซื้อ
รหัสสินค้า AS00075
420.00 บาท
700.00 บาท
  • สั่งซื้อ
รหัสสินค้า BR00007
50.00 บาท
80.00 บาท
สินค้าหมด
รหัสสินค้า BR00028
120.00 บาท
190.00 บาท
สินค้าหมด
รหัสสินค้า
375.00 บาท
590.00 บาท
  • สั่งซื้อ
รหัสสินค้า BR00059
600.00 บาท
920.00 บาท
  • สั่งซื้อ
รหัสสินค้า BR00079
190.00 บาท
290.00 บาท
สินค้าหมด
เพิ่มเพื่อน

CATEGORY

Sensors / Modules [626]

CONTACT US

มือถือ0887823467 แฟกซ์02-0153201

SALE

รหัสสินค้า BR00034
60.00 บาท
120.00 บาท
  • สั่งซื้อ
รหัสสินค้า
150.00 บาท
300.00 บาท
  • สั่งซื้อ
รหัสสินค้า BR00072
199.00 บาท
385.00 บาท
  • สั่งซื้อ
รหัสสินค้า AS00075
420.00 บาท
700.00 บาท
  • สั่งซื้อ

NEW PRODUCTS

รหัสสินค้า SG20205
95.00 บาท
  • สั่งซื้อ
รหัสสินค้า AG00022
20.00 บาท
  • สั่งซื้อ
รหัสสินค้า AG10075
280.00 บาท
  • สั่งซื้อ
รหัสสินค้า ระบุที่สินค้าย่อย
475.00 บาท
รหัสสินค้า SD00098
35.00 บาท
  • สั่งซื้อ
รหัสสินค้า AG00272
120.00 บาท
  • สั่งซื้อ
รหัสสินค้า RU20015
225.00 บาท
  • สั่งซื้อ

เข้าร่วมร้านค้า

ร้านArduitronics
ร้านArduitronics
/www.arduitronics.com/
สมัครสมาชิกร้านนี้ เพื่อรับสิทธิพิเศษ

STATISTICS

หน้าที่เข้าชม6,753,341 ครั้ง
ผู้ชมทั้งหมด2,103,933 ครั้ง
เปิดร้าน21 พ.ค. 2556
ร้านค้าอัพเดท22 มิ.ย. 2561

MEMBER

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)
Go to Top
พูดคุย-สอบถาม คลิก