【问题标题】:AVR Microcontroller temp sensor communication over LANAVR 微控制器温度传感器通过 LAN 通信
【发布时间】:2016-01-22 12:41:36
【问题描述】:

你好,比我更有技术的人 ;-),

我有一个关于兄弟学校项目的问题,我想帮助他。 他有一个带有LAN 端口的微控制器板,并希望在其上连接一个温度读取器。 有没有人建议如何将这些数据传达给例如Android 应用程序,该应用程序可以显示温度图或仅显示当前时刻的温度? 如果不是 Android,他想通过桌面上的 Java 应用程序显示它,该应用程序显示温度图和平均温度。 我试图谷歌它,但我没有找到任何描述这种情况的东西。也许我不知道如何制定它。 我知道描述它非常模糊,但也许一些好人可以向我发送代码示例,因为我是一个完全的初学者。 这是AVR 板(它有一个 LAN 端口)

http://www.pollin.de/shop/dt/MTQ5OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_AVR_NET_IO.html

谢谢你:)

谢谢,祝你有美好的一天:)

【问题讨论】:

  • 如果您发布您所做的努力,您会发现更多帮助。
  • “我的兄弟学校项目”...“也许有好人可以给我发代码” - 这是你兄弟项目的一部分吗?我的意思是,他不应该自己做一个项目,而不是让他的兄弟向其他人要代码吗?

标签: java android server avr lan


【解决方案1】:

据我所知,该板具有一个ATmega32 控制器和一个ENC28J60 以太网 控制器(带有SPI!)。
他们似乎提供了某种与板通信的server 应用程序(通过以太网/LAN)。该应用程序并非微不足道,因为我看到它还具有固件更新功能(因此AVR 芯片在其闪存中也有一个 bootloader)。
无论如何,一个有趣的方法是将您的temperature sensor 连接到一个analog input,然后启动板和net-server 应用程序(连接到LAN)。您将在某些 ADCx(以伏特为单位)上看到相关测量值。
之后,使用Wire-Shark 或类似工具,您可以窥探主板和server 之间的通信消息(知道他们的IP,以过滤掉潜伏在LAN 上的所有其他垃圾) )。
下一步是找出server 发送的请求ADCx 的具体消息,以及董事会的相关回答。我猜这不是微不足道的,但可行:)
最后,知道交换了哪些消息(我在这里假设您没有协议或源代码的规范),您应该在您的Windows/Android 应用程序中复制/实现类似的东西(从@987654338 进一步转换@ to °C temperature 要显示是您的应用程序要做的另一件事 - 我想是最简单的部分:)。
根据您提供的数据,我认为这是我能提出的最佳建议。

祝你的项目好运!

顺便说一句:您可以找到AVR 的帮助(以及源代码示例、编译器和相关内容)的最佳位置是:www.avrfreaks.net

【讨论】:

  • 谢谢你,有没有其他方法可以找出临时字符串的格式? stackoverflow.com/questions/28576215/…这是解决沟通问题的办法吗?
  • 有几种方法可以找出消息格式: 1) 使用通信协议文档(如果可以从电路板销售商处获得); 2) 分析源代码(如果卖家提供); 3) 如果前两个不可用,那么发现板子和服务器之间交换的消息的唯一方法是使用Wire-Shark 或类似工具来监视它们之间的通信(一种逆向工程,但不是很困难) .对于第二个问题:我不是Java程序员,但它看起来像是一个起点,至少值得一试。
  • 这个想法是你需要一个 UDP 或 TCP 客户端套接字连接到板并发送命令然后接收答案。如果它不起作用或您遇到困难,那么您可以开始另一个 Java 相关问题,以便其他熟悉 Java 的人可以帮助您。记住一件事:您提供的更多详细信息(输入),您将收到更好的答案(帮助)! :)
  • 即使 PC 应用程序名称是 Net-Server,具有 ConnectDisconnect 按钮也表明它实现了 TCP 或 UDP 客户端。然而,也有可能反过来:即板充当连接到 PC 应用程序的客户端(在 PC 应用程序正在侦听的 TCP 端口上)以便以特定速率发送数据(假设每秒一次) )...
  • 谢谢你们,你们太棒了。一个愚蠢的问题是用 C 或 Java 编程的 avr net io?
【解决方案2】:

您是否看到开发板随附的软件和固件(下载...)?

它几乎拥有您需要的一切,即 TCP/IP 堆栈、用于访问数字和模拟 IO 的简单命令/响应服务器等。

请参阅文档:https://www.pollin.de/shop/downloads/D810058B.PDF,尤其是。 “Protokollaufbau und Kommandos AVR-NET-IO”,例如"GETADC 3 (ruft den akt. Wert des ADC-Eingangs 3 ab)"

因此,您应该能够使用库存固件,并通过 TCP 上的简单命令从您的应用程序/其他任何方式与其对话。在显示结果之前,您可以在应用程序中查询板输入状态并对其进行任何计算。 (编辑:你没有说明他想使用什么样的传感器。如果传感器的输出不是模拟电压而是一些数字协议,那么库存固件实际上不会让你走得太远。)

主板固件是用 C 语言编写的(我相信是封闭源代码),但正如我所说,您可能不必为此烦恼。但是,如果您愿意,可以从 'net; 开源替代固件版本;如果您希望获得更好的体验,您也可以创建自己的,可能基于可用的 TCP/IP 堆栈和 ENC28J60 库(也随时可用)。您还可以在 &c、&c 之上添加一个简单的 HTTP 服务器。

当我在谷歌上搜索“avr net io 固件”时立即出现的一些链接:

http://www.fhemwiki.de/wiki/AVR-NET-IO

http://engelhuber.de/blog/2013/10/29/pollin-avr-net-io-mit-e2000-firmware-ueber-php-ansteuern/

http://netio.davideickhoff.de/de/

http://son.ffdf-clan.de/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-10
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 2022-06-14
    相关资源
    最近更新 更多