Data Logging. Write variables to the microSD drive

Поделиться
HTML-код
  • Опубликовано: 6 сен 2024
  • Hello! Very often it is necessary to log the various data for later processing. In this video, we will record the data of the Micro SD card and open them in Excel.
    Device schematic and sketch: drive.google.c...
    Useful links:
    Micro SD Shild: ali.pub/2q5evz
    RTC real-time clock: ali.pub/2q5f5w
    DFrobot Starter Kit: www.dfrobot.co...
    The cheapest Arduino Pro Mini for crafts: ali.pub/1ny2z4
    Solar panel 5V 4.5W: ali.pub/2gllam
    Solar panels: ali.pub/2glli0
    Servo drives: ali.pub/2glm6p
    Colored smoke bomb: ali.pub/2ov8gp
    Display 1602: ali.pub/2oum8r
    Matrix keyboard 4x4: ali.pub/2k005u
    Cheapest Arduino Pro Mini for crafts: ali.pub/1ny2z4
    The most convenient cash back:
    LetyShops: goo.gl/Ev5XgI
    The most profitable cash back on aliexpress:
    Ecomerce: goo.gl/3dDc2w
    Friends, support the channel!
    R340967932571
    Z422687519909
    U139735106020
    4149625807630874 The bank card of Privat Bank (Ukraine)

Комментарии • 75

  • @akmiable
    @akmiable 6 лет назад +6

    вместо запятой можно просто поставить точку с запятой ( ; ) и кавычек не нужно. Еще одна проблема в температуре разделителем разрядов у Вас стоит точка ( . ) для Excel это строковое значение, а не цифровое. Т.е. диаграмму Вы уже не построите. Нужно сразу в коде заменить точку на запятаю

  • @Rin_Media
    @Rin_Media 5 лет назад +5

    Ну прям точь в точь как я хотел...
    Удивительно как идентичны бывают мысли у людей.
    Железный ЛАЙК

  • @palianycia333
    @palianycia333 4 года назад +4

    То что я искал. Спасибо. Лаконично, понятно и музыка не мешает.

  • @ALCohol-qu7ib
    @ALCohol-qu7ib 6 лет назад +2

    Лучше использовать точку с запятой в качестве разделителя, тогда это будет соответствовать региональным настройкам и открываться файл Экселем просто двойным щелчком.

  • @user-rs6zc3tl7h
    @user-rs6zc3tl7h 5 лет назад +1

    Я TAB использовал для разделения, и файл просто .txt использовал. Потом все скопировал и вставил в новую таблицу. TAB он распознает как разделитель. Точки можно на запятые заменить в самом ексель, через ctrl+f найти и заменить, после замены точек можно будет графики строить.

  • @f33net
    @f33net 6 лет назад +2

    Проверять размер файла и, если он нулевой, только тогда фигачить заголовок не принято? :) А, если внутри кавычек в текстовом поле тоже кавычка (зараза) окажется? :)

  • @kostyaunin2900
    @kostyaunin2900 Год назад

    подскажите а как считать цифры в переменную обратно с флэшки?. Хочу записывать количество шагов на флэшку для шагового двигателя.

  • @Alexander13Orlov
    @Alexander13Orlov 6 лет назад +1

    Полезно. Спс.

  • @aleksandrzv8688
    @aleksandrzv8688 6 лет назад +1

    Класс!!!

  • @igor-rr1mg
    @igor-rr1mg 6 лет назад +1

    Лайк лайк ещё раз лайк !!!

  • @rualex8716
    @rualex8716 6 лет назад

    А флэшка не сдохнет от частого перезаписывания? Можно как-то оперативку использовать для хранения промежуточных данных или хотя бы не писать повторяющиеся значения?

  • @user-mq3bc4vf9h
    @user-mq3bc4vf9h 6 лет назад +3

    Очень интересно, жаль только что ничего не понимаю.Нитому я учился

    • @UCanDo
      @UCanDo  6 лет назад

      Я тоже не тому учился :))
      А это так, хобби.
      Вы, главное не бойтесь что-то делать, экспериментировать, задавать вопросы и у вас все получится!

    • @user-mq3bc4vf9h
      @user-mq3bc4vf9h 6 лет назад

      Спасибо, понемногу пробую.

  • @fullmetalchemist1809
    @fullmetalchemist1809 6 лет назад

    Все классно и просто. Где программировать учился? или самоучка?

    • @UCanDo
      @UCanDo  6 лет назад

      Самоучка, хобби такое :))
      Но на самом деле все уже сделано до нас, главное уметь находить в гугле нужную информацию. Но и самообразование никто не отменял :)))

    • @fullmetalchemist1809
      @fullmetalchemist1809 6 лет назад

      Я тоже самоучка. Купил стартовый набор и поехали. На этом уровне все понятно, но дальше расти уже вряд ли получиться(наверное). СД читалку точно приобрету. Жаль на хобби остаётся не много времени =( работа понимаешь.

  • @Ivan_krugovoy
    @Ivan_krugovoy Год назад

    А где вы такие схемы рисуете? Просто у всех ютуберов такие схемки, в какой проге это делать?

    • @UCanDo
      @UCanDo  Год назад

      Программа называется Fritzing.
      Она подходит для простых, наглядных схем с минимумом компонентов. Большие схемы в ней создавать невозможно, потому что очень сложно будет понять что куда идет и с чем подключается.
      Рекомендую программу EasyEDA. Она обладает гораздо большим функционалом

    • @Ivan_krugovoy
      @Ivan_krugovoy Год назад +1

      @@UCanDo спасибо что ответили! Да, мне для простых наглядных визуальных схемок и нужна программа. А изи идеа я и так пользуюсь)

  • @Com.GamoFF
    @Com.GamoFF 3 года назад

    Подскажите, а если данные нужно записать через секунду с этого устройства: aliexpress.ru/item/32988456496.html?spm=a2g0s.8937460.0.0.3c262e0eLuCY18&_ga=2.240816580.619359768.1613641863-672613960.1609148115&sku_id=66853750254 . Такое ведь тоже можно сделать? Только будет текстовая строка?

    • @UCanDo
      @UCanDo  3 года назад

      Записывать можно с большой скоростью. Я делал 11000 записей в секунду.
      Записывать на флешку можно абсолютно любые данные и значения. Все данные хранятся в файле в текстовом виде.

  • @chibyshev
    @chibyshev 6 месяцев назад

    File_Write перезаписывает файл стирая старые данные. File_Append спасет. Не раскрыт вопрос отказа и извлечения флешки. Это очень важные моменты.

    • @UCanDo
      @UCanDo  6 месяцев назад

      File_Write не перезаписывает файл, а записывает данные в конец файла ранее открытого командой SD.open()
      А команда File_Append вообще отсутствует: www.arduino.cc/reference/en/libraries/sd/
      Возможно вы используете какую-то иную, стороннюю библиотеку, а не ту, которая идет с составе Ардуино ИДЕ.
      На счет отказа и извлечения: можно просто проверять на существование ранее открытого (созданного) файла. Если его нет - значит с флешкой проблемы. А вообще есть масса способов проверить подключена ли флешка. Пример можно взять из примера «Card Info»

    • @chibyshev
      @chibyshev 6 месяцев назад

      @@UCanDo esp32. Возможно на ней по другому нежели как на видео.

  • @bodyk90
    @bodyk90 5 лет назад

    А просто открыть файл без импорта в excel не судьба, да?)

  • @user-xq3qy4qv5z
    @user-xq3qy4qv5z Год назад

    А можно массивы выгружать?

    • @UCanDo
      @UCanDo  Год назад

      Массив - это по сути строка переменных, просто программа «знает» где конец одной строки переменных и начало следующей. Так что не вижу проблем в том чтобы сохранить массив

  • @user-rg5gd9td8w
    @user-rg5gd9td8w 6 лет назад

    Напишите пожалуйста какой объём SD-карточки поддерживает данный модуль и в какая файловая система карты может работать с этим модулем?

    • @UCanDo
      @UCanDo  6 лет назад

      Сложно сказать какой максимальный объем поддерживается. Я пробовал максимум на 16 Гб, все работает. Файловая система: FAT (8, 16 или 23).
      Модуль - это всего лишь конвертер уровней. То есть карта работает по SPI 3.3 вольт. Если Ардуино будет работать от 3.3 вольт, то этот модуль не нужен, можно карту подключать напрямую.

    • @user-rg5gd9td8w
      @user-rg5gd9td8w 5 лет назад

      @@UCanDo Спасибо!!! В архиве нет библиотеки для работы с RTC и в библиотеке онлайн в среде её тоже нет, где взять чтоб скомпилировать код?

    • @UCanDo
      @UCanDo  5 лет назад

      Я сейчас в отъезде, не могу посмотреть. Напишите комментарий ещё раз в четверг-пятницу, тогда посмотрю код

  • @StoneTL
    @StoneTL 4 года назад

    Все сделал как у вас, но записывается через запятую, 1,2,3 - примерно так. не отступает строчку почему-то

    • @UCanDo
      @UCanDo  4 года назад

      В самом файле отступа не должно быть. Отступы и разбитие на ячейки формирует Exel.

  • @happer2009
    @happer2009 5 лет назад

    Температурный датчик трогал, светочувствительный закрывал, а показания не поменялись. Как так ? И кстати OpenOffice Calc куда как более грамотно импортирует данные чем майкрософтовское убожество.

    • @UCanDo
      @UCanDo  5 лет назад

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

  • @BalabayUA
    @BalabayUA 4 года назад

    Делал подобный логер на STM32, заинтересовался ресурсом на перезапись SD карт. Прямой информации от производителей не нашел, на в среднем по больнице 100 тыс. При записи раз в 5 сек с закрытием файла карточка сдохнет через пару месяцев.
    Пришлось на всё свободное озу STM32F407 делать буфер данных... И сделать кнопку для сброса буфера на карту для изьятия, типа Eject.

    • @UCanDo
      @UCanDo  4 года назад

      Вам ведь не нужна флешка на 16 гигабайт. Подойдёт и на 128 мегабайт. Пойдите на рынок, поспрашивайте, таких флешек вы купите кучку за копейки. Я так когда-то сделал. У торгашей выкупил больше 10 самых мелких флешек, а заплатил меньше чем за одну 8-мигиговую флешку

    • @alexbanzay1519
      @alexbanzay1519 3 года назад

      а как буфер делали?

    • @BalabayUA
      @BalabayUA 3 года назад

      @@alexbanzay1519 кольцевой буфер, основу нашел на гитхабе, под себя подправил. Статически выделенный массив, при заполнении на 95% открывается файл, дописуется и закрывается. Есть кнопка принудительного сброса буфера в файл, чтобы флешку вытащить

  • @user-xw4nh5dv6h
    @user-xw4nh5dv6h 3 года назад

    А можна вести логгирование чаще? Скажем 2 раза в секунду по всем каналам ацп?

    • @UCanDo
      @UCanDo  3 года назад

      Да, конечно можно. Я записывал со скоростью 11000 раз в секунду. Больше скорость на Ардуино у меня не получалось.

    • @user-xw4nh5dv6h
      @user-xw4nh5dv6h 3 года назад

      Спасибо за ответ!

    • @alexbanzay1519
      @alexbanzay1519 3 года назад

      и в этом случае перерыв обычным delay делали?

  • @user-zf5rn9yz8b
    @user-zf5rn9yz8b 4 года назад

    профессор скажите а как организовать бинарный поиск в упорядоченоом массиве щаписанном на флешку средствами ардуины?

    • @UCanDo
      @UCanDo  4 года назад +1

      Поиск есть поиск. И файл - просто файл. Без разницы чем он был записан. Тем более что запись идет без фрагментации. А сделать побайтовое чтение (поиск) не сложно: arduino.ru/forum/programmirovanie/pobaitovo-chtenie-s-sd

    • @user-zf5rn9yz8b
      @user-zf5rn9yz8b 4 года назад

      @@UCanDo
      пардон не там запятую поставил
      средствами ардуины нужно организовать поиск в базе данных по порядковому номеру номера идут упорядочено

    • @user-zf5rn9yz8b
      @user-zf5rn9yz8b 4 года назад

      @@UCanDo
      мерси за ссылочку

    • @UCanDo
      @UCanDo  4 года назад +1

      Там в теме этот вопрос задавался. Вот пример:
      myFile = SD.open("LOG.log");
      if (myFile) {
      symbol = myFile.read();
      }
      myFile.close();
      При каждом вызове myFile.read(); будет происходить смещение на 1 байт. То есть будет происходить поочередное чтение байтов начиная с 0-го.
      Для смещения на конкретное число байтов есть команда:
      myFile.seek (n);
      где "n" - номер байт, на который нужно переместить "курсор".

    • @user-zf5rn9yz8b
      @user-zf5rn9yz8b 4 года назад

      @@UCanDo
      ага спасибо

  • @user-yf5ym1xv6t
    @user-yf5ym1xv6t 6 лет назад +1

    у меня тхт файл также без проблем откр. разделитель только - *

    • @UCanDo
      @UCanDo  6 лет назад

      Все верно. Главное правильно сделать запись, и правильно потом экспортировать.

    • @user-yf5ym1xv6t
      @user-yf5ym1xv6t 6 лет назад

      только пару дней как додумался как отследить время работы компрессора на холодильнике - прицепил датчик темп к радиатору, а потом по графику в экселе все классно видно , оказалось что целый день работал не выкл.

  • @shoh761
    @shoh761 6 лет назад +1

    Здравствуйте

    • @UCanDo
      @UCanDo  6 лет назад

      Ответил вам на почту.

  • @MaxPivovarov
    @MaxPivovarov 6 лет назад

    Чтобы каждый раз заголовок не переписывался, достаточно одного ИФа.

    • @UCanDo
      @UCanDo  6 лет назад

      Приведите пример.
      Для того что бы не записывать заголовок Ардуино должна открыть файл на флешке и проверить содержимое. По-другому никак.

    • @MaxPivovarov
      @MaxPivovarov 6 лет назад +1

      "Для того что бы не записывать заголовок Ардуино должна открыть файл на флешке и проверить содержимое. По-другому никак."
      Или просто проверить наличие данного файла ;)

    • @UCanDo
      @UCanDo  6 лет назад

      Наличие файла не говорит о его содержимом. Может от пустой, а может остался от предыдущих тестов.

    • @MaxPivovarov
      @MaxPivovarov 6 лет назад

      Ну остался от предыдущих, какая разница если пишется дата и время? более того можно генерировать новое имя файла которое будет датой и временем начала отсчета. Нужно сразу показывать правильный код новичкам, даже если вы рассказываете не про весь код, а только про его часть. тем более сложности это не добавляет не "иф есть ли файл?" не "милс прошло ли время?". Преподавание это тоже профессия и раз уж взялись за это дело, то хотя бы азы нужно знать, что бы не научит плохому.

  • @user-ub9mj1zr8w
    @user-ub9mj1zr8w 4 года назад

    *Жирный текст* нормальный текст

  • @Mr_An_ok
    @Mr_An_ok 6 лет назад +2

    Это SD карточка, а не флэшка. И даже не флэш карта. Называйте вещи своими именами, не утрируйте до простых понятий. У любого устройства может быть два слота - для SD карточки и для флэшки. И в инструкции грамотный инженер называет их правильно.

    • @igor-rr1mg
      @igor-rr1mg 6 лет назад +2

      Сд флеш карта ! Не придерайся !! Юсб флешка это юсб обломись и отстань

    • @igor-rr1mg
      @igor-rr1mg 6 лет назад +2

      И вообще раз такой умный а сам нечего умного не предложил!

    • @fullmetalchemist1809
      @fullmetalchemist1809 6 лет назад

      Флешка флешка, EEPROM если точнее. Я прав?

  • @MaxPivovarov
    @MaxPivovarov 6 лет назад +1

    Задержки делаем это самая плохая идея! Забудьте эту команду навсегда и никогда про неё не вспоминайте!

    • @UCanDo
      @UCanDo  6 лет назад

      То есть гнать данные на флешку непрерывно? Со скоростью работы Ардуино?
      Если у вас неприязнь именно к delay() то вас никто не заставляет ее использовать. Возьмите, millis() или по таймеру.

    • @MaxPivovarov
      @MaxPivovarov 6 лет назад

      именно милс или таймер, но никак не делай, особенно если претендуете на обучение.
      надеюсь в следующим уроке объясите вашим "ученикам" почему нельзя использовать delay().

    • @UCanDo
      @UCanDo  6 лет назад

      В данном видео говорится не об паузах и таймерах, а о записи данных.
      Пересмотрите мои видео и перечитайте мои комментарии - я всегда был против delay(). Применяю его в данном случае только для упрощения понимания кода. Одно видео - одна тема. А если еще рассказывать о паузах, о том что такое SPI, о согласовании уровней питания.... то толку от такого видео не будет.
      Но опять же, каждой команде свое место. Если цель всего устройства - 1 раз в секунду считать данные с датчиков и записать на флешку, то не вижу никакой причины вместо delay() использовать millis или, тем более, таймер.

    • @Alexander13Orlov
      @Alexander13Orlov 6 лет назад

      Почему в этом примере нельзя использовать delay? Боюсь внятного ответа от мы не получим)

    • @MaxPivovarov
      @MaxPivovarov 6 лет назад

      потому как делай можно использовать в одном примере, в котором рассказывается, что его юзать в нормальных программах нельзя.
      Внятный ответ, потому что delay БЛОКИРУЮЩАЯ функция которая ПОЛНОСТЬЮ останавливает выполнение программы на заданное время, и процессор(контроллер) в это время НИЧЕГО НЕ ДЕЛАЕТ кроме пожирания электричества! Как вам это ещё объяснить я не знаю.