Съдържание:
- Стъпка 1: Теория / Теория
- Стъпка 2: Електро-механичен Счётчик / Електромеханичен брояч
- Стъпка 3: Материална база / неща, които съм използвал
- Стъпка 4: 1. Arduino Nano
- Стъпка 5: 2. Дисплей / Дисплей
- Стъпка 6: Подключване Дисплея / Окабеляване на дисплея
- Стъпка 7: 3. Светодиод И Buzzer / LED и BUZZER
- Стъпка 8: 4. Фотосензор / Светлинен сензор (фоторезистор)
- Стъпка 9: Програма за Arduino / Кодиране на Arduino
- Стъпка 10: Начало Со Статистически Поиска Ширини Окна / Получаване на ширина на прозореца за Init
- Стъпка 11: Определяне на състоянието Индикатора / Look As at Logical
- Стъпка 12: Цикъл ()
- Стъпка 13: Преход Върху Или Начало Импулса / Импулсна глава
- Стъпка 14: Преход Вниз, Или Продолжение Отсчёта / Impulse Tail
- Стъпка 15: Индикация / Изглед на данни
- Стъпка 16: Шкала От 0 До 99 На 20 Символна Строке И Знакогенератор / Progressbar 100px
- Стъпка 17:
- Стъпка 18:
- Стъпка 19: Следсловие / Outro
- Стъпка 20: Изходник Программи / Изходен код за Arduino
Видео: Подключаем Ардуино К Счётчику / Свързване на Arduino за четене на импулсни данни от електрически брояч: 20 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Много отдавна беше интересно да се види как се променя мощността в домашните електро-цепи в различно време на суток и при различни нужди. Складывайте ватты на всички лампочки - скучно и, уви, не факт, какво точно. Във всеки случай, че там си мислиш счётчик - винаги не е много нагледно. Висит на стене. Мигает. Барабаните се крутят много медно, за да изключат разницата в 100 W. I тук в мен се намери свободната плата arduino nano, час и натхнение.:)
Стъпка 1: Теория / Теория
Както разказва за принципите на работа на електросхетчиците в своята статия Astrei, най -първият счетоводител на електроенергия е бил индукционен. Принцип на неговата работа до смесен прост - по отношение на този електродвигател, ротор, който е алюминиев диск, възстановяващ циферблат. Чем повече потребляем ток- тем бистрее крутится диск. Устройство чисто аналоговое. Въпреки това днес индукционните счетчици сдават своите позиции, влизайки в място с по -евтино електронно събрание.
Принципните работи не са силно променени - в този случай, ако дискът замени електрониката, която генерира импулси в съответствие с голяма нужда от електроенергия. Както правило, в повечето прибори тези импулси показва светодиодния индикатор. Съответно, че бистрее мигает ета лампочка - тем повече се слага драгоценни кВт. Освен това, на лицевите панели на всяко устройство има предавателно соотношение счетчик А - число на импулси на 1 kW*h.
Стъпка 2: Електро-механичен Счётчик / Електромеханичен брояч
На моето подопытно счётчике има светодиоден индикатор импулс “Сеть” и близо посочен, 1kW*h набегае за 6400 импулса.
Това означава, че 1 импулс равен 1/6400 kW или 1000/6400 = 0, 015625 W*H.
Ако съм сосчитал време между две импулси, мога да разпозная средната натоварване на сет за този период.
Стъпка 3: Материална база / неща, които съм използвал
За макетиране и отладки устройства използвах:
- Arduino nano
- Дисплей аналог Hitachi LCD 20x2
- Светодиод с резистор за индикации на считвания и зумер с генератор за оповещения за прекалено висок потребност.
- Фоторезистор
- Макетна плата макет и всякакви проводници/перемычки, резистори, конденсатори, за да направите това всичко соедените.
Стъпка 4: 1. Arduino Nano
1. Използвах arduino nano, защото тя е много малка, дешёва, има вграден USB за удобни отлагания и прошивки, а така също и нейните комуникационни способности достатъчно за моето проект. Ну, а така, точно такава плата ме освободи от миналото проект.:)
Стъпка 5: 2. Дисплей / Дисплей
2. Дисплей Barton BT22005VSS-09 е аналогов дисплей Hitachi LCD 20x2 и се отличава само с разположение на изводи в гребен 8х2.
Стъпка 6: Подключване Дисплея / Окабеляване на дисплея
Аз свързах дисплея с arduino на 5-проводна шина, както е описано ЗДЕСЬ. Линюване на данни D4-7 с контакта D5-2 arduino, RS с D12, EN с D11, а R/W на GND.
Управление на дисплея Аз изпратих библиотека LiquidClystall от стандартното устройство в arduino IDE.
Стъпка 7: 3. Светодиод И Buzzer / LED и BUZZER
3. K ножке D13 arduino е свързал светодиодни индикации със последващ резистор на GND, който ще дублира светодиода на счётчики. К ножке D10 arduino е свързан звънец (пиезо-пищалка с генератор честоти), който ще бъде пищат при високо ниво на тази ножка за сигнализации също високого потребления.
Стъпка 8: 4. Фотосензор / Светлинен сензор (фоторезистор)
4. Фоторезистор ФСК-1 е свързан с аналоговото въвеждане на A1 и к +5в. При този, прижав ножка входа A1 към GND резистором 10k.
Без това резистора потенциал на входе спада много меко, че мешало снимка показа.
Стъпка 9: Програма за Arduino / Кодиране на Arduino
При считывании данни с аналогово пина аз се скрих с проблемни нива на сигнала. Веднъж напрежението на входовете зависи от противодействието на фоторезистора, което се променя в зависимост от осветителността. Корпусът не може да настрои сензора, за да може светлината да не се появи на сензора, следователно в стайните помещения показаният сензор ще се различава значително от показания в светлата. В общем, така че аз не съм програмист, аз се е скрил с непростой за себе си задачи.
Стъпка 10: Начало Со Статистически Поиска Ширини Окна / Получаване на ширина на прозореца за Init
За да се намери моментът на преход (начало на загорания или на мощност на индикаторите на счётчики) и привязване към неговия таймер за изменението на промените между двете одинакови преходи (далее - длина импулс), трябваше да се обърне към нещо подобно.
В качеството на такива опори аз написах функцията за инициализация initWindow, извеждайки нейните единороди в цикъла setup ().
При стартов микроконтролер сперва 5 секунди следва за показани сензори, запомнени неговите предходни горни и долни нива показват съответстващи променливи пороги окна winHi и winLo.
Стъпка 11: Определяне на състоянието Индикатора / Look As at Logical
Сега мога да сравня текущото значение с тези породи и да напиша функцията за определяне на състоянието на индикатора checkLogic, което следва за темпо, като съответства на текущите показани сензори за порогови стойности при сборе статистики с индикатори. Тази функция присваива променлива ledState значение TRUE при показани сензори по -високо горно порога с принуд (минус 30% ширини окна), и значение FALSE, когато показа сензора по -ниско от долния порог (плюс 30% ширина окна).
Стъпка 12: Цикъл ()
По този начин, в основното цикле програми, аз сперва считвам значение на сензора, след това, във всеки случай, разширявам окно до неговите стойности, старото състояние на индикатора ledState копира в буфера ledStateOld, и провокирам анализа на ново състояние индикатори, освобождавам функцията checkLogic (ledState).
Стъпка 13: Преход Върху Или Начало Импулса / Импулсна глава
Ако идикатор горел и вдруг погас (неговото обикновено състояние - горет, а начало импулс - това кратковременное погасание) - значи, счётчик съобщил за начало импулс.
В тази проверка съм привязал таймер, изграден на функции micros. Тя връща количество микросекунд, прошедши с момента на стартиране на arduino. Остава само от „текущото време“, излизащо от „времето на миналото преход“и получавате количество микросекунди между преходи, а това и има длина импулс.
Затем аз се четях, сколко от такива импулси се помести в часи и раздели на количество импулси за 1kW натоварвания, което съответства на средната натоварване за времето на последното импулс.
Във всеки случай, ако натоварването е по -скоро некоторо порогово, включвам звуков сигнал.
Така че в момента преходът „на върха“е привязал функции за въвеждане на данни на дисплея, поради което той силно мерцал при голямо често обновяване на данни на jm.---
„Новеч в един час 3’600’000’000 микросекунд, а не 3’600’000’000’000” - заметят мне внимателни. И ще правы. Лишние три нуля - това е само само умножение на 1000, за превода от кВт в W. В противен случай компиляторът се движи на снимката на големи величини, компилира, но в итоге програмата не съобщава стойности. Пришлось как-то изкручиваться.
Стъпка 14: Преход Вниз, Или Продолжение Отсчёта / Impulse Tail
К „преход надолу“аз привязал изключване на диода индикации и бузери, по този начин, честота на пищания бузър съответства на често мигания индикатор счётчика.
Така че тук е била включена функция за отваряне на closeAnalogWindow, която с всеки един импулс освобождава горния порог сензор и увеличава долния. По този начин не може да се породи бесконтролно „развързване“от външни фактори освещения.
Стъпка 15: Индикация / Изглед на данни
Со светодиодом всичко пределно просто: той се заговаря при преходите отгоре и гаснет при преходите надолу, тем дублируя прикрития сензор светодиод на счётчики. Звуковият сигнал привязан по този начин, само с тем отличием, който включва само при превишении порогово значение натоварвания.
Цифров дисплей с 20x2 символа, който искам да използвам по-пълно.:) По време на зареждане при сборе статистики в една строка дисплея аз извеждам 3 стойности: низ окна, значение сензор и верх окна. Това е информация, която се намира във втората строка на шкафа с ширина в окно.
В работния цикъл аз в една строку извеждам ток (wattage /220), мощност (wattage) и ширину шкафове, а в друга строку - саму шкаф, мащаб, който се изменя в зависимост от това, не превишен ли порог. Така при пороге в 1000 W и шкала 0-1000 в нормален режим и 1000-2000 в режим на превышения.
Стъпка 16: Шкала От 0 До 99 На 20 Символна Строке И Знакогенератор / Progressbar 100px
Цифрите на дисплея доволно мелки и тяхното сложно разгледайте изданието. Затова на каком-то етап реших да използвам една от строк на дисплея като шкаф. Дисплей има по 20 знака в строке. Всяко знакоместо може да съдържа в себе си един символ: цифра, буква или знак. В такъв случай, ако мога без труд да разместя шкафа с цената на делегациите в едно знамето. Т.е. в мен ще бъде 20 деления.
Аз показах, че това е малко дисплей за дисплея, в който по фактически цели 100 пиксела в един ред, всеки всяко знаместо - това е квадрат от 5 столбика на 7 пиксела височина. Итого, в една строка в мен цели 100 столбика. На шкафове с дължина в 1 kW мога да разместя шкаф с ценови деления 10 W.
Аз реших да използвам възможността на този дисплей създавам потребителски символи. В arduino IDE е стандартен пример за създаване на производителни символи. (и заместителното ръководство по тази задача я намерих в интернет)
Стъпка 17:
Сперва аз описах тези символи.
Тук можете да видите, че един символ има вертикална черва слева, а втори - вече две черти
Потом трябва да ги произнесете в цикъла setup (), така че, как и в пример от ардуино (Перви 5 символа (0-4), което използвам за „палочка”).
Стъпка 18:
След това е написана функция, която с помощта на картата представлява пропорция за символи на нахождения и неговите места на шкафа.
Далеко аз вече използвах тази функция за извеждане на шкафове във всички нужни места.
Стъпка 19: Следсловие / Outro
Аз проверих работоспособност на данни за девайса и когато се убеди, че той работи както следва, изработил е печатната плата, която се прехвърля на дисплея, и в която има слот за инсталиране на arduino nano. Сега с лекота мога да използвам дисплей или arduino в други проекти, или да ги върна в тази плата, и веднага да получа работна мощност.
Това устройство в итоге лесно се прехвърля под други начини за считване на данни със счётчика. Можете да използвате фото-транзистор или фото-диод. Или използвайте контакти, издаващи импулси, ако също така се посочват в счётчика.
Стъпка 20: Изходник Программи / Изходен код за Arduino
Пълният код за arduino IDE може да изтеглите тук. Възможно, той е претърпял малки промени, покуда съм написал този обзор, но кодът често е коментиран и във времето не се съставя трудът да се преобразува, особено след коментари от тази статия.
Спасим всички, който е чел до края, надявам се, че този урок ви помага да се развивате с програмни и аппаратни странични разработки на микроконтролери.
Препоръчано:
Четене и изобразяване на данни от сензора за светлина и температура с Raspberry Pi: 5 стъпки
Четене и изобразяване на данни от сензора за светлина и температура с Raspberry Pi: В тази инструкция ще научите как да четете сензор за светлина и температура с малинов pi и ADS1115 аналогово -цифров преобразувател и да го начертаете с помощта на matplotlib. Нека започнем с необходимите материали
Ръководство за свързване на PLSD: Свързване към телевизори на Apple чрез AirPlay [неофициално]: 10 стъпки
Ръководство за свързване на PLSD: Свързване към Apple TV чрез AirPlay [Неофициално]: Следното ръководство е предоставено, за да илюстрира процеса на свързване към Apple TV към конферентна зала чрез AirPlay. Този неофициален ресурс е предоставен с любезното съдействие на администрацията, персонала и упълномощените гости на местния училищен район Perkins
Четене на ултразвуков сензор (HC-SR04) Данни на 128 × 128 LCD и визуализиране с помощта на Matplotlib: 8 стъпки
Четене на данни от ултразвуков сензор (HC-SR04) на LCD дисплей 128 × 128 и визуализиране с помощта на Matplotlib: В тази инструкция ще използваме MSP432 LaunchPad + BoosterPack за показване на данните на ултразвуков сензор (HC-SR04) на 128 × 128 LCD и изпращайте данните последователно на компютър и ги визуализирайте с помощта на Matplotlib
Четене и запис на данни във външен EEPROM с помощта на Arduino: 5 стъпки
Четене и запис на данни във външен EEPROM с помощта на Arduino: EEPROM означава Електрически изтриваема програмируема памет само за четене. EEPROM е много важна и полезна, тъй като е енергонезависима форма на памет. Това означава, че дори когато платката е изключена, чипът EEPROM все още запазва програмата, която
Как да разглобите електрически скутер за електрически части .: 6 стъпки
Как да разглобяваме електрически тротинетка за електрически части. Това е начинът, по който разглобявам втора употреба електрически тротинетка за части, необходими за изграждане на електрическа планина. (Идеята идва от > > https: // www .instructables.com/id/Electric-Mountain-Board/) Причината да си купя втора ръка е