这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
ocrobot:sensor_suite:gps:main [2019/06/14 09:11] – 创建 董凯萍 | ocrobot:sensor_suite:gps:main [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== GPS实时定位仪 ====== | ||
+ | OCROBOT GPS实时定位仪采用OCROBOT ALPHA系列模块堆叠而成。 | ||
+ | 本模型可以在户外露天的状态下,实时显示当前所属位置的日期、经度、纬度、定位状态与有效卫星、水平定位精度与椭球高度(单位:米)、航向(单位:度)与速度(单位:千米/ | ||
+ | |||
+ | =====图片展示===== | ||
+ | {{: | ||
+ | =====主要硬件===== | ||
+ | - OCROBOT ALPHA 8F32P-U主控板 | ||
+ | - OCROBOT ALPHA GPS定位/ | ||
+ | - OCROBOT ALPHA LCD1602显示屏 | ||
+ | - OCROBOT ALPHA 双路锂电池扩展板 | ||
+ | ===== 示例程序 ===== | ||
+ | 需要OCROBOT_APLHA_GPS_Module 库 | ||
+ | |||
+ | github: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | <code cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | GPS GPS(0x02); | ||
+ | LiquidCrystal_I2C lcd(0x20, | ||
+ | |||
+ | byte hh, | ||
+ | byte y,m,d; | ||
+ | uint16_t delayTime = 3000; | ||
+ | void setup() { | ||
+ | Wire.begin(); | ||
+ | lcd.init(); | ||
+ | lcd.backlight(); | ||
+ | } | ||
+ | void loop() { | ||
+ | / | ||
+ | GPS.UtcDate(y, | ||
+ | GPS.UtcTime(hh, | ||
+ | lcd.setCursor(0, | ||
+ | lcd.print(" | ||
+ | lcd.print(" | ||
+ | lcd.print(y); | ||
+ | lcd.print("/" | ||
+ | lcd.print(m); | ||
+ | lcd.print("/" | ||
+ | lcd.print(d); | ||
+ | lcd.setCursor(0, | ||
+ | lcd.print(" | ||
+ | lcd.print(hh); | ||
+ | lcd.print(":" | ||
+ | lcd.print(mm); | ||
+ | lcd.print(":" | ||
+ | lcd.print(ss); | ||
+ | lcd.print(":" | ||
+ | lcd.print(ms); | ||
+ | delay(delayTime); | ||
+ | lcd.clear(); | ||
+ | / | ||
+ | lcd.setCursor(0, | ||
+ | lcd.print(GPS.LatitudeDirection()); | ||
+ | lcd.print(":" | ||
+ | lcd.print(GPS.Latitude(), | ||
+ | |||
+ | lcd.setCursor(0, | ||
+ | lcd.print(GPS.LongitudeDirection()); | ||
+ | lcd.print(":" | ||
+ | lcd.print(GPS.Longitude(), | ||
+ | delay(delayTime); | ||
+ | lcd.clear(); | ||
+ | / | ||
+ | lcd.setCursor(0, | ||
+ | lcd.print(" | ||
+ | lcd.print(GPS.Positioning()); | ||
+ | lcd.setCursor(0, | ||
+ | lcd.print(" | ||
+ | lcd.print(GPS.Satellite()); | ||
+ | delay(delayTime); | ||
+ | lcd.clear(); | ||
+ | / | ||
+ | lcd.setCursor(0, | ||
+ | lcd.print(" | ||
+ | lcd.print(GPS.HDOP()); | ||
+ | lcd.setCursor(0, | ||
+ | lcd.print(" | ||
+ | lcd.print(GPS.MSL()); | ||
+ | delay(delayTime); | ||
+ | lcd.clear(); | ||
+ | / | ||
+ | lcd.setCursor(0, | ||
+ | lcd.print(" | ||
+ | lcd.print(GPS.Course()); | ||
+ | lcd.setCursor(0, | ||
+ | lcd.print(" | ||
+ | lcd.print(GPS.Speed()); | ||
+ | lcd.print(" | ||
+ | delay(delayTime); | ||
+ | lcd.clear(); | ||
+ | / | ||
+ | lcd.setCursor(0, | ||
+ | lcd.print(" | ||
+ | lcd.print(GPS.SeaLevel()); | ||
+ | delay(delayTime); | ||
+ | lcd.clear(); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | =====修改设备地址===== | ||
+ | 本设备默认地址为**2** 十六进制:**0x02**,如需自定义I2C地址,首先准备如下程序 【在默认地址模式下,使用下面的程序更新自定义地址】 | ||
+ | |||
+ | <code cpp> | ||
+ | #include < | ||
+ | / | ||
+ | byte I2CAddr = 10; // | ||
+ | / | ||
+ | void setup() { | ||
+ | Wire.begin(); | ||
+ | Serial.begin(9600); | ||
+ | |||
+ | Wire.beginTransmission(2); | ||
+ | Wire.write(200); | ||
+ | Wire.write(I2CAddr); | ||
+ | Wire.endTransmission(); | ||
+ | | ||
+ | Serial.println(" | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 自行修改程序中需要写入的地址,程序显示OK后,拨动开关,断电后即可。 | ||
+ | ==== 拨动开关示意图 ==== | ||
+ | {{: | ||
+ | {{: |