🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


💿 Проект: логгер температуры на обычную USB-флешку через CH376S

Датчик DS18B20 и модуль CH376S

CH376S — это готовый USB Host с файловой системой на борту, он умеет читать и писать файлы на обычную USB-флешку без участия компьютера, беря на себя всю сложность протокола USB.

Как это работает

Обычная USB-флешка сама по себе не умеет подключаться напрямую к Arduino — микроконтроллер не содержит аппаратного USB Host контроллера и не знает протокол файловой системы FAT. CH376S решает обе проблемы сразу: это отдельная микросхема-посредник, которая берёт на себя весь USB-протокол хоста и операции с файлами (открыть, записать, закрыть), а Arduino общается с ней простыми командами по UART или SPI, не вникая в детали USB.

Идея проекта — классический datalogger: раз в минуту снимается показание температуры с DS18B20 и дозаписывается новой строкой (время в миллисекундах и значение через запятую) в файл на флешке, формируя со временем простой CSV-журнал, который потом можно открыть на любом компьютере в Excel или текстовом редакторе.

Пошаговая сборка

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

  1. Подключите CH376S в режиме UART: RX/TX → D2/D3, VCC → 5V, GND → GND; на большинстве модулей для UART-режима нужно замкнуть соответствующую перемычку/джампер (сверьтесь с маркировкой на плате).
  2. Вставьте обычную USB-флешку (желательно отформатированную в FAT32) в USB-разъём модуля.
  3. Подключите DS18B20: сигнал → D4, резистор 4.7 кОм между сигналом и VCC, VCC → 5V, GND → GND.
  4. Установите библиотеку для работы с CH376S (например, одну из общедоступных Arduino-библиотек под этот чип) и используйте её функции открытия/записи файла вместо прямой отправки текста по UART ниже — это упрощённый пример для понимания логики, а не готовый протокол команд конкретной библиотеки.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
//
// ВАЖНО: ниже упрощённая демонстрация идеи. Реальная запись в файл на флешке
// через CH376S требует команд конкретной библиотеки этого модуля (открыть файл,
// дозаписать, закрыть) — просто отправка текста по UART файл не создаст. Перед
// использованием подключите подходящую библиотеку для CH376S и замените секцию
// записи на её функции.

#include <SoftwareSerial.h>
#include <OneWire.h>
#include <DallasTemperature.h>

SoftwareSerial ch376(2, 3); // RX, TX

#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup() {
  Serial.begin(9600);
  ch376.begin(9600);
  sensors.begin();
}

void loop() {
  sensors.requestTemperatures();
  float t = sensors.getTempCByIndex(0);

  Serial.print("Запись: ");
  Serial.print(millis());
  Serial.print(",");
  Serial.println(t);

  // Здесь должен быть вызов функции дозаписи строки в файл из библиотеки CH376S,
  // а не прямая отправка текста по UART — см. примечание выше.
  ch376.print(millis());
  ch376.print(",");
  ch376.println(t);

  delay(60000); // запись раз в минуту
}

CH376S поддерживает как SPI, так и упрощённый UART-режим — для UART-режима на плате нужно замкнуть соответствующую перемычку, точная команда открытия/дозаписи файла зависит от выбранной библиотеки для этого модуля.

Частые проблемы

Как улучшить проект

Товары по теме


Модуль чтения USB CH376S
Модуль чтения USB CH376S

281 руб.

Ещё модули для Arduino: Электронные модули.

← 💾 логгер температуры на SD-карту в формате C…🔆 автономная солнечная зарядная станция с жу… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 363 ₽ 327 ₽ (экономия 36 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA