Предложение по архитектуре для подключения устройства OBD2 к сервису AWS
Пример использования
У меня есть устройство OBD2, которое можно настроить, задав ему IP-адрес и порт для связи. Единственное средство связи с устройством OBD - это SMS. Устройство OBD имеет SIM-карту, через которую он может общаться (прилагаемое изображение документации). Я хочу получить данные с устройства и запустить код Python, который выполнит некоторое преобразование (что-то вроде AWS Lambda) и отправит данные JSON в S3.
У меня вопрос: можно ли использовать здесь какой-либо сервис AWS для получения данных с этого устройства? Мне не разрешено писать какой-либо код в ОС устройства OBD или устанавливать какой-либо SDK.
Документация по устройству OBD2
Данные, полученные через слушателя
4/7/2019 12:57:12 PM
L,ATLOBD,866795030623415,03,6806,072703,070419,CAN,0101:00076100,0103:0100,0104:48,0105:49,010A:XX,010B:26,010C:16DB,010D:00,010E:81,010F:50,0110:XXXX,0111:34,011C:06,011F:000B,0121:0000,0122:XXXX,012F:XX,0162:XX,0132:XXXX,0133:60,0143:006F,0145:10,0146:XX,0147:24,0148:XX,0149:23,014A:12,014B:XX,014C:19,0151:XX,0131:9172,0144:XXXX,015E:XXXX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0902:XXXXXXXXXXXXXXXXXXXX,$ATLOBD,*N
Данные после запуска кода Python для преобразования
Код Python - это функция, которая может принимать указанные выше данные, выполнять предварительную обработку и преобразовывать данные в указанное ниже значение JSON для хранения в корзине S3 или любой базе данных.
{
"Live/Memory": "L",
"Signature": "ATLOBD",
"IMEI": "866795030623415",
"Message Type": "03",
"Sequence No": "6816",
"Time (GMT)": "073203",
"Date": "070419",
"OBD Protocol": "CAN",
"0101": "00076100",
"0103": "0200",
"0104": "69",
"0105": "7F",
"010A": "XX",
"010B": "4D",
"010C": "1977",
"010D": "2F",
"010E": "BC",
"010F": "54",
"0110": "XXXX",
"0111": "2B",
"011C": "06",
"011F": "012D",
"0121": "0000",
"0122": "XXXX",
"012F": "XX",
"0162": "XX",
"0132": "XXXX",
"0133": "60",
"0143": "006E",
"0145": "13",
"0146": "XX",
"0147": "2E",
"0148": "XX",
"0149": "2F",
"014A": "17",
"014B": "XX",
"014C": "1F",
"0151": "XX",
"0131": "9174",
"0144": "XXXX",
"015E": "XXXX",
"0902": "XXXXXXXXXXXXXXXXXXXX"
}
Заранее спасибо
1 ответ
Я бы подумал, что Lambda на основе Python будет запускаться каждые 5 минут и извлекать данные с удаленного устройства.
Затем Lambda может вставить данные в базу данных временных рядов AWS для хранения и анализа. Вы также можете сохранить его в S3 для последующих запросов в Athena.