Съдържание:

Как да изградите свой собствен анемометър с помощта на тръстикови превключватели, сензор за ефекта на Хол и някои отпадъци на 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 минути, за да спести батерията. Тъй като използвам малък слънчев панел, е задължително да го направя. Ако използвате 5V източник, можете да промените програмата, така че да не спи и да продължите да измервате данните.

Структура на програмите

На диаграмата можете да видите структурата на скицата.

Anemometer_Instructables

Това е основната програма, която зарежда библиотеките, стартира променливите, контролира прекъсването на прикачване, извиква всички функции, изчислява скоростта на вятъра, определя посоката му и го приспива.

комуникации

Свържете WiFi и изпратете данните към ThingSpeak.

пълномощия.h

Ключовете на вашата WiFi мрежа и идентификаторите на вашия акаунт в ThingSpeak. Тук ще промените вашите идентификатори на ключове и API.

определя.h

Той съдържа всички променливи на програмата. Тук можете да промените времето за четене или колко дълго трябва да спи nodemcu.

функции

Той съдържа функциите за комбиниране на параметрите и четене на мултиплексора, както и функцията за четене на въртенията на анемометъра.

oledDisplay

Покажете на екрана резултати от скоростта и посоката на вятъра.

Стъпка 3: Обяснения относно…

Обяснения за…
Обяснения за…
Обяснения за…
Обяснения за…
Обяснения за…
Обяснения за…
Обяснения за…
Обяснения за…

Прикачете прекъсване

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

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

Можете да прочетете подробностите за функцията в линка за урока на Arduino. Вижте attachInterrupt ().

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

щифт = D6

функция за обратно повикване = rpm_anemometer - брои всеки импулс на променлива.

тип/режим на прекъсване = RISING - прекъсване, когато щифтът преминава от ниско към високо.

При всеки импулс, генериран от магнито в сензора на Хол, щифтът преминава от нисък към висок и функцията за броене се активира и сумира импулса в променлива, за установените 25 секунди. След като времето изтече, броячът е изключен (detachInterrupt ()) и рутината изчислява скоростта, докато е изключена.

Изчисляване на скоростта на вятъра

След като е определено колко оборота е дал анемометърът за 25 секунди, изчисляваме скоростта.

  • RADIO е измерването от централната ос на анемометъра до върха на топката за пинг -понг. Сигурно си измерил твоя много добре - (виж това в диаграмата, която казва 10 см).
  • RPS (обороти в секунда) = завъртания / 25 секунди
  • RPM (обороти в минута) = RPS * 60
  • OMEGA (ъглова скорост - радиани в секунда) = 2 * PI * RPS
  • Linear_Velocity (метри в секунда) = OMEGA * RADIO
  • Linear_Velocity_kmh (Km на час) = 3.6 * Linear_Velocity и това ще бъде изпратено до ThingSpeak.

Прочетете посоката на лопатката

За да прочете позицията на лопатката за вятъра, за да определи посоката на вятъра, програмата изпраща ниски и високи сигнали към мултиплексора с всички комбинации от параметрите A, B, C (матрица muxABC) и изчакайте да получите резултата на щифт A0 това може да бъде всяко напрежение между 0 и 3.3V. Комбинациите са показани на диаграмата.

Например, когато C = 0 (ниско), B = 0 (ниско), A = 0 (ниско) мултиплексорът му дава данните от пин 0 и изпраща сигнала до A0, който се чете от Nodemcu; ако C = 0 (ниско), B = 0 (ниско), A = 1 (високо), мултиплексорът ще ви изпрати данните от пин 1 и така нататък, докато четенето на 8 -те канала приключи.

Тъй като сигналът е аналогов, програмата се трансформира в цифров (0 или 1), ако напрежението е по -малко или равно на 1,3V, сигналът е 0; ако е по -голям от 1.3V, сигналът е 1. Стойността 1.3V е произволна и за мен тя работи много добре. Винаги има малки изтичания на ток и това предпазва от липса на фалшиви положителни резултати.

Тези данни се съхраняват във вектор val [8], който ще бъде сравнен с адресния масив като компас. Вижте матрицата в диаграмата. Например, ако полученият вектор е [0, 0, 1, 0, 0, 0, 0, 0, 0], той показва в матрицата посоката E и съответства на ъгъл от 90 градуса; ако [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)) - Изпратете данните за скоростта в поле1 на моя канал

ThingSpeak.setField (2, float (wind_Direction_Angle)) - Изпратете данните за адреса в поле2 на моя канал

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Изпратете до моя канал myChannelNumber, с написания API на myWriteAPIKey, посочен от TS. Тези данни са генерирани от TS при създаването на вашия акаунт и канал.

На снимките по -горе можете да видите как ThingSpeak показва получените данни.

В тази връзка можете да получите достъп до данните на моя проект в публичния канал на ThingSpeak.

Стъпка 5: Основни променливи

параметри на вятърни лопатки

  • MUX_A D5 - mux pi A към Nodemcu щифт D5
  • MUX_B D4 - mux щифт B към Nodemcu щифт D4
  • MUX_C D3 - mux щифт C към Nodemcu щифт D3
  • READPIN 0 - Аналогов вход на NodeMcu = A0
  • NO_PINS 8 - брой мукс пинове
  • val [NO_PINS] - портове от 0 до 7 на mux
  • wind_Direction_Angle - ъгъл на посоката на вятъра
  • Низ 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 mux комбинации

параметри на анемометъра

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

По -долу можете да намерите пълната скица. Създайте нова папка в папката Arduino на вашия компютър със същото име като основната програма (Anemometer_Instructables) и ги съберете заедно.

Въведете данните за вашата wifi мрежа и ThingSpeak ID и API Writer Key в частта Credentials.h и запишете. Качете в Nodemcu и това е всичко.

За да проверите работата на системата, препоръчвам добър въртящ се вентилатор.

За достъп до данните чрез мобилен телефон изтеглете приложението за IOS или Android, наречено ThingView, което за щастие все още е безплатно.

Конфигурирайте настройките на акаунта си и ще бъдете готови да видите условията на вятъра у дома, където и да се намирате.

Ако имате интерес, влезте в моя канал на ThingSpeak Channel ID: 438851, който е публичен и там ще намерите измерванията на вятъра и посоката в моята къща.

Искрено се надявам да се забавлявате.

Ако имате някакви съмнения, не се колебайте да се свържете с мен.

за разбирането

Препоръчано: