顯示具有 GPS 標籤的文章。 顯示所有文章
顯示具有 GPS 標籤的文章。 顯示所有文章

2017年5月5日 星期五

Bluetooth GPS Tracer

一個簡單有趣的 GPS 應用,可以拿來用在尋機…

結合現成的三種模組 GPS Module、HC12 RF Module、HC-05 Bluetooth Module 再加上簡單的 App 解 MNEA GPS 格式,就能實現遠距 GPS 追蹤,類似防丟器的概念,但即時距離可達 1 公里。

Combine "CRIUS GPS Module"、"HC12 - Long Range RF Wireless SERIAL Module" and "HC-05 Bluetooth Module",make remote location trace with 433mhz RF and Bluetooth comunication

App...
https://play.google.com/store/apps/details?id=com.longfellowchen.bluetoothgpstracer

系統架構 - System Architecture…
GPS--[UART]-->HC12-->~~[RF433MHZ]~~-->HC12-->HC-05-->~~[BT2.4G]-->SmartPhone

硬體線路 - Hardware circuit...
基本上只是把模組 UART 線路全串在一起…

Remote device...
GPS-TX ---------------->HC12-RX
GPS-RX ---------------->HC12-TX (option)

Local device
HC05-TX ---------------->HC12-RX(option)
HC05-RX ---------------->HC12-TX

All Module..
VCC ----------------> +5V
GND ----------------> GND

注意事項…
*All module should set the same baud-rate (default is 9600)
*HC12 Module can set transmit power to what you want. (see it's documents)


2017年4月15日 星期六

Convert NMEA format data to latitude and longitude for GMap Latlng


Reference...
http://aprs.gids.nl/nmea/

Format...
$GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,ddmmyy,x.x,a*hh
1    = UTC of position fix
2    = Data status (V=navigation receiver warning)
3    = Latitude of fix
4    = N or S
5    = Longitude of fix
6    = E or W
7    = Speed over ground in knots
8    = Track made good in degrees True
9    = UT date
10   = Magnetic variation degrees (Easterly var. subtracts from true course)
11   = E or W
12   = Checksum

Formula...
Latitude / Longitude = ddmm.mmmm = dd + (mm.mmmm/60) (* -1 for W and S)

Java code...
String str = "$GPRMC,182807.036,A,3731.9404,N,10601.6986,W,0.078542,40.74,050107,,*20"
if( str.startsWith( "$GPRMC" ) )
{
    String[] tags = str.split(",");
    if( tags[2].equals("A") ) {
        String lotdd = tags[3].substring( 0, tags[3].indexOf(".") - 2 );
        String lotmm = tags[3].substring( tags[3].indexOf(".") -2 );
        float lot = Float.valueOf( lotdd ) + Float.valueOf( lotmm )/60;
        if( tags[4].equals("S") )
            lot = -lot;
        String lngdd = tags[5].substring( 0, tags[5].indexOf(".") - 2 );
        String lngmm = tags[5].substring( tags[5].indexOf(".") -2 );
        float lng = Float.valueOf( lngdd ) + Float.valueOf( lngmm )/60;
        if( tags[6].equals("W") )
            lng = -lng;
        LatLng pos = new LatLng( lot, lng );
    } else {
        // Invalid $GPRMC
    }
}

VirtualBox 空間減肥

sdelete64 -z c: VBoxManage  modifymedium  disk  "/Users/fellow/VirtualBox VMs/Win10/Win10.vdi"  --compact *.vdi 路徑可以在 VirtualBox 儲...