Оглавление:

Как построить свой собственный анемометр с помощью язычковых переключателей, датчика Холла и некоторых записок на Nodemcu - Часть 2 - Программное обеспечение: 5 шагов (с изображени
Как построить свой собственный анемометр с помощью язычковых переключателей, датчика Холла и некоторых записок на Nodemcu - Часть 2 - Программное обеспечение: 5 шагов (с изображени

Видео: Как построить свой собственный анемометр с помощью язычковых переключателей, датчика Холла и некоторых записок на Nodemcu - Часть 2 - Программное обеспечение: 5 шагов (с изображени

Видео: Как построить свой собственный анемометр с помощью язычковых переключателей, датчика Холла и некоторых записок на Nodemcu - Часть 2 - Программное обеспечение: 5 шагов (с изображени
Видео: 🌑 ВЕТРОГЕНЕРАТОР ИДЕАЛЬНАЯ КОНСТРУКЦИЯ СДЕЛАЙ И СЕБЕ ТАКОЙ ЖЕ ВЕТРЯК ИГОРЬ БЕЛЕЦКИЙ 2024, Ноябрь
Anonim
Как создать свой собственный анемометр с помощью язычковых переключателей, датчика Холла и некоторых запчастей на Nodemcu - Часть 2 - Программное обеспечение
Как создать свой собственный анемометр с помощью язычковых переключателей, датчика Холла и некоторых запчастей на Nodemcu - Часть 2 - Программное обеспечение
Как создать свой собственный анемометр с помощью язычковых переключателей, датчика Холла и некоторых деталей на Nodemcu - Часть 2 - Программное обеспечение
Как создать свой собственный анемометр с помощью язычковых переключателей, датчика Холла и некоторых деталей на Nodemcu - Часть 2 - Программное обеспечение

Вступление

Это продолжение первого поста «Как создать свой собственный анемометр с помощью язычковых переключателей, датчика Холла и некоторых запчастей на Nodemcu - Часть 1 - Оборудование», где я показываю, как собрать устройства для измерения скорости и направления ветра. Здесь мы будем использовать программное обеспечение для управления измерениями, разработанное для использования в Nodemcu с использованием Arduino IDE.

Описание Проекта

В предыдущем посте устройства, подключенные к Nodemcu, могут измерять скорость и направление ветра. Управляющее программное обеспечение было разработано для считывания вращения анемометра в течение определенного периода времени, расчета линейной скорости, считывания направления, в котором находится лопасть, отображения результатов на OLED, публикации результатов в ThingSpeak и сна в течение 15 минут, пока следующее измерение.

Отказ от ответственности: этот анемометр не следует использовать в профессиональных целях. Это только для академического или домашнего использования.

Примечание: английский - не мой родной язык. Если вы обнаружите грамматические ошибки, которые мешают вам понять проект, дайте мне знать, чтобы исправить их. Большое спасибо.

Шаг 1. Установка Arduino IDE, плат и библиотек ESP8266 и вашей учетной записи ThingSpeak

Установка Arduino IDE, плат и библиотек ESP8266 и вашей учетной записи ThingSpeak
Установка Arduino IDE, плат и библиотек ESP8266 и вашей учетной записи ThingSpeak
Установка Arduino IDE, плат и библиотек ESP8266 и вашей учетной записи ThingSpeak
Установка Arduino IDE, плат и библиотек ESP8266 и вашей учетной записи ThingSpeak

Установка Arduino IDE и Nodemcu

Если вы никогда не устанавливали IDE Arduino, пожалуйста, прочтите руководство по ссылке - Как установить Arduino IDE - где вы можете найти полные инструкции.

Следующим шагом, чтобы установить плату Nodemcu, используйте это руководство из Magesh Jayakumar Instructables, которое является очень полным. Как установить Nodemcu no Arduino IDE

Установка библиотек

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

Библиотека ThingSpeak -

Библиотека ESP8266 -

Создание учетной записи ThingSpeak

Чтобы использовать ThingSpeak (https://thingspeak.com/), вы должны создать учетную запись (она все еще бесплатна для определенного количества взаимодействий), где вы можете сохранять данные, измеренные анемометром, и отслеживать состояние ветра в вашем доме, даже через мобильный телефон. Используя ThingSpeak, вы можете предоставить публичный доступ к собранным вами данным всем, кому это интересно. Это хорошее преимущество ThingSpeak. Войдите на домашнюю страницу и следуйте инструкциям по созданию учетной записи.

После создания учетной записи войдите в это руководство - Начало работы с ThingSpeak - для создания своих каналов. Это довольно хорошо объяснено. Таким образом, вы должны создать канал, в котором будут храниться данные. У этого канала есть идентификатор и API ключа, на которые следует ссылаться в скетче каждый раз, когда вы хотите записать данные. ThingSpeak будет хранить все данные в банке и будет показывать их каждый раз, когда вы входите в свою учетную запись, как вы настроили.

Шаг 2: Изучение эскиза

Изучение эскиза
Изучение эскиза
Изучение эскиза
Изучение эскиза

Схема

На схеме вы можете понять флюксограмму эскиза. Когда вы разбудите (подключите) Nodemcu, он подключится к вашей сети Wi-Fi, параметры которой вы настроили, и начнет отсчитывать 1 минуту времени для выполнения измерений. Сначала он будет подсчитывать обороты анемометра в течение 25 секунд, вычислять линейную скорость и считайте направление ветра. Результаты отображаются на OLED-экране. Повторите те же шаги еще раз, и для этого второго чтения он будет передан на ThingSpeak.

Затем Nodemcu засыпает 15 минут для экономии заряда батареи. Поскольку я использую небольшую солнечную панель, это обязательно. Если вы используете источник 5 В, вы можете изменить программу, чтобы она не переходила в спящий режим и продолжала измерять данные.

Структура программ

На схеме вы можете увидеть структуру эскиза.

Анемометр_Instructables

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

коммуникации

Подключите Wi-Fi и отправьте данные в ThingSpeak.

credentials.h

Ключи вашей сети Wi-Fi и идентификаторы вашей учетной записи в ThingSpeak. Здесь вы измените идентификаторы ключей и API.

определяет.h

Он содержит все переменные программы. Здесь вы можете изменить время чтения или продолжительность сна nodemcu.

функции

Он содержит функции для объединения параметров и считывания мультиплексора, а также функцию для считывания оборотов анемометра.

oledDisplay

Показать на экране результаты скорости и направления ветра.

Шаг 3. Пояснения к…

Пояснения по поводу…
Пояснения по поводу…
Пояснения по поводу…
Пояснения по поводу…
Пояснения по поводу…
Пояснения по поводу…
Пояснения по поводу…
Пояснения по поводу…

Присоединить прерывание

Вращение анемометра измеряется функцией attachInterrupt () (и detachInterrupt ()) в GPIO 12 (вывод D6) Nodemcu (он имеет функцию прерывания на выводах D0-D8).

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

Вы можете прочитать подробную информацию о функции в ссылке на руководство по Arduino. Смотрите attachInterrupt ().

Синтаксис: attachInterrupt (контакт, функция обратного вызова, тип / режим прерывания);

контакт = D6

callback function = rpm_anemometer - считает каждый импульс переменной.

тип / режим прерывания = RISING - прерывание, когда вывод переходит с низкого на высокий.

При каждом импульсе, производимом магнето в датчике Холла, вывод переходит от низкого к высокому, функция счета активируется и суммирует импульс в переменной в течение установленных 25 секунд. По истечении времени счетчик отключается (detachInterrupt ()), и процедура вычисляет скорость при отключении.

Расчет скорости ветра

После того, как было определено, сколько оборотов анемометр совершил за 25 секунд, мы вычисляем скорость.

  • РАДИО - это измерение от центральной оси анемометра до кончика мяча для пинг-понга. Вы, должно быть, очень хорошо измерили свою - (см. Это на диаграмме, где указано 10 см).
  • RPS (оборотов в секунду) = оборотов / 25 секунд
  • RPM (оборотов в минуту) = RPS * 60
  • OMEGA (угловая скорость - радианы в секунду) = 2 * PI * RPS
  • Linear_Velocity (метры в секунду) = OMEGA * RADIO
  • Linear_Velocity_kmh (км в час) = 3.6 * Linear_Velocity, и это то, что будет отправлено в ThingSpeak.

Считать направление флюгера

Чтобы прочитать положение флюгера для определения направления ветра, программа отправляет низкий и высокий сигналы в мультиплексор со всеми комбинациями параметров A, B, C (матрица muxABC) и ожидает получения результата на выводе A0. это может быть любое напряжение от 0 до 3,3 В. Комбинации показаны на диаграмме.

Например, когда C = 0 (низкий), B = 0 (низкий), A = 0 (низкий), мультиплексор передает ему данные вывода 0 и отправляет сигнал на A0, который считывается Nodemcu; если C = 0 (низкий), B = 0 (низкий), A = 1 (высокий), мультиплексор будет отправлять вам данные вывода 1 и так далее, пока чтение 8 каналов не будет завершено.

Поскольку сигнал аналоговый, программа преобразуется в цифровой (0 или 1), если напряжение меньше или равно 1,3 В, сигнал равен 0; если он больше 1,3 В, сигнал будет 1. Значение 1,3 В произвольно, и для меня оно сработало очень хорошо. Всегда есть небольшие утечки тока, и это защищает от ложных срабатываний.

Эти данные хранятся в векторе val [8], который будет сравниваться с массивом адресов в качестве компаса. См. Матрицу на схеме. Например, если принятый вектор равен [0, 0, 1, 0, 0, 0, 0, 0, 0], он указывает в матрице направление E и соответствует углу 90 градусов; if [0, 0, 0, 0, 0, 0, 1, 1] указывает в матрице адрес WNW и соответствует углу 292,5 градуса. N соответствует [1, 0, 0, 0, 0, 0, 0, 0, 0] и углу 0 градусов.

То, что будет отправлено в ThingSpeak, находится под углом, потому что он принимает только числа.

Шаг 4: Связь

Связь
Связь
Связь
Связь

Как отправить данные в ThingSpeak

За отправку данных отвечает функция thingspeaksenddata ().

ThingSpeak.setField (1, float (linear_velocity_kmh)) - отправляет данные скорости в field1 моего канала

ThingSpeak.setField (2, float (wind_Direction_Angle)) - Отправить данные адреса в field2 моего канала

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - отправить на мой канал myChannelNumber с записанным API myWriteAPIKey, указанным TS. Эти данные были созданы TS при создании вашей учетной записи и канала.

На картинках выше вы можете увидеть, как ThingSpeak отображает полученные данные.

По этой ссылке вы можете получить доступ к данным моего проекта в публичном канале ThingSpeak.

Шаг 5: основные переменные

параметры флюгера

  • MUX_A D5 - мультиплексор pi A на вывод Nodemcu D5
  • MUX_B D4 - вывод мультиплексора B на вывод Nodemcu D4
  • MUX_C D3 - вывод C мультиплексора на вывод D3 Nodemcu
  • READPIN 0 - Аналоговый вход на NodeMcu = A0
  • NO_PINS 8 - количество выводов мультиплексора
  • val [NO_PINS] - порты с 0 по 7 мультиплексора
  • wind_Direction_Angle - Угол направления ветра
  • String windRose [16] = {«N», «NNE», «NE», «ENE», «E», «ESE», «SE», «SSE», «S», «SSW», «SW», "WSW", "W", "WNW", "NW", "NNW"} - карденалы, залоги и субзалоги
  • windAng [16] = {0, 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180, 202.5, 225, 247.5, 270, 292.5, 315, 337.5} - углы в каждом направлении
  • Цифра [16] [NO_PINS] - матрица маршрутов
  • muxABC [8] [3] - комбинации мультиплексоров ABC

параметры анемометра

  • rpmcount - подсчитать, сколько полных оборотов сделал анемометр за отведенное время
  • timemeasure = 25.00 - время измерения в секундах
  • timetoSleep = 1 - время пробуждения Nodemcu в минутах
  • sleepTime = 15 - время засыпать в минутах
  • rpm, rps - частоты вращения (оборотов в минуту, оборотов в секунду)
  • радиус - метры - мера длины крыла анемометра
  • linear_velocity - линейная скорость в м / сек
  • linear_velocity_kmh - линейная скорость в км / ч
  • omega - лучевая скорость в рад / сег

Ниже вы можете найти полный эскиз. Создайте новую папку в папке Arduino вашего компьютера с тем же именем, что и основная программа (Anemometer_Instructables), и поместите их все вместе.

Введите данные вашей сети Wi-Fi, идентификатор ThingSpeak и ключ API Writer в части Credentials.h и сохраните. Загрузите в Nodemcu и все.

Для проверки работы системы рекомендую хороший вращающийся вентилятор.

Чтобы получить доступ к данным с мобильного телефона, скачайте приложение ThingView для iOS или Android, которое, к счастью, все еще бесплатное.

Настройте параметры своей учетной записи, и вы будете готовы видеть ветровые условия в вашем доме, где бы вы ни находились.

Если у вас есть интерес, войдите в мой канал идентификатора канала ThingSpeak: 438851, который является общедоступным, и там вы найдете измерения ветра и направления в моем доме.

Я очень надеюсь, что тебе весело.

Если у вас есть сомнения, не стесняйтесь обращаться ко мне.

С Уважением

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