Оглавление:
- Шаг 1. Что вам понадобится:
- Шаг 2: Подключите Arduino к DHT11
- Шаг 3: Загрузите Arduino IDE
- Шаг 4: Подключите Arduino к компьютеру
- Шаг 5: Загрузите библиотеку
- Шаг 6: Получите код Arduino
- Шаг 7: Загрузите код в Arduino
- Шаг 8: Загрузите и установите Обработку
- Шаг 9: Обработка кода
- Шаг 10: обработка файлов кода
- Шаг 11: Шрифт в обработке
- Шаг 12: Завершение
- Шаг 13: Устранение неполадок
Видео: Отображение температуры и влажности и сбор данных с помощью Arduino и обработка: 13 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Введение: это проект, в котором используется плата 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
Сначала определите, какой у вас DHT11
Я использовал 3-контактный, так как в нем уже есть необходимый резистор 10 кОм.
Если у вас есть 4 контакта, вам понадобится резистор 10 кОм и макетная плата.
Подключите DHT11 к плате Arduino. Эта программа требует, чтобы сигнальный вывод DHT 11 был подключен к выводу № 7 Arduino, вывод Pos (+) был подключен к 5 В на Arduino, а отрицательный (-) - к GND на Arduino.
См. Диаграммы и диаграммы фритзинга.
Шаг 3: Загрузите Arduino IDE
Скачайте Arduino IDE и установите на компьютер
www.arduino.cc/en/Main/Software
Шаг 4: Подключите 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
Загрузите файл 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
Сначала сохраните эскиз в месте и с именем, которое вы запомните, например: Temp_Hum.
Затем вам нужно загрузить скетч на плату Arduino, нажав кнопку со стрелкой вправо (загрузка).
См. Диаграмму
Это займет несколько секунд; вы увидите индикатор выполнения в правом нижнем углу.
Затем вы увидите: сообщение о завершении загрузки в левом нижнем углу и белый текст в нижней части среды IDE, в котором говорится о памяти.
См. Диаграмму
Если вы получаете код ошибки (оранжевый текст в нижней части IDE), это должен быть один из следующих
- Библиотека "DHTlib" скопирована некорректно
- COM-порт настроен неправильно
- Датчик был подключен неправильно
- Код не был правильно загружен в 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.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') // ждем, пока в последовательном порту появятся данные
Рекомендуемые:
Как сделать отслеживание данных о коронавирусе COVID 19 в реальном времени с помощью ESP8266, отображение электронной бумаги: 7 шагов
Как сделать трекер данных о коронавирусе COVID 19 в реальном времени с ESP8266, дисплей электронной бумаги: 1
Чтение и отображение данных датчика освещенности и температуры с помощью Raspberry Pi: 5 шагов
Чтение и отображение данных датчика освещенности и температуры с помощью Raspberry Pi: в этом руководстве вы узнаете, как считывать данные датчика освещенности и температуры с помощью Raspberry Pi и аналого-цифрового преобразователя ADS1115 и строить график с помощью matplotlib. Начнем с необходимых материалов
Как сделать регистратор данных влажности и температуры в реальном времени с Arduino UNO и SD-картой - Моделирование регистратора данных DHT11 в Proteus: 5 шагов
Как сделать регистратор данных влажности и температуры в реальном времени с Arduino UNO и SD-картой | Моделирование регистратора данных DHT11 в Proteus: Введение: привет, это Liono Maker, вот ссылка на YouTube. Мы делаем творческий проект с Arduino и работаем над встраиваемыми системами. Регистратор данных: Регистратор данных (также регистратор данных или регистратор данных) - это электронное устройство, которое записывает данные с течением времени
ОТОБРАЖЕНИЕ ВЛАЖНОСТИ И ТЕМПЕРАТУРЫ НА ЖК-ДИСПЛЕЕ С ARDUINO NANO: 5 шагов
ОТОБРАЖАЙТЕ ВЛАЖНОСТЬ И ТЕМПЕРАТУРУ НА ЖК-ДИСПЛЕЕ С ARDUINO NANO: Следующие инструкции посвящены созданию простого ЖК-интерфейса с помощью Arduino nano
Сбор данных с помощью ESP8266 / ESP32: 7 шагов
Сбор данных с помощью ESP8266 / ESP32: Вы когда-нибудь хотели получить данные для своих проектов Arduino, но для этого нет общедоступного API? Или в таких случаях, как Instagram API, когда процесс настройки не очень удобен? В этом руководстве мы рассмотрим 2 различных варианта