Простой gps-трекер
Содержание:
Описание SPI
Serial Peripheral Interface (SPI) — это последовательный, синхронный, полнодуплексный протокол передачи данных между главным (master) контроллером (обычно микроконтроллером или другими устройством с программируемой функциональностью) и несколькими ведомыми (slave) устройствами. Как мы увидим далее, SPI позволяет передавать данные как в полнодуплексном, так и в полудуплексном режиме. Спецификация SPI стандарт в протоколах передачи данных и была разработана в конце 70-х компанией Motorola и на данный широко используется как протокол передачи данных для многих цифровых микросхем. В отличие от протокола I2C, SPI не задает жестких условий в протоколе передачи данных по шине, давая ведомым (slave) устройствам полную свободу в структуре сообщений обмена данными.
Рисунок 1: Архитектура типовой SPI шины.
Типовая шина SPI содержит 4 сигнала, как показано на рисунке 1, даже, если возможно управлять некоторыми SPI устройствами, используя лишь 3 сигнала (в таком случае мы говорим о 3-проводном SPI).
- SCK: сигнал, используемый для генерации тактовой частоты синхронизации передачи данных по SPI. Генерируется master устройством и это означает, что каждая передача по шине SPI всегда начинается по инициативе master устройства. В отличие от I2C SPI более быстрый интерфейс передачи данных и тактовая частота обычно в районе нескольких мегагерц. В наше время вполне обычно найти SPI устройства со скоростью обмена данными от 100 МГц и выше. Более того, протокол SPI позволяет работать в одной шине на различных скоростях в одно и то же время.
- MOSI: расшифровывается как Master Output Slave Input и используется для передачи данных от главного (master) устройства к ведомому (slave). В отличие от I2C, где для обмена между устройствами используется лишь один провод, в SPI предусмотрено две линии передачии данных.
- MISO: расшифровывается как Master Input Slave Output и используется для передачи данных от ведомого (slave) устройства к главному (master).
- SSn: Slave Select используется для адресации устройств в шине SPI, где „n“ — количество линий адресации. В отличие от I2C, SPI не использует адреса ведомых (slave) устройств, а использует физические линии адресации, которые устанавливаются в низкий логический уровень для выбора устройства. В типовой SPI шине только одно ведомое (slave) устройство может быть активно в одно время путем установки линии SS в низкий уровень. В этом причина того, что в одной и той же шине могут быть устройства с разной скоростью передачи данных.
Имея две раздельные шины данных, MOSI и MISO, SPI по сути является полнодуплексным интерфейсом передачи данных, таким образом ведомое (slave) устройство может отдавать данные главному (master) пока одновременно принимает данные от него же. В одноранговых шинах (когда одно главное (master) и одно ведомое (slave) устройства), сигнал SS может не использоваться, лишь достаточно его подтянуть к «земле» резистором на несколько килоом, линии MISO/MOSI соединяются в одно общую линию Slave In/Slave Out (SISO). В таком случае мы говорим о двухпроводном SPI, хотя по существу он конечно же трехпроводной.
Рисунок 2: Как передаются данные по шине SPI в полнодуплексном режиме
Каждая транзакция в шине начинается с подачи тактирования в линию SCK в соответствии с допустимой тактовой частотой ведомого (slave) устройства. В то же время главное (master) устройство устанавливает LOW уровень на линии SS и передача данных начинается. Обычно обмен данными подразумевает использование двух регистров (в основном 8-битные, хотя некоторые slave устройства поддерживают 16-битный размер слова), одного в главном (master) устройстве и один в ведомом (slave). Данные побитно сдвигаются в сдвиговом регистре, начиная со старшего бита, пока младший бит сдвигается в этот же самый регистр. В это же самое время, данные от ведомого (slave) устройства сдвигаются в младший бит регистра данных. Когда все биты регистра будут сдвинуты в одну и другую сторону обмен данными будет осуществлен. Если необходимо передать более одного слова данных, сдвиговые регистры обнуляются и процесс повторяется. Обмен данными может продолжаться сколько угодно большое количество циклов тактового генератора. Когда обмен завершен master выключает тактовый сигнал и линия SS возвращается в исходное состояние высокого логического уровня.
Рисунок 2 показывает процесс обмена данными в полнодуплексном режиме, рисунок 3 же демонстрирует процесс в полудуплексном режиме.
Рисунок 3: Как передаются данные по шине SPI в полудуплексном режиме
Supported modems
- SIMCom SIM800 series (SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868)
- SIMCom SIM900 series (SIM900A, SIM900D, SIM908, SIM968)
- SIMCom WCDMA/HSPA/HSPA+ Modules (SIM5360, SIM5320, SIM5300E, SIM5300E/A)
- SIMCom LTE Modules (SIM7100E, SIM7500E, SIM7500A, SIM7600C, SIM7600E)
- SIMCom SIM7000E/A/G CAT-M1/NB-IoT Module
- AI-Thinker A6, A6C, A7, A20
- ESP8266 (AT commands interface, similar to GSM modems)
- Digi XBee WiFi and Cellular (using XBee command mode)
- Neoway M590
- u-blox 2G, 3G, 4G, and LTE Cat1 Cellular Modems (many modules including LEON-G100, LISA-U2xx, SARA-G3xx, SARA-U2xx, TOBY-L2xx, LARA-R2xx, MPCI-L2xx)
- u-blox LTE-M/NB-IoT Modems (SARA-R4xx, SARA-N4xx, but NOT SARA-N2xx)
- Sequans Monarch LTE Cat M1/NB1 (VZM20Q)
- Quectel BG96
- Quectel M95
- Quectel MC60 (alpha)
Supported boards/modules
- Arduino MKR GSM 1400
- GPRSbee
- Microduino GSM
- Adafruit FONA (Mini Cellular GSM Breakout)
- Adafruit FONA 800/808 Shield
- Industruino GSM
- RAK WisLTE (alpha)
- … other modules, based on supported modems. Some boards require special configuration.
More modems may be supported later:
- Quectel M10, UG95
- SIMCom SIM7020
- Telit GL865
- ZTE MG2639
- Hi-Link HLK-RM04
Watch this repo for new updates! And of course, contributions are welcome 😉
Настройка GPS-модуля для работы с ESP8266
Вот схема для подключения GPS-модуля e-blox и чипа EP8266:
Подключение GPS-модуля e-blox к плате NodeMCU, оснащенной чипом ESP8266
То есть вам нужно будет подключить следующие контакты:
- Контакт E на GPS-модуле (желтый) – к контакту 3.3V на ESP8266
- Контакт G (черный) – к контакту GND
- Контакт R (зеленый) – к контакту D6
- Контакт T (синий) – к контакту D5
- Контакт V (красный) – к контакту 3.3V
- Контакт P (белый) – оставьте неподключенным
Итак, теперь, когда GPS-модуль подключен к ESP8266, мы можем загрузить на него код. Мы хотим, чтобы ESP8266 считывал сообщения, а затем отправлял их на монитор порта IDE Arduino. Код для этих действий будет выглядеть следующим образом:
1 #include <SoftwareSerial.h>
2
3 // если вы используете не плату NodeMCU, а другой модуль ESP8266,
4 // вам могут понадобиться другие GPIO-контакты:
5 SoftwareSerial mySerial(D5, D6); // RX, TX
6
7 void setup() {
8 Serial.begin(115200);
9 while (!Serial) {
10 ; // ждем подключения последовательного порта
11 // (нужно только для штатного USB-порта)
12 }
13
14 // задаем скорость передачи данных через порт SoftwareSerial:
15 mySerial.begin(9600);
16
17 }
18
19 void loop() {
20 if (mySerial.available()) {
21 Serial.write(mySerial.read());
22 }
23 if (Serial.available()) {
24 mySerial.write(Serial.read());
25 }
26 }
Загрузите этот скетч на ESP8266 и откройте монитор порта IDE Arduino. Вы должны увидеть входящие NMEA-сообщения. Поначалу некоторые данные могут быть пропущены, но чем больше сигналов будет получать ресивер, тем полнее будет информация о позиционировании. Но это была лишь начальная проверка. Теперь давайте попробуем воспользоваться библиотекой, умеющей работать с NMEA-сообщениями.
Библиотеки датчиков ардуино
Библиотека DHT
Библиотека, которая позволяет считать данные с температурных датчиков DHT-11 и DHT-22.
#include < DHT.h>
DHT dht(DHTPIN, DHT11); – инициализирует датчик (в данном случае DHT11).
dht.begin(); – запуск датчика.
float t = dht.readTemperature(); – считывание текущего значения температуры в градусах Цельсия.
Библиотека DallasTemperature
Предназначается для работы с датчиками Dallas. Работает совместно с библиотекой OneWire.
#include <DallasTemperature.h>
DallasTemperature dallasSensors(&oneWire); – передача объекта oneWire для работы с датчиком.
requestTemperatures() – команда считать температуру с датчика и
положить ее в регистр.
printTemperature(sensorAddress); – запрос получить измеренное значение температуры.
Библиотека Ultrasonic
Обеспечивает работу Ардуино с ультразвуковым датчиком измерения расстояния HC-SR04.
#include <Ultrasonic.h>
Ultrasonic ultrasonic (tig , echo) – объявление объекта, аргументы – контакт Trig и контакт Echo.
dist = ultrasonic.distanceRead(); – определение расстояния до объекта. Агрумент – сантиметры(СМ) или дюймы (INC).
Timing() – считывание длительности импульса на выходе Echo, перевод в необходимую систему счисления.
Библиотека ADXL345
Предназначается для работы с акселерометром ADXL345.
Пример использования:
#include <Adafruit_ ADXL345.h>
ADXL345_ADDRESS – создание объекта, указание его адреса.
ADXL345_REG_DEVID – идентификация устройства.
ADXL345_REG_OFSX – смещение по оси Х.
ADXL345_REG_BW_RATE – управление скоростью передачи данных.
Библиотека BME280
Предназначается для работы с датчиком температуры, влажности и давления BME280.
Пример использования:
#include <Adafruit_BME280.h>
BME280_ADDRESS – создание объекта BME280, указание его адреса.
begin(uint8_t addr = BME280_ADDRESS); – начало работы датчика.
getTemperature – получение измеренной температуры.
getPressure – получение измеренного давления.
Библиотека BMP280
Требуется для работы с датчиком атмосферного давления BMP280.
Пример использования:
#include <Adafruit_BMP280.h>
BMP280_CHIPID – создание экземпляра, указание его адреса.
getTemperature(float *temp); – получение измеренной температуры.
getPressure(float *pressure); – получение измеренного значения давления.
Библиотека BMP085
Требуется для работы с датчиком давления BMP085.
Пример использования:
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp; – создание экземпляра BMP085.
dps.init(MODE_ULTRA_HIGHRES, 25000, true); – измерение давления, аргумент 25000 – высота над уровнем моря (в данном случае 250 м. над уровнем моря).
dps.getPressure(&Pressure); – определение давления.
Библиотека FingerPrint
Требуется для работы со сканером отпечатков пальцев.
Пример использования
#include <Adafruit_Fingerprint.h>
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial); – объявление объекта Finger. Параметр – ссылка на объектр для работы с UART, кокторому подключен модуль.
finger.begin(); – инициализация модуля отпечатков пальцев.
Func_sensor_communication(); – вызов модуля отпечатков пальцев.
Схема соединения

PmodCLS: в уроке использован модуль PmodCLS для ЖК-экрана потому, что он был доступен, и в интернете были примеры кода для его использования в Arduino IDE. PmodCLS использует питание 5 В, заземление и линию RX для приема данных от Arduino Uno для отображения. Эти соединения расположены в «верхнем» ряду контактов в секции J2. Задняя сторона PmodCLS указывает, какие контакты V+, GND и RX. TX не нужен, так как экран не будет отправлять данные обратно в Arduino Uno. RX подключается к PIN X на Arduino.

PmodGPS: PmodGPS использует соединение UART с Arduino Uno. Подключите TX на PmodGPS к RX на Arduino Uno и RX на PmodGPS к TX на Arduino Uno.
Это соединение необходимо выполнить после загрузки кода в Arduino Uno, поскольку в среде IDE Arduino для загрузки кода используется последовательный порт, а PmodGPS прервет это соединение.

Вывод 1PPS является выходным выводом «1 импульс в секунду», который синхронизирован со временем GPS. Подсоедините контакт 1PPS к PIN X на Arduino Uno. Пин 3DF показывает статус позиционной привязки пользователя. Когда модуль имеет постоянное позиционирование, этот вывод остается LOW, а если модуль не может получить фиксированную позицию, то вывод будет переключаться каждую секунду. Нет уверенности в том, что именно это означает, в процессе реализации проекта не было разницы в производительности от того была ли позиция «фиксированной» или нет. Подключите штырь 3DF к штырю X на Arduino Uno. Наконец, подключите GND и 3.3V.

Батарея USB: для использования автономного аккумулятор сначала загрузите код в Arduino Uno, подключите TX/RX PmodGPS, затем подключите батарею USB к Arduino Uno.
Ниже приведены примеры выходных дисплеев на ЖК-экране. Все компоненты хранятся в фанни-пакете, так как это было частью более крупного проекта, упомянутого в начале этого проекта.
Parsing NMEA Sentences with TinyGPS++ Library
You can work with the raw data from the GPS, or you can convert those NMEA messages into a readable and useful format, by saving the characters sequences into variables. To do that, we’re going to use the TinyGPS++ library.
This library makes it simple to get information on location in a format that is useful and easy to understand. You can click here for more information about the TinyGPS++ Library.
Installing the TinyGPS++ Library
Follow the next steps to install the TinyGPS++ library in your Arduino IDE:
- Click here to download the TinyGPSPlus library. You should have a .zip folder in your Downloads folder
- Unzip the .zip folder and you should get TinyGPSPlus-master folder
- Rename your folder from
TinyGPSPlus-masterto TinyGPSPlus - Move the TinyGPSPlus folder to your Arduino IDE installation libraries folder
- Finally, re-open your Arduino IDE
The library provides several examples on how to use it. In your Arduino IDE, you just need to go to File > Examples > TinyGPS++, and choose from the examples provided.
Note: the examples provided in the library assume a baud rate of 4800 for the GPS module. You need to change that to 9600 if you’re using the NEO-6M GPS module.
Getting Location Using the NEO-6M GPS Module and the TinyGPS++ Library
You can get the location in a format that is convenient and useful by using the TinyGPS++ library. Below, we provide a code to get the location from the GPS. This is a simplified version of one of the library examples.
You start by importing the needed libraries: TinyGPSPlus and SoftwareSerial
Then, you define the software serial RX and TX pins, as well as the GPS baud rate. If you are using other pins for software serial you need to change that here. Also, if your GPS module uses a different default baud rate, you should also modify that.
Then, you create a TinyGPS++ object:
And start a serial connection on the pins you’ve defined earlier
In the setup(), you initialize serial communication, both to see the readings on the serial monitor and to communicate with the GPS module.
In the loop is where you request the information. To get TinyGPS++ to work, you have to repeatedly funnel the characters to it from the GPS module using the encode() method.
Then, you can query the gps object to see if any data fields have been updated:
Getting the latitude and longitude is has simple has using gps.location.lat(), and gps.location.lng(), respectively.
Upload the code to your Arduino, and you should see the location displayed on the serial monitor. After uploading the code, wait a few minutes while the module adjusts the position to get a more accurate data.

Getting More GPS Information Using the TinyGPS++ Library
The TinyGPS++ library allows you to get way more information than just the location, and in a simple way. Besides the location, you can get:
- date
- time
- speed
- course
- altitude
- satellites
- hdop
The code below exemplifies how you can get all that information in a simple way.
The TinyGPS++ library is well commented on how to use all its functionalities.
Arduino GPS модуль GY-NEO6MV2
Модуль использует стандартный протокол NMEA 0183 для связи с GPS приемниками. Приемник представляет собой плату, на которой располагаются модуль NEO-6M-0-001, стабилизатор напряжения, энергонезависимая память, светодиод и аккумулятор.
Технические характеристики модуля:
- Напряжение питания 3,3-5В;
- Интерфейс UART 9600 8N1 3.3V;
- Протокол NMEA;
- Вес модуля 18 гр.;
- Наличие EEPROM для сохранения настроек;
- Наличие встроенной батареи;
- Возможность подключения антенны к разъему U-FL;
- Время холодного старта примерно 27 секунд, время горячего старта – 1 секунда;
- Наличие более 50 каналов позиционирования;
- Частота обновления 5 Гц;
- Рабочие температуры от -40С до 85С.
Модуль широко используется для коптеров, определения текущего положения малоподвижных объектов и транспортных средств. Полученные координаты можно загрузить в карты Google Maps, Google Earth и другие.
После холодного старта модуля начинается скачивание альманаха. Время загрузки – не более 15 минут, в зависимости от условий и количество спутников в зоне видимости.
Распиновка: GND (земля), RX (вход для данных UART), TX (выход для данных UART), Vcc – питание от 3,3В до 5 В.
Для подключения потребуются модуль GY-NEO6MV2, плата Ардуино, провода, антенна GPS. Соединение контактов: VCC к 5V, GND к GND, RX к 9 пину на Ардуино, TX к 10 пину. Затем Ардуино нужно подключить к компьютеру через USB.
Для работы потребуется подключить несколько библиотек. SoftwareSerial – требуется для расширения аппаратных функций устройства и обработки задачи последовательной связи. Библиотека TinyGPS используется для преобразования сообщений NMEA в удобный для чтения формат.
Проверка работы через программу U-Center
Как упоминалось выше, модуль производится компанией u-blox, поэтому для настройки приемника используется программа U-Center.
При подключении к UART приемник отправляет сообщения при помощи протокола NMEA раз в секунду. С помощью программы можно настраивать передаваемые сообщения.
Чтобы настроить модуль, нужно подключить его через USB-UART(COM-UART) преобразователь. Настроить подключение можно с помощью меню Receiver-Port . Как только будет установлено соединение, загорится зеленый индикатор. Приемник начнет устанавливать соединения со спутниками, после чего на экране появятся текущие координаты, время и другая информация. Все сообщения появляются в окне Messages. В меню View – Messages можно выбрать сообщения, которые будут передаваться к микроконтроллеру. В зависимости от поставленной задачи, можно уменьшить количество отправляемых сообщений, что увеличит скорость обработки данных и облегчит алгоритм разбора сообщений контроллером.
Если не устанавливается связь со спутником, нужно проверить, подключена ли антенна. Затем нужно проверить напряжение питание, оно должно быть 5В. Если соединение так и не устанавливается, можно поместить модуль к окну или выйти на открытую территорию.
Посмотреть передающиеся данные можно через меню View.

Все сообщения начинаются символом $, следующие за ним символы – идентификаторы сообщения. GP- это глобальная система, следующие 3 буквы показывают, какая информация содержится.
RMC – наименьшая навигационная информация (время, дата, координаты, скорость, направление).
GGA – зафиксированная информация позиционирования. Записаны время, координаты, высота, статус определения местоположения, количество спутников.
Проверка работы через Arduino IDE
Работать с модулем можно также через стандартную среду разработки Arduino IDE. После подключения модуля к плате, нужно загрузить скетч и посмотреть на результат. Если на мониторе появится бессвязный набор знаков, нужно отрегулировать скорость интерфейса Ардуино с компьютером и скорость интерфейса модуля с контроллером.
Скетч для вывода данных о местоположении.
После того, как код будет залит, нужно подождать несколько секунд (время холодного старта), чтобы устройство смогло определить местоположение и начать показывать координаты. Как только устройство начнет свою работу, на плате будет мигать светодиод.
В мониторе порта появятся данные широты и долготы. Также будет получено значение текущей даты и времени по Гринвичу. Установить свой часовой пояс можно вручную – это делается в строке Serial.print(static_cast(hour+8));
Wiring NEO-6M GPS module with Arduino UNO
Now that we know everything about the module, we can begin hooking it up to our Arduino!
Start by connecting the patch antenna to the U.FL connector. Remember to thread the U.FL cable through one of the mounting holes for robust connection.
The module usually comes with header pins unsoldered. So, you’ll need to solder them.
Now, connect Tx and Rx pin on module to digital pin#2 and #3 respectively on Arduino; as we’ll be using software serial to talk to the module.
Next, connect VCC pin to the 5V pin on the arduino and GND to ground.

Wiring NEO-6M GPS Module to Arduino UNO
Once you have everything hooked up you are ready to go!
Обзор программ для работы с GPS на компьютере

Прежде чем приступать к подключению GPS к ардуино, нужно научиться тестировать сам модуль. Для этого нам обязательно понадобится программа, позволяющая показать статус устройства, количество пойманных спутников и другу тестовую информацию. Мы постарались собрать вместе наиболее популярный софт для работы с GPS на компьютере.
U-Center
Ссылка на скачивание – https://www.u-blox.com/en/product/u-center-windows
Программа u-center используется для работы с GNSS-проемниками от фирмы U-Blox. С помощью этого программного обеспечения можно тестировать точность позиционирования, изменять конфигурацию ресивера и проводить общую диагностику, обрабатывать полученные данные и отображать их в режиме реального времени. Координаты приемник получает с помощью GPS, ГЛОНАСС. Полученную информацию можно экспортировать и показывать в картах Google Maps, Google Earth. Программа позволяет создавать двухмерные диаграммы, гистограммы и другие виды графиков. u-center можно использовать при работе с несколькими приемниками.
Возможности программного обеспечения U-Center:
- Работа с Windows;
- Чтение NMEA , SiRF данных, UBX;
- Вывод полученных данных в виде текста и графиков;
- Запись данных, и воспроизведение;
- Полное управление модулем GPS;
- Возможность изменения конфигурации GPS-модуля;
- Запись новой конфигурации в модуль;
- Запись конфигурации в файл формата .txt;
- Обновление прошивки модуля;
- Возможность холодного, теплого и горячего старта модуля.
Программа позволяет оценивать работоспособность приемника, анализировать его быстродействие и устанавливать его настройки. Помимо U-Center могут использоваться и другие программы, например, Visual GPS, Time Tools GPS Clock и другие.
Visual GPS
Ссылка на скачивание http://www.visualgps.net/VisualGPS/download.htm
Эта программа используется для отображения GPS данных по протоколу NMEA 0183 в графическом виде. Программа позволяет записывать лог GPS данных в файл. Существует два режима работы в программе – в первом Visual GPS связывается с приемником GPS, а во втором Visual GPS считывает показания NMEA из файла. Программа имеет 4 основных окна – Signal Quality (качество сигнала), Navigation (навигация), Survey (исследование), Azimuth and Elevation (азимут и высота).
Time Tools GPS Clock
Ссылка на скачивание https://softadvice.informer.com/Time_Tools_Gps_Clock.html
Эта программа работает на Windows и любых рабочих станциях, она проверяет время со стандартного приемника времени NMEA GPS, который подключен к компьютеру, и позволяет синхронизировать время на ПК. Отображается информация о времени, дате, состоянии GPS, полученная от приемника. Недостатком программы является невозможность высокоточного определения времени, так как GPS-устройства не имеют секундного импульса для последовательного порта компьютера.
GPS TrimbleStudio
Ссылка на скачивание http://softwaretopic.informer.com/trimble-gps-studio/
Программное обеспечение используется для работы с приемником Copernicus в Windows. Программа отображает принимаемые навигационные данные. Полученные координаты можно отобрать на картах Google Maps, Microsoft Visual Earth. Все установленные настройки приемника можно сохранить в конфигурационном файле
Fugawi
Ссылка на скачивание http://www.fugawi.com/web/products/fugawi_global_navigator.htm
Программа используется для планирования маршрута, GPS навигации в реальном времени. Программа позволяет записывать и сохранять маршруты и путевые точки на картах. Навигация производится как на суше, так и на воде и в воздухе. В программе используются различные виды цифровых карт – топографические карты, стандарты NOAA RNC, отсканированные копии бумажных карт, Fugawi Street Maps.
3D World Map
Ссылка на скачивание www.3dwamp.com
В этой программе можно увидеть землю в трехмерном виде. Используется как удобный географический справочник, в котором можно узнать информацию 269 странах и тридцати тысячах населенных пунктов, производить измерение между двумя точками, воспроизводить аудиозаписи.
Other Useful Functions In TinyGPS++ Library
There are a few useful functions you can use with TinyGPS++ object. Few of them are listed below:
- function returns current ground speed in 100ths of a knot.
- function returns current ground course in 100ths of a degree.
- function returns the number of visible, participating satellites.
- function returns horizontal diminution of precision.
- If you want to know how old an object’s data is, call its method, which returns the number of milliseconds since its last update. If this returns a value greater than 1500 or so, it may be a sign of a problem like a lost fix.
- If you want to extract data from any other NMEA sentence. You can use library’s custom extraction functionality by telling TinyGPS++ the sentence name and the field number you are interested in, like this:And you can query it just like the others: