Оглавление:
- Шаг 1: Детали
- Шаг 2: Соединение всех частей вместе
- Шаг 3: кодирование
- Шаг 4. Последующее использование Arduino и SD-карты
Видео: Arduino Работа с несколькими файлами (ЧТЕНИЕ / ЗАПИСЬ): 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Привет ребята
Сегодня я представляю вам проект Arduino, который работает с экраном RTC, который может хранить данные. Основная задача этого проекта - работа с несколькими файлами, хранящимися на sc-карте. Этот проект содержит код, который работает с тремя файлами, которые хранятся непосредственно на SD-карте с Arduino и экраном RTC. Поскольку этот проект работает с DataLogger Shield, эти данные также будут храниться точно в то же время, что и на вашем ПК.
Этот проект является обновленной версией моего последнего проекта. Этот проект можно найти на сайте инструкций под названием Arduino Data Logger Shield Small Project. Если у вас есть проблемы с пониманием этого проекта, я предлагаю вам сначала посмотреть более простой.
Основное различие между этими двумя проектами заключается в том, что в этом проекте используются 3 текстовых файла, также на этот раз мы читаем данные из двух из них. Поскольку мы можем читать данные, мы можем получить средние значения влажности и температуры, которые хранятся на SD-карте. Это также будет отображаться на ЖК-дисплее, подключенном к Arduino.
Еще раз, если вы новичок в Arduino и это ваш первый проект, который использует DataLogger, я предлагаю пойти и проверить эту ссылку https://www.instructables.com/id/Arduino-Data-Logg… и когда вы все получите на этом, иди сюда и повеселись еще немного. Давайте начнем.
Шаг 1: Детали
Как и каждый раз, когда я пишу подобные проекты, я начинаю со всех частей, которые я использовал в этом проекте. Я также предложу некоторые датчики, которые можно использовать и которые могут немного изменить этот проект.
Части:
- Arduino uno rev3
- Щит регистратора данных Arduino
- Карта памяти SD
- LCD 1602 зеленый дисплей с I2C (можно использовать любой другой дисплей)
- DHT22 (DHT11 тоже работает нормально, но его точность не такая, как у dht22)
- Мало соединительных кабелей
- Макетная плата
- Аккумулятор 9v
Вы можете изменить некоторые детали. Хорошая сторона этого проекта в том, что его можно использовать для хранения данных с любого другого датчика. Я бы попробовал работать с датчиком дыма или инфракрасным датчиком. Работает с любым другим датчиком. Вы также можете изменить свой Arduino, но имейте в виду, что Arduino лучше всего подходит для регистратора данных.
Шаг 2: Соединение всех частей вместе
Этот легко подключить. Даже схема такая же, как и в более простом проекте. Но я бы сказал, что вам нужно следить за тем, какой штифт вы собираетесь использовать. Каждый раз проверяйте лист данных регистратора данных, чтобы увидеть, какие контакты лучше всего использовать, потому что, насколько я помню, некоторые контакты уже определены, и когда я пытался использовать свой датчик на одном из определенных контактов, он не работал.
В верхней части этого шага вы можете увидеть схему, сделанную с помощью фритзинга. Легко то, что вам нужно подключить регистратор данных к верхней части вашего Arduino. Подключите SD-карту к регистратору данных, и последнее, что вам нужно сделать, это подключить датчик dht и ЖК-дисплей. Мы используем 5 В от Arduino для + части на макетной плате, GND для - части, и, следуя этой линии, вы также подключаете + линию датчика и ЖК-дисплей к + линии макетной платы. То же самое касается - частей, они просто переходят к следующей строке -. На этот раз датчик Dht подключен к контакту 7. LCD подключается к A4 и A5. Легко, правда?
ЖК-дисплей:
- VCC на 5 В (+ часть на макетной плате)
- GND на gnd (-часть на макете)
- SDA к аналоговому контакту A4
- SCL к аналоговому выводу A5
DHT22:
Я использовал dht с платой, в которой используются три контакта:
- + до 5 В
- - к GND
- выход на цифровой контакт 7
Шаг 3: кодирование
На этот раз код более сложный. Большая его часть прокомментирована, чтобы вы могли легко ее понять.
Я объясню этот код в нескольких коротких частях.
1. Прежде всего следует помнить, что для этого кода потребуется несколько библиотек, установленных на вашем компьютере. Это: Time (TimeLib), Wire, LiquidCrystal, DHT, OneWire, SPI, SD, RTClib. Вы, вероятно, можете использовать другие библиотеки, но эти библиотеки мне помогли. После этого мы определяем все, что нужно для этого проекта. Датчик DHT легко определить, вам просто нужно указать контакт, к которому подключен датчик, и тип датчика. После этого вам нужно определить некоторые контакты, которые будут использоваться для SD-карты и вывода RTC. И после этого вы можете увидеть переменные, используемые для этого проекта.
3. В проекте используется несколько методов, и все они предназначены для работы с датчиком DHT. Если вы работаете над проектом с этим типом датчика, вы можете его использовать. Эти методы: getTemperature (), getMidTemperature (), getHumidity (), getMidHumidity (), readSensorData (), printLcdTemperature (), printHumidity (), printLcdMidTemperature (), printMidHumidity ().
4. При настройке необходимо выполнить несколько действий. Прежде всего вам нужно определить время. Поскольку мы используем здесь RTC, мы хотим, чтобы наш Arduino сохранял данные с датчика в нужное время. Эта часть будет прокомментирована в коде. Если вы раскомментируете //RTC.adjust(DateTime(_DATE_, _TIME_)); line вы можете установить время для вашего проекта. После того, как вы установите правильное время, вы можете снова прокомментировать эту часть, и вы можете использовать свой Arduino без компьютера. Это круто, потому что вы можете использовать датчик температуры в другой комнате и отслеживать температуру без компьютера. Вторая часть, которую необходимо сделать, - это использовать вашу SD-карту, на которой будут храниться данные. Shield попытается проверить наличие карты и инициализировать ее. В противном случае сообщение об ошибке будет отображаться на последовательном экране в Arduino IDE.
В настройке - это первый шаг, на котором мы работаем с записью файлов на карту памяти. Первое, что написано на карточке, - это файл datalog.txt. На этот раз мы пишем только время регистрации нашего устройства, а также создаем небольшую строку имен (переменные, используемые для сохранения, а также время)
Последняя часть настройки - инициализация ЖК-дисплея и датчика dht.
5. Петлевая часть - основная часть проекта. На этот раз работать с датчиком очень просто, потому что он использует только один метод, который считывает значения, которые получает датчик. ЖК-часть тоже очень проста. Следующая часть - это та, которую мы должны здесь объяснить. Этот проект делает что-то каждую минуту. Одну минуту он сохраняет данные в datalog.txt. Эти данные может прочитать тот, кто даже не знает, как программировать Arduinos. С другой стороны. Одну минуту он сохраняет температуру в datalogB.txt и одну минуту сохраняет влажность в datalogC.txt. Нам нужны datalogB.txt и dataLogC.txt, чтобы мы могли читать с нашей карты памяти. Итак, если мы продолжим читать наш код, вы также увидите, что этот код считывает средние значения температуры и влажности и сохраняет их в одной строке. Я хотел сделать устройство, которое хранит в файле только последние десять цифр. Таким образом, этот проект всегда обрабатывает значения с карты и сохраняет последние десять цифр. Эти цифры, хранящиеся в строках, используются, чтобы мы могли получить среднее значение температуры и среднее значение влажности. Которые также отображаются на нашем ЖК-дисплее через некоторое время.
Шаг 4. Последующее использование Arduino и SD-карты
Здесь вы можете увидеть, что отображается на ЖК-дисплее и как работает проект. Также я помещаю сюда фотографии сохраненных мной журналов данных. Datalog.txt - это тот, который можно использовать, чтобы увидеть, как устройство хранит каждое значение. DatalogB и datalogC есть, так что вы можете увидеть, как они выглядят. Они написаны так, поэтому вы можете использовать метод синтаксического анализа и читать данные без проблем.
Вся суть этого проекта - манипулирование файлами, которые находятся на sd-карте. Иногда нам нужны устройства, которые могут хранить память и считывать температуру тоже одно время. Хорошо, что в шилде, используемом на этом устройстве, также есть модуль RTC, что является лучшим вариантом для времени. Когда мы можем читать в реальном времени и хранить данные на нашем устройстве, это означает, что оно может быть портативным.
Спасибо, ребята, что прочитали этот проект. Надеюсь, это вам поможет. Спасибо.
Со всем уважением, Себастьян
Рекомендуемые:
Чтение и запись данных во внешнюю EEPROM с помощью Arduino: 5 шагов
Чтение и запись данных во внешнюю EEPROM с использованием Arduino: EEPROM - это электрически стираемая программируемая постоянная память. EEPROM очень важна и полезна, потому что это энергонезависимая форма памяти. Это означает, что даже когда плата выключена, микросхема EEPROM все еще сохраняет программу, которая
Современная запись винтажных кассет с файлами MP3: 8 шагов (с изображениями)
Современная запись винтажных кассет с файлами MP3. Сейчас, когда винтажные кассеты появляются в поп-культуре больше, чем когда-либо, многие люди хотят создавать свои собственные версии. В этом уроке я расскажу, как (если у вас есть магнитофон) записывать свои собственные кассеты с использованием современных технологий
Чтение и запись через последовательный порт с Raspberry Pi с использованием Wemos: 5 шагов
Чтение и запись через последовательный порт с помощью Raspberry Pi с использованием Wemos: обмен данными с Raspberry Pi с помощью Wemos D1 mini R2
Работа с несколькими компьютерами (для студентов): 6 шагов
Работа с несколькими компьютерами (для студентов): Работа с несколькими компьютерами может быть очень сложной. Вы никогда не знаете, какие файлы находятся на каком компьютере, вы можете столкнуться с проблемами с несколькими версиями одного и того же файла, и в результате вы можете потерять все файлы вместе или, по крайней мере, иметь
Введение в сценарий VB: руководство для начинающих: часть 2: Работа с файлами: 13 шагов
Введение в сценарий VB: руководство для начинающих: часть 2: Работа с файлами: В моем последнем руководстве по VBScript я рассмотрел, как создать сценарий для отключения вашего Интернета для игры на Xbox360. Сегодня у меня другая проблема. Мой компьютер выключался в случайное время, и я хочу регистрировать каждый раз, когда компьютер