什么对测量 0-10V 模拟信号有意义? (Arduino、ESP32、带 ADS1115 的 ESP8266)
What would make sense to use for measuring a 0-10V analog signal? (Arduino, ESP32, ESP8266 with ADS1115)
我试图在 arduino nano 的帮助下从压力表 (Balzers SingleGauge TPG 251) 读取 0-10V 模拟信号。使用分压器,我可以达到 0-5V 的范围,而不会损坏我的 arduino。可悲的是,集成 10 位 ADC 的分辨率对于我的目的而言非常低(5000mV/1023 ~ 5mV 步长)。压力表的测量范围为 10e-11 mbar 至 1000 mbar,并相应给出 0-10V 的值。通过观察,我看到显示值以这种方式变化:
- 1000 到 100 在 10 个步骤中 = 91 个数字
- 100 比 1,步长为 0.1 = 991 个数字
- 9.9e-1 到 1e-2 = 99 个数字每十年(有 11 个十进制 --> 99*1 = 1089 个数字)
- 总共 2171 个单独的模拟步骤(如果步骤是线性的)。
这意味着每个模拟阶跃在 0-10V 范围内为 4.6 mV。由于我使用的是分压器,因此 mV/step 差异将减半,达到 2.3 mV/step。这显然很难解决,因此我需要使用 12 位或 16 位 ADC。我决定使用 16 位 ADC,因为为什么不能有更好的精度,对吧?我已经购买了 ADS1115,我希望能够更好、更精确地读取值(最大 0.15mV)。使用模拟值,我可以反向获得压力作为数字。
真正的问题来了。我想将设置连接到本地 wifi,以便人们可以查看压力。我还想让他们输入他们希望在他们也输入的每封电子邮件中收到提醒的值。
我已经在可能的情况下看到了带有 ESP32 (https://randomnerdtutorials.com/esp32-email-alert-temperature-threshold/) 的本教程。所以我将尝试使用 ESP8266 nodeMCU 来完成。
我知道要吸收的内容很多,我希望有人知道我如何推进这个项目。以下是我的一些问题:
这个项目我需要 arduino 和 ESP8266 吗?由于 Arduino 的模拟范围是 0-5V,而 ESP 的模拟范围是 0-1V,因此 arduino 可以处理更多。然后 ESP 将只用于发送电子邮件和 Web 服务器内容。
有没有办法只使用 ESP8266 和 ADS1115 并仍然高精度地读取模拟值?还是根本不可能?
任何有意义的反馈?也许有一种方法可以做到这一点,但我还没有用谷歌搜索过。
提前致谢!
ADS1115有一个I2C接口。只需将其连接到 ESP 即可。不需要Arduino nano。
请阅读您的 ADC 的数据表。
http://www.esp8266learning.com/ads1115-analog-to-digital-converter-and-esp8266.php
我试图在 arduino nano 的帮助下从压力表 (Balzers SingleGauge TPG 251) 读取 0-10V 模拟信号。使用分压器,我可以达到 0-5V 的范围,而不会损坏我的 arduino。可悲的是,集成 10 位 ADC 的分辨率对于我的目的而言非常低(5000mV/1023 ~ 5mV 步长)。压力表的测量范围为 10e-11 mbar 至 1000 mbar,并相应给出 0-10V 的值。通过观察,我看到显示值以这种方式变化:
- 1000 到 100 在 10 个步骤中 = 91 个数字
- 100 比 1,步长为 0.1 = 991 个数字
- 9.9e-1 到 1e-2 = 99 个数字每十年(有 11 个十进制 --> 99*1 = 1089 个数字)
- 总共 2171 个单独的模拟步骤(如果步骤是线性的)。
这意味着每个模拟阶跃在 0-10V 范围内为 4.6 mV。由于我使用的是分压器,因此 mV/step 差异将减半,达到 2.3 mV/step。这显然很难解决,因此我需要使用 12 位或 16 位 ADC。我决定使用 16 位 ADC,因为为什么不能有更好的精度,对吧?我已经购买了 ADS1115,我希望能够更好、更精确地读取值(最大 0.15mV)。使用模拟值,我可以反向获得压力作为数字。
真正的问题来了。我想将设置连接到本地 wifi,以便人们可以查看压力。我还想让他们输入他们希望在他们也输入的每封电子邮件中收到提醒的值。 我已经在可能的情况下看到了带有 ESP32 (https://randomnerdtutorials.com/esp32-email-alert-temperature-threshold/) 的本教程。所以我将尝试使用 ESP8266 nodeMCU 来完成。
我知道要吸收的内容很多,我希望有人知道我如何推进这个项目。以下是我的一些问题:
这个项目我需要 arduino 和 ESP8266 吗?由于 Arduino 的模拟范围是 0-5V,而 ESP 的模拟范围是 0-1V,因此 arduino 可以处理更多。然后 ESP 将只用于发送电子邮件和 Web 服务器内容。
有没有办法只使用 ESP8266 和 ADS1115 并仍然高精度地读取模拟值?还是根本不可能?
任何有意义的反馈?也许有一种方法可以做到这一点,但我还没有用谷歌搜索过。
提前致谢!
ADS1115有一个I2C接口。只需将其连接到 ESP 即可。不需要Arduino nano。
请阅读您的 ADC 的数据表。
http://www.esp8266learning.com/ads1115-analog-to-digital-converter-and-esp8266.php