Файлы калибровки для каждого Arduino?

Я планирую установить в своем саду множество встроенных устройств, и каждое из них будет иметь свой собственный аналоговый датчик влажности. Каждый датчик влажности должен быть откалиброван индивидуально.

В идеальном мире у меня было бы одинаковое программное обеспечение на каждом встроенном устройстве с файлом конфигурации, содержащим калибровку для подключенного аналогового датчика влажности, чтобы я мог свести к минимуму разработку и работу CI / CD.

Возможно ли это с Arduino, или мне было бы лучше использовать встроенное устройство с адресуемой вспышкой, например ESP32?

, 👍1

Обсуждение

Вы можете попробовать использовать встроенную EEPROM., @Edgar Bonet

Если встроенный EEPROM слишком мал, существует множество последовательных EEPROM для шины SPI и I2C, что дает вам много энергонезависимой памяти., @the busybee

в вашем вопросе есть некоторое заблуждение. esp32 также можно использовать с Arduino. существует множество различных Arduino с различными возможностями энергонезависимой памяти. вы должны быть более конкретными,, @Juraj

я бы поставил кастрюлю на устройство, так как калибровка меняется по мере окисления и износа датчиков (что происходит через несколько месяцев, даже при отсутствии активного питания). В любом случае они не очень точны, отклонение на 10% от обратных показаний считается хорошим для всех датчиков, кроме совершенно новых., @dandavis


1 ответ


5

Как уже упоминал Эдгар Бонет, стоит попробовать встроенную EEPROM. Однако ниже я привожу несколько вариантов:

  • В случае, если файл конфигурации (данные) макс. 1 КБ, вы можете использовать встроенную / внутреннюю EEPROM Arduino UNO.
  • В случае, если файл конфигурации больше, у вас есть несколько вариантов:
    • На ESP32 вы можете использовать 4 КБ EEPROM.
    • Если оно выше, то на ESP32 вы также можете использовать файловую систему SPIFFS, хранящуюся в EEPROM.
    • Для других микроконтроллеров (включая ESP32) вы можете использовать внешний EEPROM различных размеров на основе SPI или I2C.
  • Если вы хотите использовать очень большой конфигурационный файл, вы можете использовать SD-карту, что, конечно, намного медленнее, которая обычно основана на SPI и может использоваться как на Arduino, так и на ESP32.

Итак, для сравнения между Arduino Uno / ESP32

MCU         Solution            Speed Size   External    Wearout
                                             Hardware  
----------- ------------------  ----- ------ -------- --------------
Arduino     Internal EEPROM     High  1 KB      No    EEPROM Wearout
ESP32       EEPROM Simulation   High  4 KB      No    Flash Wearout

ESP32       SPIFFS File System  High  <Flash    No    Flash Wearout
                                      Size

Both        External EEPROM     High  <1MB *   Yes    EEPROM Wearout
Both        SD Card             Slow  <256GB   Yes          -

* Обычно от 4 КБ до 1 МБ, с использованием SPI или I2C

,