Оглавление:

Отображение температуры и влажности и сбор данных с помощью Arduino и обработка: 13 шагов (с изображениями)
Отображение температуры и влажности и сбор данных с помощью Arduino и обработка: 13 шагов (с изображениями)

Видео: Отображение температуры и влажности и сбор данных с помощью Arduino и обработка: 13 шагов (с изображениями)

Видео: Отображение температуры и влажности и сбор данных с помощью Arduino и обработка: 13 шагов (с изображениями)
Видео: Вывод данных с датчиков на дисплей 2024, Ноябрь
Anonim
Отображение температуры и влажности и сбор данных с помощью Arduino и обработки
Отображение температуры и влажности и сбор данных с помощью Arduino и обработки

Введение: это проект, в котором используется плата Arduino, датчик (DHT11), компьютер с Windows и программа обработки (загружаемая бесплатно) для отображения данных о температуре, влажности в цифровом виде и в виде гистограммы, отображения времени и даты и выполнения подсчета. таймер включения во время выполнения программы и запись всех данных в формате.csv при закрытии программы.

Вдохновение:

Во-первых, я ДОЛЖЕН сказать, что я абсолютный новичок и многому научился из этого проекта. Таким образом, я пытаюсь написать эту инструкцию, чтобы ее мог прочитать и понять новичок.

Я видел различные проекты Arduino для измерения температуры и влажности, но мне нужна была программа, которая:

1) Измеренные температура и влажность

2) Отображение данных как в виде графика (я выбрал гистограмму), так и в цифровой форме.

3) Имеет функцию часов

4) Имеет таймер «Время работы».

5) Сохраняет эти данные в формате файла.csv (excel).

Я черпал вдохновение в программах, созданных Sowmith Mandadi, R-B и aaakash3, но ни один из них не был именно тем, что я хотел. Так что я научился писать базовый код и сделал то, что хотел.

Шаг 1. Что вам понадобится:

Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится

Детали и материалы: * Компьютер - я использовал компьютер Windows с операционной системой Windows 10.

(Я уверен, что можно использовать Linux или Mac, у меня их просто нет, поэтому я не буду рассказывать, как использовать эти операционные системы)

* Плата Arduino - я использовал плату Arduino Uno, но подойдет любая плата Arduino с USB.

* Кабель USB - кабель USB A / B - такой же, как «кабель принтера» старого типа (обычно поставляется с платой Arduino)

* Датчик температуры / влажности DHT 11 - недорогой от 4 до 8 долларов

(Примечание: есть 2 версии, я использовал 3-контактную версию, 4-контактная версия потребует использования макетной платы и резистора 10 кОм, 3-контактная имеет печатную плату, которая включает в себя резистор 10 кОм) см. Диаграммы Фритцинга в следующих шагах

* Соединительные провода

Провода Dupont (двойные розетки) при подключении к 3-контактному DHT11 без макета

Стандартные перемычки M / F (один конец - вилка, другой конец - розетка) и перемычки M / M (оба конца - вилка) для подключения 4-контактного DHT11 - см. Шаг 2 для получения дополнительной информации

* Arduino IDE - программа для написания программ Arduino (называемых скетчами) бесплатно @

www.arduino.cc/en/Main/Software

* Обработка - программа для написания обработки скетчей бесплатно @

processing.org/download/

* Файл «DHTLib» - файл библиотеки (это файл, который входит в программу Arduino IDE в папке «Библиотека», его необходимо добавить в эскиз Arduino, прежде чем Arduino сможет считывать данные с DHT11 - см. шаг 5 для загрузки файла и инструкций

Шаг 2: Подключите Arduino к DHT11

Подключите Arduino к DHT11
Подключите Arduino к DHT11
Подключите Arduino к DHT11
Подключите Arduino к DHT11
Подключите Arduino к DHT11
Подключите Arduino к DHT11
Подключите Arduino к DHT11
Подключите Arduino к DHT11

Сначала определите, какой у вас DHT11

Я использовал 3-контактный, так как в нем уже есть необходимый резистор 10 кОм.

Если у вас есть 4 контакта, вам понадобится резистор 10 кОм и макетная плата.

Подключите DHT11 к плате Arduino. Эта программа требует, чтобы сигнальный вывод DHT 11 был подключен к выводу № 7 Arduino, вывод Pos (+) был подключен к 5 В на Arduino, а отрицательный (-) - к GND на Arduino.

См. Диаграммы и диаграммы фритзинга.

Шаг 3: Загрузите Arduino IDE

Скачать Arduino IDE
Скачать Arduino IDE

Скачайте Arduino IDE и установите на компьютер

www.arduino.cc/en/Main/Software

Шаг 4: Подключите Arduino к компьютеру

Подключите Arduino к компьютеру
Подключите Arduino к компьютеру

Сначала установите Arduino IDE, в ней есть драйверы для подключения Arduino USB.

Подключите Arduino к компьютеру через USB.

Подождите, пока компьютер распознает плату Arduino, и установите все драйверы.

Откройте программу IDE и проверьте последовательное соединение.

Если плата Arduino не отображается в меню Инструменты> порт (красный кружок), закройте IDE и снова откройте.

* Важно * после того, как IDE открыта и плата Arduino подключена через USB. Плата Arduino должна быть подключена к правильному последовательному порту. На компьютерах с Windows это называется COM-портом. Для этого в IDE перейдите в Инструменты> Порт:> Последовательные порты. Как видно на схеме, последовательный порт (красный кружок) должен соответствовать порту, указанному в правом нижнем углу программы IDE (желтый кружок).

Шаг 5: Загрузите библиотеку

Загрузите библиотеку
Загрузите библиотеку
Загрузите библиотеку
Загрузите библиотеку
Загрузите библиотеку
Загрузите библиотеку
Загрузите библиотеку
Загрузите библиотеку

Загрузите библиотеку для DHT11. Сначала это сбивало меня с толку, но на самом деле это довольно просто.

Загрузите файл с именем «DHTLib» и разархивируйте. Скопируйте распакованный файл «DHTLib».

Ссылку на эту библиотеку можно найти по адресу:

playground.arduino.cc/Main/DHTLib

(Он был написан Робом Тиллаартом на основе работы других)

Найдите папку Arduino на своем компьютере и откройте ее. (Он будет там, где вы скачали IDE и установили ее на компьютер)

См. Диаграмму

Найдите файл с именем «библиотеки» и откройте его, затем вставьте папку «DHTLib» в файл «библиотеки». Закройте его и перезапустите IDE.

См. Диаграмму

После повторного открытия IDE вы можете проверить, установлена ли библиотека DHT. Эскиз> Включить библиотеку.

См. Диаграмму

Примечание. Щелчок по DHTLib на вкладке «Включить библиотеку» поместит библиотеку в код Arduino как «#include dht.h».

Вам не нужно этого делать, потому что это уже есть в коде, который вы загрузите на следующем шаге.

Шаг 6: Получите код Arduino

Получите код Arduino
Получите код Arduino

Загрузите файл Temp_Hum_Instructable.zip и разархивируйте. Откройте Temp_Hum_Instructable.ino с помощью Arduino IDE.

В качестве альтернативы посмотрите на следующий код и скопируйте и вставьте или введите точно в Arduino IDE:

#включают

dht DHT; #define DHT11PIN 7 // устанавливает вывод 7 для подключения сигнала DHT11 void setup () {Serial.begin (9600); // открывает серийный номер} void loop () {int chk = DHT.read11 (DHT11PIN); // считывает DHT11 Serial.print (DHT.temperature, 0); // печатает временное значение в последовательном Serial.print (","); // выводит запятую в последовательном формате Serial.print (DHT.humidity, 0); // выводит влажность в последовательном формате Serial.println (); // задержка возврата каретки (2000); // подождите 2 секунды}

Когда вы закончите, он должен выглядеть как на схеме выше.

Шаг 7: Загрузите код в Arduino

Загрузить код в Arduino
Загрузить код в Arduino
Загрузить код в Arduino
Загрузить код в Arduino
Загрузить код в Arduino
Загрузить код в Arduino
Загрузить код в Arduino
Загрузить код в Arduino

Сначала сохраните эскиз в месте и с именем, которое вы запомните, например: Temp_Hum.

Затем вам нужно загрузить скетч на плату Arduino, нажав кнопку со стрелкой вправо (загрузка).

См. Диаграмму

Это займет несколько секунд; вы увидите индикатор выполнения в правом нижнем углу.

Затем вы увидите: сообщение о завершении загрузки в левом нижнем углу и белый текст в нижней части среды IDE, в котором говорится о памяти.

См. Диаграмму

Если вы получаете код ошибки (оранжевый текст в нижней части IDE), это должен быть один из следующих

  1. Библиотека "DHTlib" скопирована некорректно
  2. COM-порт настроен неправильно
  3. Датчик был подключен неправильно
  4. Код не был правильно загружен в IDE. Оранжевый текст можно прокручивать, и он укажет, что не так. Вернитесь и убедитесь, что это, вероятно, простая ошибка.

Как только это будет сделано, внимательно посмотрите на свою плату Arduino. Каждые пару секунд маленький светодиод рядом с буквами «TX» будет мигать. Это Arduino, отправляющий информацию обратно на компьютер. Чтобы проверить это, щелкните маленький значок увеличительного стекла в правом верхнем углу IDE.

См. Диаграмму

Это откроет последовательный монитор и отобразит данные о температуре и влажности, разделенные запятыми. Вы заметите, что данные о температуре указаны в градусах Цельсия. Это нормально, мы конвертируем в градусы Фаренгейта позже (или нет, если вы выберете).

См. Диаграмму

Затем закройте последовательный монитор, а затем закройте IDE. (Вы ведь не забыли сохранить его, не так ли?). Теперь снова посмотрите на плату Arduino (не отсоединяйте ее от USB, через который она получает питание и отправляет данные в последовательный порт компьютера). Он все еще мигает? Да, отлично. Как только программа загружена в Arduino, она будет работать до тех пор, пока у нее есть питание.

Примечание о коде: если вы посмотрите на код Arduino, начинающийся с «void loop ();». Следующие 5 строк кода говорят Arduino читать данные из DHT и выводить их на последовательную шину через запятую. Следующая строка «задержка (2000);» сообщает Arduino подождать 2 секунды (2000 миллисекунд), поэтому данные будут приниматься каждые 2 секунды. Затем он возвращается к «void loop ();» - команде, которая сообщает Arduino сделать это снова. Изменение значения в строке задержки изменит частоту получения данных. Пример: изменение на (600000) изменится это до 10 минут (600000 миллисекунд = 10 минут). Получение данных каждые 2 секунды заканчивается большим объемом данных, поэтому теперь вы знаете, как изменить частоту чтения данных. Просто помните, если вы измените значение позже, вы нужно загрузить новую программу.

Хорошо, сядьте и сделайте вдох, вы уже на полпути. Да!!

Шаг 8: Загрузите и установите Обработку

Скачать и установить Processing
Скачать и установить Processing
Скачать и установить Processing
Скачать и установить Processing

processing.org/download/

Довольно просто выбрать программу, которая соответствует вашему компьютеру для 64-разрядной версии Windows или 32-разрядной версии. Если вы не знаете, откройте панель управления на своем компьютере (вид значков, а не категорий) и перейдите в систему, где она будет указана.

См. Диаграмму

Скачайте и установите программу.

В первый раз, когда вы откроете и запустите обработку, вы, вероятно, получите сообщение безопасности Java. Нажмите «Разрешить» для частных сетей. Java - это компьютерный язык, используемый обработкой (и Arduino IDE). Интересно, что у меня никогда не было сообщения безопасности с Arduino IDE, только Processing.

Шаг 9: Обработка кода

Код обработки
Код обработки

ОК, теперь для кода обработки.

Это была самая сложная часть для меня, но также и самая большая возможность для обучения. В то время как код Arduino состоял примерно из 20 строк, этот код имеет +/- 270 строк в основном коде и еще 70 + в классах.

Теперь первое, что вы должны спросить, это «Что такое классы?». Хороший вопрос. Это относится к объектно-ориентированному программированию. Короче говоря, в основном коде происходит множество вещей: определение размера и цвета дисплея, часы, таймер, код для отображения местоположения курсора, код для сохранения данных в файл.csv и несколько строк. которые имеют дело с кодом, который отображает гистограммы. Хотя в среде Arduino IDE весь код был на одной странице, этот код обработки имеет три вкладки. Первый - это основной код, а следующие два - это код, отображающий гистограммы. (Этот код фактически хранится в трех отдельных файлах в папке с кодом обработки.) Отдельные вкладки называются «классами» и определяются в строках 48 и 56, а затем отображаются в строках 179–182 основного кода. Люди, написавшие программу Processing, называют это объектно-ориентированным программированием. (см.: https://processing.org/tutorials/objects/ для краткого описания).

По сути, классы (Recta1, Recta2) в этом коде создают прямоугольники, которые перемещаются вверх и вниз на основе данных, полученных от DHT11 через последовательный порт. Подумайте о старомодном термометре: чем выше уровень ртути, тем он горячее, но это делается с использованием данных, а не ртути. На самом деле классы создают четыре прямоугольника, два статических прямоугольника, которые представляют фон термометра, и два динамических прямоугольника, которые реагируют на данные и перемещаются вверх и вниз. Помимо перемещения прямоугольников, код изменяет цвет динамического прямоугольника и цвет цифрового дисплея температуры и влажности на основе данных, получаемых по последовательному каналу.

Шаг 10: обработка файлов кода

Немного основ обработки кода:

Я настоятельно рекомендую прочитать Make: Getting Started withProcessing Кейси Риаса и Бена Фрая, основателей Processing.

processing.org/books/#reasfry2

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

1. Сначала нужно включить библиотеки (как в Arduino) и объявить переменные (строки 1-25).

2. Затем установите дисплейную плату (строки 27-63).

3. Запустите повторяющуюся часть кода - я имею в виду, что эта часть кода будет повторяться, пока выполняется программа. Вы помните, что в Arduino «void loop ();» (Шаг 6). В обработке это теперь «void draw ();» (Строки 65-184)

4. Далее получаем данные из последовательного порта и присваиваем их переменным (int, float, String).

int-

плавать-

Нить-

(Строки 185–245)

4. Наконец, способ закрыть программу и сохранить данные (строки 246-271)

Хорошо: Загрузите файл Temp_Hum_F_3_2 (по Фаренгейту)

Или Temp_Hum_C_3_1 (по Цельсию)

и разархивируйте файл. Открыть с обработкой.

Шаг 11: Шрифт в обработке

Шрифт в обработке
Шрифт в обработке

Важно: обращаю ваше внимание на строки 36-37.

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // загружает шрифт, хранящийся в данных

папка 37 textFont (шрифт);

Эта библиотека шрифтов «SourceCodePro-Bold-48.vlw» включена в загрузку файлов обработки и не требует изменения для работы.

Однако, чтобы изменить шрифт на другой, вам нужно будет загрузить новый шрифт в эскиз обработки И заменить «SourceCodePro-Bold-48.vlw» новым шрифтом.

. К счастью, обработка сделала первую часть очень простой.

Сначала откройте эскиз, затем щелкните:

Инструменты> Создать шрифт

это вызывает окно

См. Диаграмму

Прокрутите вниз до нужного нового шрифта, нажмите на него, а затем нажмите OK. Шрифт загружен в папку эскиза.

Затем замените текст «SourceCodePro-Bold-48.vlw» на точное имя нового шрифта (включая формат файла.vlw).

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

Шаг 12: Завершение

Заканчивать
Заканчивать
Заканчивать
Заканчивать
Заканчивать
Заканчивать
Заканчивать
Заканчивать

Чтобы запустить программу обработки, щелкните стрелку, вы можете получить предупреждение Java. Щелкните: Разрешить доступ.

См. Диаграмму

Ок, программа заработала? В этом случае вы получите изображение, подобное изображенному на диаграмме.

(Нет? См. Устранение неполадок на следующем шаге)

Да? Теперь попробуйте держать DHT11 в закрытой ладони или под струей теплого воздуха из фена. Цифры должны измениться. Да? Большой. это означает, что все работает хорошо.

Чтобы закрыть программу и сохранить данные, щелкните поле с надписью «Щелкните здесь, чтобы закрыть и сохранить данные».

Теперь, чтобы найти сохраненные данные, перейдите в папку Temp_Hum_F_3_1 или Temp_Hum_C_3_1 Processing (вы уже должны найти ее самостоятельно), откройте ее и найдите папку Data. Откройте его, и вы должны увидеть файл.csv, названный в честь даты и времени закрытия программы (пример 1-10-18-22-30-16.csv означает 10 января 2018 г., 22:30:16). Откройте его с помощью Excel (или эквивалента электронной таблицы Open office). Вы должны увидеть что-то вроде диаграммы. Столбцы для даты, времени, времени работы, температуры и влажности с данными. Теперь вы можете построить график данных с помощью Excel или того, что вы хотите с ним делать. (Примечание: если вы посмотрите на первый ввод данных, данные о температуре и влажности неверны, это нормально и является ошибкой при первом запуске программы)

ОК да !!!!!

Ты сделал это

Если у вас есть вопросы, пишите, и я постараюсь ответить и помочь.

Спасибо, что остаетесь с этим, и удачи. Надеюсь, это только начало …

Далее для меня Bluetooth и, возможно, Android….

Шаг 13: Устранение неполадок

Исправление проблем
Исправление проблем
Исправление проблем
Исправление проблем

Проблемы с Arduino

Если вы получаете код ошибки (оранжевый текст в нижней части IDE), это должно быть одно из следующих: Библиотека «DHTlib» была скопирована неправильно.

COM-порт настроен неправильно

Датчик был подключен неправильно

Код не был правильно загружен в IDE

Если все Arduino работает нормально, не забудьте открыть Serial Monitor и посмотреть, отображаются ли данные.

Если вы видите правильные данные, это означает, что на стороне Arduino все работает. Не забудьте закрыть последовательный монитор перед началом обработки, если последовательный монитор открыт. Обработка не может прочитать данные.

Проблемы с обработкой:

Они будут отображаться в нижней части программы обработки.

Если вы получили сообщение об ошибке с описанием «шрифт», вернитесь к шагу 11 и загрузите шрифт, как описано.

Если вы получаете сообщение об ошибке, которое выглядит следующим образом: Ошибка, отключение serialEvent () для COM4 null - просто перезапустите скетч обработки, щелкнув стрелку, как на шаге 12.

Если вы получаете сообщение об ошибке: Ошибка при открытии последовательного порта - попробуйте изменить строки 32-34 на что-то вроде того, где «COM4» соответствует COM-порту в вашем скетче Arduino.

myPort = newSerial (this, "COM4", 9600); // Порт myPort.bufferUntil ('\ n') // ждем, пока в последовательном порту появятся данные

Рекомендуемые: