V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
usb7
V2EX  ›  Linux

从汽车 CAN/OBD 接口读取数据,并上传到云端

  •  
  •   usb7 · 169 天前 · 3921 次点击
    这是一个创建于 169 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,

    我想用 python 编写程序,从汽车或其它带 OBD 接口的设备读取 CAN 数据(例如:引擎转速、氧气传感器、等),并通过无线网络上传到云端。该程序运行在 ARM Linux 板子上。汽车 OBD2 是标准协议,理论上可以支持任意车型,甚至摩托车,卡车,等等。

    从汽车 OBD 接口读取数据并不困难,相对困难的是与云端的交互(例如:Kuksa ),不知道是不是还要考虑安全性。

    为什么选择 ARM Linux 板子,而不是单片机呢?主要考虑的是:用 python 编程,和云端交互容易些,安全性也容易得到保障。

    大家觉得怎么样?有公司会要吗?

    为此目的,我专门做了硬件: https://gitee.com/usb7/can-board

    国外也有基于树莓派的板子 Kuksa hardware: https://github.com/eclipse-kuksa/kuksa-hardware

    第 1 条附言  ·  169 天前
    可以用于摩托车,卡车,或工程车吗?而不是家用电车。
    第 2 条附言  ·  169 天前
    可以用于,例如:调试卡车发动机的问题。国外有类似的产品 CAN logger ,采集发动机的故障数据,用于改进发动机:
    https://www.csselectronics.com/pages/j1939-data-logger-heavy-duty

    国外的这个东西很贵,带无线功能,至少要 400 多欧。
    65 条回复    2024-12-25 15:00:33 +08:00
    NessajCN
        1
    NessajCN  
       169 天前
    这个没啥难度,车厂一般早都在车机上实现了.....
    cpstar
        2
    cpstar  
       169 天前
    多年前玩过的一个事情,蓝牙 OBD ,然后写 APK 读取数据,至于回传云端,那就是轻轻松松了。而为什么是 APK ,因为那边蓝牙好像不开放,无法读取数据。
    ltyj2003
        3
    ltyj2003  
       169 天前 via Android
    我先提个问题,数据上传云端然后怎么用,谁来用?
    然后
    电车上 OBD 的数据就没几个,上月新能源车销量占比已超 50%,没必要弄一个需求持续萎缩的东西。
    而且,1 楼也说了,带云服务的车,车厂直接就集成在车上了。
    cat9life
        4
    cat9life  
       169 天前
    怎么感觉你这个需求不上不下呢?上游(厂家等)看不上,下游(车主)一头雾水不知道干什么
    usb7
        5
    usb7  
    OP
       169 天前
    @NessajCN 可以用于摩托车,卡车,或工程车吗?而不是家用电车。
    usb7
        6
    usb7  
    OP
       169 天前
    @cpstar 你很牛
    NessajCN
        7
    NessajCN  
       169 天前
    @usb7 看你的意思是问车厂感不感兴趣对吧?车厂,包括你说的摩托车卡车工程车车厂,如果人家感兴趣或者确实有这方面的需求,装一个成熟的车机是非常方便的。这不是个技术问题而是个成本控制和产品设计问题。
    usb7
        8
    usb7  
    OP
       169 天前
    @ltyj2003 谢谢你的回复:

    => 数据上传云端然后怎么用,谁来用?

    可以用于,例如:调试卡车发动机的问题。国外有类似的产品 CAN logger ,就用于采集发动机的故障数据,用于改进发动机:
    https://www.csselectronics.com/pages/j1939-data-logger-heavy-duty

    国外的这个东西很贵,带无线功能,至少要 400 多欧。
    usb7
        9
    usb7  
    OP
       169 天前
    @NessajCN 谢谢你的回复,国外有类似的东西:

    可以用于,例如:调试卡车发动机的问题。国外有类似的产品 CAN logger ,采集发动机的故障数据,用于改进发动机:
    https://www.csselectronics.com/pages/j1939-data-logger-heavy-duty

    国外的这个东西很贵,带无线功能,至少要 400 多欧。
    unco020511
        10
    unco020511  
       169 天前
    我用过,之前我的车子要刷隐藏功能,淘宝的卖家会寄来一个 obd 设备,插在车子上,然后自己电脑连接,通过 obd 可以读取和写入,达到一些改参数的目的.事实上,通过 obd 去调试/诊断汽车,这在汽车行业已经非常成熟了,厂家都给 4s 店配置的有,甚至很多修理厂自己也有相关的设备
    kenshinhu
        11
    kenshinhu  
       169 天前
    我觉得也可以考虑一下二手车,毕竟最近几年的 OBD 外设也蛮成熟,上周我加装原厂胎压就用到了 ODB 外设通过蓝牙来连接小程序来修改车机程序,如果有这个给二手车用户做个日常状态监视也不错。
    ltyj2003
        12
    ltyj2003  
       169 天前 via Android
    如果用于修车,国内 元征 汽车检测仪已经很成熟了,硬件是其次,各个车型的私有协议才是重点,包括不限于向车企买、逆向工程。
    如果只用 OBD 标准上的数据,几十块的 elm327 也能把活干了。
    424778940
        13
    424778940  
       169 天前
    需求我了解确实有一定市场, 但这样实现不知道这有什么意义
    iot 设备一般都是低成本为重, 因为要用 python, 非要用 arm+linux 就是脱裤子放屁了
    正常实现这个需求, 应该是 can-phy+支持 can 的单片机+rtos+蜂窝数据模块
    再不济你一句 c/cpp 不会, 朋友听说过 micropython 吗?
    wxw752
        14
    wxw752  
       169 天前
    调试故障已经有很成熟的设备了。我觉得加个 4G/5G 模块,走智能家居的路子还行,没准有人猎奇想把自己的老车接进来。(近些年的新车直接能接入)
    usb7
        15
    usb7  
    OP
       169 天前
    @424778940 虽然你说得很对,可是为什么国外有基于 ARM Linux 树莓派的 CAN 硬件?
    https://github.com/eclipse-kuksa/kuksa-hardware
    usb7
        16
    usb7  
    OP
       169 天前
    @424778940 我不懂,在 rtos 上和云端交互(例如:Kuksa ),应该不容易?云端肯定自己做不了,要借用现在开源的。
    ltyj2003
        17
    ltyj2003  
       169 天前 via Android
    给 op 个建议,如果有相关技术,不妨想想如何为车企倒了的汽车品牌的车主提供维修服务或维修设备,比如威马汽车,以及超过质保期的大量新能源车,这块一般汽修厂还修不了,目前是蓝海市场。
    usb7
        18
    usb7  
    OP
       169 天前
    @kenshinhu
    => 如果有这个给二手车用户做个日常状态监视也不错。

    这个硬件成本不低,二手车用户估计不会买。只有公司可能会买(公司有钱)。
    usb7
        19
    usb7  
    OP
       169 天前
    @ltyj2003
    => 给 op 个建议,如果有相关技术,不妨想想如何为车企倒了的汽车品牌的车主提供维修服务或维修设备,比如威马汽车,以及超过质保期的大量新能源车,这块一般汽修厂还修不了,目前是蓝海市场。

    你很牛,谢谢。
    nulIptr
        20
    nulIptr  
       169 天前
    https://shop188861647.taobao.com/
    是这个吗,朋友推荐过,当时是免费送。。。。
    usb7
        21
    usb7  
    OP
       169 天前
    @ltyj2003
    => 给 op 个建议,如果有相关技术,不妨想想如何为车企倒了的汽车品牌的车主提供维修服务或维修设备,比如威马汽车,以及超过质保期的大量新能源车,这块一般汽修厂还修不了,目前是蓝海市场。

    你有意愿,我们一起做这个维修设备吗?(维修威马汽车,以及超过质保期的大量新能源车)
    nulIptr
        22
    nulIptr  
       169 天前
    @nulIptr 再补充一下,好几年前的,那时候说面向用户都是老油车车主,能监控位置油耗里程啥的,然后他们公司还做一些企业服务,比如公司的公车管理,跟定会议室一样订车。感觉是个方向,不知道后面公司咋样了
    usb7
        23
    usb7  
    OP
       169 天前
    @nulIptr 多谢你的回复。
    shijingshijing
        24
    shijingshijing  
       169 天前
    这玩意儿贵不是因为技术难,车辆上用的东西都要做 certification ,然后配合厂商做 PVE ,要做各种测试出各种报告,都通过了才能上市。
    elboble
        25
    elboble  
       169 天前
    我理解 OP 的意思是给老的油车 OBD 接口加个上行的链路。但是国内新能源车这个功能出厂就有了,应该是国标要求。

    所以国内基本不需要,国外还可以 DIY 一下。

    类似这样的需求其实在老油车上挺多的,比方 gps 轨迹,前几年 taobao 上还有专门的 gps+gprs 的小设备,几十块钱年费,后台记录你的轨迹,轨迹非常准,可惜后来断网行动,gprs 的卡没有实名给停了,现在换新能源没必要了。不过这个小玩意还有个很大市场是给两轮电动车用,低端的基本还没有智能化,可以查轨迹防盗,还是有用的。
    424778940
        26
    424778940  
       169 天前
    @usb7 "可是为什么国外有基于 ARM Linux 树莓派的 CAN 硬件?"

    国外有的东西多了去了 还有人拿 fpga 做键盘呢 但这不代表他就是一个合理的商业化项目 你要说自己 diy 玩 那肯定无所谓你开心就好

    这类设备本身就是一个很成熟的市场 别说国外 国内大货车的轨迹记录仪听说过吗 新一点的基本都能在线看到轨迹和行车状况 你猜他们是用树莓派吗?

    连仔细调研都没做好就盲目搞产品是初创团队失败的众多坑之一
    424778940
        27
    424778940  
       169 天前
    @usb7 "我不懂,在 rtos 上和云端交互(例如:Kuksa ),应该不容易?云端肯定自己做不了,要借用现在开源的。"

    在 rtos 上和云端交互不容易? 别说 rtos, 你猜米家台灯里用的什么? 树莓派吗?
    usb7
        28
    usb7  
    OP
       169 天前
    @424778940
    => 连仔细调研都没做好就盲目搞产品是初创团队失败的众多坑之一

    你说的太对了,谢谢。
    424778940
        29
    424778940  
       169 天前
    还有一个题外话, 就是 ODB-II 是一个获取信息很有限的协议, 本身拿到的信息并不多, 而且不是所有车企都完全支持协议全部参数, 有的车连当前是什么档都拿不到的

    很多记录仪/诊断器, 甚至是淘宝那种自动关窗器, 都是要拿到车厂给的的资料或者逆向出厂家专有协议, 才能实现相关功能, 因为 ODB 接口里不一定只跑 ODB 协议, 还有厂家自己专有的 CAN 协议, 甚至可能还有第二组 CAN 接口

    很多车是有多组 can 总线的, 分为动力/娱乐/其他之类的, ODB 口里很可能是没有动力 CAN 总线的, 要单独找线刺破监控
    动力 CAN 上很多信息是直接广播出去的, 比如时速转速油门刹车, 不是 ODB 这种轮询, 因为轮询效率太差了

    如果对上述信息都不清楚, 指望 ODB-II 能给你很多功能并且做出这个东西还希望推广, 我只能说祝你商业兴隆
    usb7
        30
    usb7  
    OP
       169 天前
    @424778940

    谢谢你。
    tallest
        31
    tallest  
       169 天前
    我之前想搞个这个读我摩托车的数据来着,可惜不会硬件,就放弃了
    usb7
        32
    usb7  
    OP
       169 天前
    @tallest
    => 我之前想搞个这个读我摩托车的数据来着,可惜不会硬件,就放弃了

    可以语音沟通吗?
    opengps
        33
    opengps  
       169 天前
    obd 读取不是难点,市面上也有很多 obd 健康监测的设备,几十块的支持蓝牙通信,最大难点是各主机厂的数据参差不齐,没有太通用的更深的分析
    usb7
        34
    usb7  
    OP
       169 天前
    @424778940
    => 如果对上述信息都不清楚, 指望 ODB-II 能给你很多功能并且做出这个东西还希望推广

    这个项目,包括 OBD-II ,是某汽车厂的一个研发小领导叫我做的。
    424778940
        35
    424778940  
       169 天前
    @usb7

    有车场支持, 那也得能拿到协议和动力 can 总线访问, 另外你应该更熟悉 can 本身而不是 odb, 因为动力 can 很多都是自定义帧, 跟 odb 没关系

    我很久之前有做过一个这个东西, 就是 odb 实现的, 实时性是很差的, 没有继续做也是因为实时性问题
    界面元素/上位机/下位机/硬件均为自制
    kenshinhu
        36
    kenshinhu  
       169 天前
    @usb7 我看闲鱼有类似的产品大概在 80 左右估计还是在外部做运算吧
    dreampet
        37
    dreampet  
       169 天前
    @usb7 #34
    "这个项目,包括 OBD-II ,是某汽车厂的一个研发小领导叫我做的。"

    这是啥车厂? 2024 年了还能提出这个需求,只能说太不靠谱了,这种功能早已集成在 TBox 中, 我们 18 年量产的 TBox 就已经集成了整车 CAN 总线数据采集,集成 OBD 、WWH-OBD 等在线诊断、数据流采集等功能。
    usb7
        38
    usb7  
    OP
       169 天前
    @dreampet
    => 这种功能早已集成在 TBox 中, 我们 18 年量产的 TBox 就已经集成了整车 CAN 总线数据采集,集成 OBD 、WWH-OBD 等在线诊断、数据流采集等功能。

    是的。你们的 TBox 有链接吗?现在的 TBox 还支持 CAN 吗,还是现在的 TBox 主要支持 DDS Data Distribution Service 之类的?
    usb7
        39
    usb7  
    OP
       169 天前
    @424778940 你好牛啊
    usb7
        40
    usb7  
    OP
       169 天前
    @424778940 因为你做了这多的 CAN/OBD 相关的工作,不知道你是不是愿意语音交流?
    rainfallmax
        41
    rainfallmax  
       169 天前
    如果我有这个需求,我可能买个周立功的 CAN 记录盒。。。
    最起码他家震动测试啥的都做了。
    usb7
        42
    usb7  
    OP
       168 天前
    @rainfallmax
    => 我可能买个周立功的 CAN 记录盒。。。最起码他家震动测试啥的都做了。

    大哥,周立功的 CAN 记录盒很贵的,而且,它应该不能将数据上传到《我自己的云》(我自己根据开源方案搭建的云,我选择的是 Kuksa 开源方案)。
    tywtyw2002
        43
    tywtyw2002  
       168 天前 via iPhone
    obd 真正有价值的是 厂商的私有协议。
    公开那些协议,真的没啥用。记录上传的产品一堆一堆的。
    fleet 管理什么、obd 读数据 4g 上传都是标配了。

    要搞到私有协议要签 NDA ,可以做到远程锁车锁发动机什么的。
    usb7
        44
    usb7  
    OP
       168 天前
    @tywtyw2002
    => fleet 管理什么、obd 读数据 4g 上传都是标配了。

    摩托车,拖拉机,卡车等,有现成的 fleet 管理工具吗?我有了解到:美国著名的哈雷摩托车厂,有意愿需要个东西(他们最主要是需要个安全可靠的云方案),从 OBD 口采集数据,并以很安全可靠的方式,上传到《安全可靠的》云端。
    liqinliqin
        45
    liqinliqin  
       168 天前
    liqinliqin
        46
    liqinliqin  
       168 天前
    yidev
        47
    yidev  
       168 天前
    2014 年 5 月 5 日,腾讯地图推出腾讯路宝 2.0 [1]以及首款车联网落地产品路宝盒子,帮助用户对用车进行安全检查。虽然市面上不乏汽车检测仪这类产品,但是路宝盒子可以通过相应平台,使 App 能与落地的 O2O 服务相连接。

    死了很多年了
    gleArk
        48
    gleArk  
       168 天前
    OP 自己画板子写程序值得鼓励,但是这个只能作为玩具。

    汽车行业对 can 帧的时间戳准确性要求很高,一般的 linux 不是实时系统,做不到,要专门的实时 linux ,得会 kernel 和驱动,或者使用 arm linux + stm32 实现。接收上传的程序一般也是用 C/C++实现,不会用 python 。

    把这一块搞定了再加上 4G 和 wifi 网络就可以去做 TBox ,新能源车按国标 GB/T32960 要求配 TBox ,但不是传到你自己的云而是接入新能源汽车国家监测与管理平台,当然这个国标是推荐国标不是强制国标,有些车厂也没有执行。

    至于利润,说实话比较薄,但是胜在量大,看怎么权衡了。至于国外带个无线 400 多欧。。。我只能说国内的都是一个订单就是几十万台设备的工业品;国外的是艺术品,搞不好还是手工打造的。
    Ackvincent
        49
    Ackvincent  
       168 天前
    元征 道通 都有非常成熟的方案,只采集到数据并没有什么意义。
    w3b5h3ll
        50
    w3b5h3ll  
       168 天前
    感觉没啥用,现在车机都有远程诊断
    changxiushanwu
        51
    changxiushanwu  
       168 天前 via Android
    这个我会,去年拿开发板搭了一个小 demo ,画了板子没加工,分开功能调了一些程序后来也没集成。用 ESP32 ,配合移远 4G+GPRS 模块,通过 MQTT 往自己的服务器传东西。后来没时间继续了,想想也没啥数据好传的。
    usb7
        52
    usb7  
    OP
       168 天前
    @changxiushanwu
    如果你愿意微信语音沟通,请邮件 [email protected]
    killadm
        53
    killadm  
       168 天前 via Android
    @changxiushanwu 自己玩的话还是你的方案靠谱,而且这东西好多年前就有商业化的(蓝牙方案),现在应该已经死了一大批了吧
    jzphx
        54
    jzphx  
       168 天前
    我觉得受众还是极客群体,虽然车企能拿到数据但一般也不会给普通用户,然后其实普通用户拿到这数据也没啥用。我的插混车之前接了个 obd 仪表,由于 obd 是常电,锁车后一直会尝试读取 obd 数据导致频繁上电,最后干到小电瓶没电,就还是有点风险的。
    另外大佬了解 canfd 协议吗?能否读取到车速等数据。
    dododada
        55
    dododada  
       168 天前
    @dreampet 大哥,tbox 的 4G 那条线,拔掉卡对车机的功能有影响么?我昨天刚好看了一下,说两个接收口有个是 gps 的,如果我不用车机导航,是不是两条线都可以拔掉啊?

    另外,拔线要拆车么?我看有的车型是拔保鲜盒里的线就可以了
    gongquanlin
        56
    gongquanlin  
       168 天前
    之前也想着给我的 tr300 走 obd 获取数据做个数字仪表和定位追踪,但是搞不明白硬件协议放弃了,哈哈
    7colcor
        57
    7colcor  
       168 天前
    这东西十几年前刮过一阵风潮,后来搞得都快烂大街了,腾讯这种都下场做过。后面怎么就偃旗息鼓了,因为确实没有什么特别的卖点和盈利点。加之 Tbox 也在那时候异军突起,几乎覆盖了他的功能,现在新出产的车基本都有 Tbox 。
    manhere
        58
    manhere  
       168 天前
    x 宝不是已经做的烂大街了吗?最便宜的十来块一个。
    dreampet
        59
    dreampet  
       168 天前
    @dododada #55 这个要看你的卡车是全款还是贷款,是不是国六、是否有地区平台监管, 如果是全款车并且是国六一阶段之前的, 把 TBox 拆掉都无所谓。 但如果后者,拔掉天线或者保险, 轻则限功率, 重则锁车。
    dododada
        60
    dododada  
       168 天前
    @dreampet 我只是了解一下这个东西,现在的新车都有智能互联,远程开关什么的,后面换车的话不想上传这些数据,只想安安静静的开车,那些什么智能娱乐功能限定在车内使用,别给我搞什么远程控制就行,什么保护用户数据这种鬼话骗骗外行就行了,所以了解一下
    yansideyu
        61
    yansideyu  
       168 天前
    读取 ODB 数据简单,难的是标准,各个型号的汽车,合格标准不同,读取到数据了,得有标准才能分析。以前有个图吧汽车卫士不错,里面选择汽车了有标准,有各种问题的分析。不过已经倒闭了,现在的 ODB 设备都只是读出来,没法分析
    heroin80s
        62
    heroin80s  
       168 天前
    楼主动手能力强👍🏻,上传云端不复杂,关键是应用场景。可以考虑一下存量油车的应用
    testliyu
        63
    testliyu  
       167 天前
    我三年前出厂的摩托就实现这功能,定时上传行车轨迹,最高时速等,最新款的车还会上传摩托车的舵角和倾角情况
    qiyilai
        64
    qiyilai  
       167 天前
    这个产品 10 年前就有了。。。都杀成红海了 [车载双通道 CAN (FD) -bus 数据记录终端] 云端还集成了大数据平台
    jamesjammy061
        65
    jamesjammy061  
       2 天前
    这个最麻烦的是不是找到对应的 dbc 文件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5370 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 07:17 · PVG 15:17 · LAX 23:17 · JFK 02:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.