Мазмұны:
- Жабдықтар
- 1 -қадам: INA үш тақтасын дәнекерлеңіз
- 2 -қадам: Үш түрлі I2C адрестерін конфигурациялау
- 3 -қадам: Ina тақталарын ESP32 -ге қосыңыз
- 4 -қадам: ESP32 тақтасын Arduino IDE -ге орнатыңыз
- 5 -қадам: I2C сканері арқылы ESP32 қосылымын тексеріңіз
- 6 -қадам: HTML веб -сервер қалтасын құру
- 7 -қадам: Power Monitor веб -бетін жасаңыз
- 8 -қадам: ESP32 -ге веб -бетті жүктеңіз
- 9 -қадам: ESP32 веб -сервер ретінде конфигурациялаңыз
- 10 -қадам: Сіз дайынсыз
- 11 -қадам: ESP32 жүйесін қосу
Бейне: Көп арналы Wifi кернеуі мен ток өлшегіші: 11 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Нанға отырғызу кезінде тізбектің әр түрлі бөліктерін бірден бақылау қажет.
Мультиметрлік зондтарды бір жерден екінші жерге жабыстырып ауыртпау үшін мен көп каналды кернеу мен ток есептегішін жасағым келді.
Adafruit компаниясының Ina260 тақтасы бұл үшін өте тиімді және тиімді әдісті ұсынады. Онда интеграцияланған I2C көпірі бар өте дәл кернеу мен ток есептегіші бар (олардың 3 -ін біріктіргенде көп түйреуіштерді үнемдейді!).
Тек дисплей жетіспеді. Тақталарды компьютерге/мобильді экранда өлшенген элементтерді жеткізу үшін веб -серверді оңай тасымалдай алатын ESP32 әзірлеу тақтасына қосу туралы шешім қабылданды.
Жабдықтар
3 x Ina260 adafruit тақтасы
Ұзын түйреуіштері бар 3 х тақырыптық түйреуіш
Мин 6 секіргіш сымдар
1 x ESP32 Wrover-B (немесе I2C қолдауымен кез келген басқа Wifi тақтасы)
2 x 19 істікшелі бастық (бар болса)
1 x ПХД немесе жетілдірілген тақта
1 x 3,3 В қуат көзі
1 -қадам: INA үш тақтасын дәнекерлеңіз
Бірінші қадам - үш INA260 тақтасын жинау.
Adafruit веб -сайтында өте жақсы нұсқаулықты табуға болады. Adafruit құрастыру нұсқауларын орындаңыз.
Оларды бір -бірінің үстіне қою үшін жеткізілген түйреуіштерді емес, ұзын түйреуіштерді пайдаланыңыз!
2 -қадам: Үш түрлі I2C адрестерін конфигурациялау
I2C-қысқа арақашықтықта төмен жылдамдықты құрылғыларды қосуға арналған екі сымды интерфейске арналған сериялық хаттама. 127 құлға дейін қосуға болады. Бір автобуста әрбір құрылғы бірегей I2C адресімен анықталуы керек. Құрылғының I2C адресі көбінесе құрылғының чипіне қатты қосылады. Бір автобуста бірдей құрылғыларды қосу үшін өндіруші түйреуіштердің конфигурациясын дәнекерлеу арқылы I2C адресін өзгерту мүмкіндігін жиі қалдырады.
Бұл INA260 үш тақтасына да қатысты. Құрылғыда қажетті адресті орнату үшін GND, VS, SCL немесе SDA қосылатын A0 және A1 екі адрестік түйреуіштері бар. INA260 микросхемасының мəліметтер кестесінде texas құралдарынан 16 ықтимал мекенжайлардың әрқайсысы үшін түйіспелі қосылыстар тізімін табуға болады.
Adafruit тақтасы оны 4 тақтаға шектейді, олар A0 және/немесе A1 -ді VS -ге тартуға болатын екі жастықшаны шығарады. INA260 тақтасының әдепкі мекенжайы - 0x40.
Сіз бұл қадамды басқа екі тақтаға әртүрлі мекенжайлар тағайындау арқылы аяқтайсыз:
Екінші тақтаның A0 тақтасын дәнекерлеу арқылы сіз оның мекенжайын: 0x41 (немесе 1000001 БСН) орнатасыз.
Үшінші тақтаның A1 тақтасын дәнекерлеу арқылы сіз адресті тағайындайсыз: 0x44 (немесе 1000100 БСН)
3 -қадам: Ina тақталарын ESP32 -ге қосыңыз
Енді біз INA тақталарының әрқайсысына әр түрлі I2C адрестерін тағайындадық, оларды ESP32 тақтасына қосу уақыты келді!
Жоғарыдағы суретке сәйкес, қосылыңыз
1) VCC түйреуішін 3.3В істікшеге
2) GND түйреуішін GND түйреуішіне
3) SDA түйрегішін GPIO PIN 21 -ге
4) SCL түйрегішін GPIO PIN 22 -ге
Мен қосылыстарды жасау үшін ПХД дизайнын қолдандым, себебі бұл үлкен жобаның бөлігі (токтың реттелуі шектеулі WiFi реттелетін кернеу көзі - бұл үшін де нұсқаулық болады деп үміттенемін).
Сіз қосылу үшін кез келген басқа әдісті қолдана аласыз, бұл сіз дәнекерлеуге арналған тақта немесе нан тақтасы болуы мүмкін. Олардың екеуі де жақсы жұмыс істейді.
4 -қадам: ESP32 тақтасын Arduino IDE -ге орнатыңыз
Енді біз тақталарды бір -бірімен байланыстырдық, қосылымды тексеретін уақыт келді.
Біз мұны Ina тақталарының I2C адрестерін жинау арқылы жасаймыз.
ESP32 тақтасы Arduino IDE -мен тамаша жұмыс істейді.
Ендеше, тақта менеджерінің көмегімен ESP32 тақтасын Arduino -да орнатамыз.
5 -қадам: I2C сканері арқылы ESP32 қосылымын тексеріңіз
Біз ESP32 мен Ina260 тақталары арасындағы байланысты қамтамасыз ету үшін қарапайым I2C мекен -жай сканерін қолданамыз.
I2C мекен -жай сканерінің кодын бос Arduino жобасына көшіру мүмкін.
Код Arduino cc веб -сайтынан алынды:
// -------------------------------------- // i2c_scanner // // 1 нұсқа/ / Бұл бағдарламаны (немесе оған ұқсайтын кодты) // көптеген жерден табуға болады. // Мысалы, Arduino.cc форумында. // Түпнұсқа авторы белгісіз. // 2 -нұсқа, 2012 ж. Маусым, Arduino 1.0.1 көмегімен // Arduino.cc қолданушысы Krodal мүмкіндігінше қарапайым етіп бейімделген // 3 -нұсқа, 26 ақпан 2013 ж./ V3 by louarnold // 4 -нұсқа, 3 -наурыз, 2013 ж., Arduino 1.0.3 пайдалану // Arduino.cc қолданушысы Krodal. // Лоарнольд өзгертулері жойылды. // Сканерлеу мекенжайлары 0… 127 -ден 1… 119 -ға өзгертілді, // Ник Гаммонның i2c сканеріне сәйкес // https://www.gammon.com.au/forum/?id=10896 // 5 -нұсқа, наурыз 28, 2013 // 4 -нұсқа ретінде, бірақ адрес 127 -ге дейін сканерленеді. // Сенсор 120 мекенжайын қолданатын сияқты. // 6 -нұсқа, 27 -қараша, 2015. // Леонардоның сериялық байланысын күту қосылды. // // // Бұл эскиз стандартты 7 биттік адрестерді тексереді // Биттік адресі жоғары құрылғылар дұрыс көрінбеуі мүмкін. // #include void setup () {Wire.begin (); Serial.begin (9600); while (! сериялық); // Леонардо: сериялық мониторды күтіңіз Serial.println («\ nI2C сканері»); } void loop () {байт қатесі, адрес; int nDevices; Serial.println («Сканерленуде…»); nDevices = 0; үшін (адрес = 1; адрес <127; адрес ++) {// i2c_scanner // құрылғының адресті мойындағанын білу үшін // Write.endTransmisstion қайтару мәнін пайдаланады. Wire.beginTransmission (мекенжай); қате = Wire.endTransmission (); if (error == 0) {Serial.print («0x мекенжайында I2C құрылғысы табылған»); if (адрес <16) Serial.print («0»); Serial.print (мекен -жай, HEX); Serial.println («!»); nDevices ++; } if if (error == 4) {Serial.print («0x мекенжайындағы белгісіз қате»); if (адрес <16) Serial.print («0»); Serial.println (мекен -жай, HEX); }} if (nDevices == 0) Serial.println («I2C құрылғылары табылмады / n»); else Serial.println («жасалды / n»); кешіктіру (5000); // келесі қарап шығуды 5 секунд күтіңіз}
6 -қадам: HTML веб -сервер қалтасын құру
ESP32 веб -серверді іске қосуға мүмкіндік береді. Ол сонымен қатар кейбір веб -беттерді сақтау үшін өте үлкен жедел жадымен қамтамасыз етеді. (Ол веб -беттің файлдарын автоматты түрде қысады).
Arduino IDE құрылған веб -беттерді ESP32 жедел жадына тікелей жүктеу функциясын ұсынады.
Мұны істеу үшін сізге Arduino жобасының қалтасының астында «деректер» қалтасын жасау қажет. Менің жағдайда бұл / Arduino / esp32_Power_supply_v1_implemented / data.
Қалтаны дәл «деректер» деп атау маңызды, себебі Arduino қалта атауы веб -сайт файлдарын ESP -ке жүктеу кезінде іздейді.
7 -қадам: Power Monitor веб -бетін жасаңыз
HMTL - бұл веб -шолғышқа мәтінді енгізуге мүмкіндік беретін тіл. HTML файлы htm (l) кеңейтімі астында сақталады. Веб -бетті пішімдеу әдетте бөлек файлға орналастырылады (мысалы, CSS файлы). Веб -бетте ұсынылатын бағдарлама функциясы әдетте басқа файлға орналастырылады (мысалы, javascript үшін js файлы).
HTML құжатыма мәтінді, форматтауды және Javascript -ті бір файлға енгіздім. Бұл веб -бетті жасаудың жақсы мысалы емес, бірақ ол мақсаттарға қызмет етеді. Мен HTML құжатын 'Index.htm' деп атадым.
Екінші файл менің деректер қалтасына кіреді, яғни. PicoGraph.js. PicoGraph кітапханасын RainingComputers -тен Вишну Шанкар В қамтамасыз етеді және веб -бетке графиктерді ұсынудың өте қарапайым, бірақ тиімді және икемді әдісіне мүмкіндік береді. Мен өз мақсатыма жету үшін кодты сәл өзгерттім.
Сіз HTML веб -бетінде менің ПХД тақтасындағы кернеуді бақылау коды бар екенін байқайсыз. Кернеудің берілу коды 5 енгізу -шығару түйреуіштерінің кернеу деңгейін бақылайды. Сіз оны болдырмау үшін кодты өзгерте аласыз немесе әсер етпесе, оны қалдыра аласыз.
Html коды бұл қадамға txt файлы ретінде қосылады (нұсқаулықтар htm кодын жүктеуге мүмкіндік бермейді).
HTML кодын пайдалану үшін сіз оны мәтіндік редакторға көшіріп, қойыңыз (Notepad ++ қолданамын) және оны «Деректер» қалтасында «Index.htm» ретінде сақтаңыз. Сіз picograph.txt файлы үшін солай жасайсыз, бірақ оның атын picograph.js деп өзгертіңіз
HTML файлына қатысты:
SndUpdate функциясы ESP -тен веб -бетке хабарларды кері және кері жіберу үшін қолданылады.
ESP -ден жіберілетін хабарламалар электрмен жабдықтау функциясын орындайды және бұл нұсқаулыққа сәйкес келмейді. ESP хабарламалары Ina260 тақтасының өлшемдеріне қызмет етеді.
var Msg = JSON.parse (xh.responseText); PG1_yrand0 = Msg. PG1_yrand0; PG2_yrand0 = Msg. PG2_yrand0; PG3_yrand0 = Msg. PG3_yrand0; PG4_yrand0 = Msg. PG4_yrand0; PG5_yrand0 = Msg. PG5_yrand0; PG6_yrand0 = Msg. PG6_yrand0;
Жоғарыда келтірілген код ESP32 тақтасынан 6 нөмірді оқиды, яғни. кернеуді өлшеу, бірінші тақтадан ток өлшеу, содан кейін екіншісінен екі өлшеу және т.б.
Графиктер икемді контейнерлер деп аталады, бұл веб-беттің икемді өлшемін өзгертуге мүмкіндік береді.
.flex-контейнер {дисплей: икемділік; өң түсі: кадет көк; икемді орау: орау; }.flex-container> div {background-color: #f1f1f1; маржа: 10 пиксель; толтыру: 20 пиксель; қаріп өлшемі: 20 пиксель; font-family: «Жеті сегмент»; қаріптің салмағы: қалың; }
Иілгіш контейнерлердің әрқайсысының мазмұны ендірілген графиктерді қоса, келесі түрде жасалады.
(жойылған жерді ескеріңіз)
div label for = «PG1_scale» Scale:/label input name = «PG1_scale» value = «10» brbr!-Thr graph үшін кенеп-кенеп стилі = «биіктігі: 100px; жиек: 2px қатты #000000; фон түсі: #fafafa; « /кенеп
!-аңыздарға/белгілерге арналған div-
div /div div /div /div
HTML файлындағы маңызды соңғы бөлім сандарды көрсету үшін PicoGraph кітапханасымен жұмыс істейді:
var PG1_demograph = createGraph («PG1_graphDemo», [«Ch1»], «V», «PG1_graphLabels», 20, 11, false, false, 11, «#e52b50»); var PG2_demograph = createGraph («PG2_graphDemo», [«Ch1»], «mA», «PG2_graphLabels», 20, 11, false, false, 11, «#e52b50»); var PG3_demograph = createGraph («PG3_graphDemo», [«Ch2»], «V», «PG3_graphLabels», 20, 11, false, false, 11, «#008000»); var PG4_demograph = createGraph («PG4_graphDemo», [«Ch2»], «mA», «PG4_graphLabels», 20, 11, false, false, 11, «#008000»); // var PG5_demograph = createGraph («PG5_graphDemo», [«Ch3»], «V», «PG5_graphLabels», 20, 11, false, false, 11, «#0000ff»); var PG6_demograph = createGraph («PG6_graphDemo», [«Ch3»], «mA», «PG6_graphLabels», 20, 11, false, false, 11, «#0000ff»); / * Әр секунд сайын мәндерді жаңартыңыз */ setInterval (updateEverySecond, 1000); updateEverySecond () функциясы { / * Жаңа мәндерді алу * / SndUpdate ();
/ * Жаңарту графигі */PG1_demograph.update ([PG1_yrand0], parseInt (byID («PG1_scale»). Мән)+ parseInt (byID («PG1_scale») мәні)/10, «#e52b50»); PG2_demograph.update ([PG2_yrand0], parseInt (byID («PG2_scale»). Мән)+ parseInt (byID («PG2_scale»). Мән)/10, «#e52b50»); PG3_demograph.update ([PG3_yrand0], parseInt (byID («PG3_scale»). Мән)+ parseInt (byID («PG3_scale»). Мән)/10, «#008000»); PG4_demograph.update ([PG4_yrand0], parseInt (byID («PG4_scale»). Мән)+ parseInt (byID («PG4_scale»). Мән)/10, «#008000»); // PG5_demograph.update ([PG5_yrand0], parseInt (byID («PG5_scale»). Мән)+ // parseInt (byID («PG5_scale»). Мән)/10, «#0000ff»); PG6_demograph.update ([PG6_yrand0], parseInt (byID («PG6_scale»). Мән)+ parseInt (byID («PG6_scale»). Мән)/10, «#0000ff»); var Watts = Math.round (PG1_yrand0 * PG2_yrand0 * 100)/100; byID («PG1_wattLabel»). innerHTML = `WATT: $ {Ватт} мВт`; var Watts = Math.round (PG3_yrand0 * PG4_yrand0 * 100)/100; byID («PG3_wattLabel»). innerHTML = `WATT: $ {Ватт} мВт`; // var Watts = Math.round (PG5_yrand0 * PG6_yrand0 * 100)/100; // byID («PG5_wattLabel»). innerHTML = `WATT: $ {Ватт} мВт`; byID («PG1_scale»). мән = Math.floor (parseInt (byID («PG1_scale»). мән)/2+PG1_yrand0); byID («PG2_scale»). мән = Math.floor (parseInt (byID («PG2_scale») мәні)/2+PG2_yrand0); byID («PG3_scale»). мән = Math.floor (parseInt (byID («PG3_scale») мәні)/2+PG3_yrand0); byID («PG4_scale»). мән = Math.floor (parseInt (byID («PG4_scale») мәні)/2+PG4_yrand0); // byID («PG5_scale»). мән = Math.floor (parseInt (byID («PG5_scale»). мән)/2+PG5_yrand0); byID («PG6_scale»). мән = Math.floor (parseInt (byID («PG6_scale») мәні)/2+PG6_yrand0);
Кодты зерттей отырып, мен өз мақсатым үшін 6 -ның 5 графигін ғана қолданатынымды байқайсыз. Дұрыс жолдарға түсініктеме бермеу 6-шы графикті қосады.
Html тәжірибесі жоқ адамдар үшін бұл қадам қиын болуы мүмкін. Дегенмен, бұл HTML әлеміне жақсы кіріспе бола алады. Мен білемін, себебі бұл мен жасаған бірінші бет. Сондықтан қорықпаңыз. Біздің қол астында тәжірибесі бар адамдар үшін кешірімді болыңыз.
Сіздің веб -беттегі жұмысыңыздың нәтижесін html ашу арқылы қарауға болады, ол сіздің шолғышқа жүктеледі және оның сыртқы түрін көрсетеді. Мүмкін болатын қателерді шолғыштағы F12 пернесін басу арқылы тексеруге болады, отладтау терезесі пайда болады. Қатені қалай түзетуге болатыны туралы толық түсініктеме бұл нұсқаулықтың шеңберінен тыс, бірақ веб -бет / javascript отладтаудың алғашқы қадамы ретінде пайдалы болуы мүмкін.
Келесі қадам - құрылған веб -беттерді ESP32 -ге жүктеу.
8 -қадам: ESP32 -ге веб -бетті жүктеңіз
Қанағаттанарлық нәтиже алғаннан кейін, веб -бетті ESP32 -ге жүктеу уақыты келді.
Сіз мұны 'Index.htm' (сіздің веб -бетіңіз) мен 'PicoGraph.js' файлдарын Arduino жобасының астындағы 'деректер' қалтасына сақтау арқылы жасайсыз.
Келесі қадам - ESP32 тақтасын компьютерге қосу. Дұрыс тақта мен COM портын таңдағаннан кейін, Arduino IDE құралдар мәзірінің астынан ESP32 Sketch деректерді жүктеуді таңдаңыз.
Сіз IDE жүктеу процесін бастайтынын көресіз, бұл сәтті жүктеуге әкеледі.
Бұл қадамның жанында - ESP32 микроконтроллерін веб -сервер ретінде конфигурациялау.
9 -қадам: ESP32 веб -сервер ретінде конфигурациялаңыз
Сізге ESP32 -ді веб -сервер ретінде конфигурациялайтын Arduino Ino нобайы табылған.
Сізге SSID мен парольді маршрутизатордың паролімен ауыстыру қажет.
Жоғарыда айтылғандай, бұл эскизде веб -бетті ПХД қуат көзінің контроллері ретінде конфигурациялау коды да бар (шын мәнінде, 5 IO түйреуішін PWM түйреуіші ретінде конфигурациялау және оларды веб -беттен хабар ағыны арқылы басқару).
Эскиз Христо Гочков жасаған стандартты Webserver эскизіне негізделген.
Код бойынша бірнеше түсініктеме.
Келесі функциялардың барлығы веб -серверді орнатуға байланысты.
String formatBytes (size_t байт) String getContentType (String файл атауы) bool бар (String жолы) bool handleFileRead (Жол жолы) void handleFileUpload () void handleFileDelete () void handleFileCreate () void handleFileList ()
Сондай -ақ, setup () функциясындағы бірінші код PWM мен Webserver қондырғысына қатысты.
Келесі код веб -бетке және одан хабар ағындарына қызмет ететін Үзіліс функциясын орнатады:
(веб -бетті құрудан идентификаторларды тану керек)
server.on («/SndUpdate», HTTP_GET, () {
Жол Msg = «{»; Msg+ = «\» PG1_yrand0 / «:»+ (Жол) Вина [1]; Msg+ = «, \» PG2_yrand0 / «:»+ (Жол) Айна [1]; Msg+ = «, \» PG3_yrand0 / «:»+ (Жол) Вина [0]; Msg+ = «, \» PG4_yrand0 / «:»+ (Жол) Айна [0]; Msg+ = «, \» PG5_yrand0 / «:»+ (Жол) Вина [2]; Msg+ = «, \» PG6_yrand0 / «:»+ (Жол) Айна [2]; Msg+= «}»;
server.send (200, «text/json», Msg);
Бұл серверді іске қосады:
server.begin ();
Келесі код блогы INA260 тақталарын инициализациялайды:
// INA260 инициализациясы, егер (! Ina260_0x40.begin (0x40)) {Serial.println (F («INA260 0x40 чипі табылмады»)); // кезінде (1); } Serial.println (F («INA260 чипі 0x40 табылды»)); if (! ina260_0x41.begin (0x41)) {Serial.println (F («0x41 INA260 чипі табылмады»)); // кезінде (1); } Serial.println (F («INA260 0x41 чипі табылды»)); if (! ina260_0x44.begin (0x44)) {Serial.println (F («INA260 0x44 чипі табылмады»)); // кезінде (1); } Serial.println (F («INA260 чипі 0x44 табылды»));
ina260_0x40.setAveragingCount (INA260_COUNT_256);
ina260_0x40.setVoltageConversionTime (INA260_TIME_1_1_ms); ina260_0x40.setCurrentConversionTime (INA260_TIME_1_1_ms); ina260_0x40.setMode (INA260_MODE_CONTINUOUS); ina260_0x41.setAveragingCount (INA260_COUNT_256); ina260_0x41.setVoltageConversionTime (INA260_TIME_1_1_ms); ina260_0x41.setCurrentConversionTime (INA260_TIME_1_1_ms); ina260_0x41.setMode (INA260_MODE_CONTINUOUS); ina260_0x44.setAveragingCount (INA260_COUNT_256); ina260_0x44.setVoltageConversionTime (INA260_TIME_1_1_ms); ina260_0x44.setCurrentConversionTime (INA260_TIME_1_1_ms); ina260_0x44.setMode (INA260_MODE_CONTINUOUS);
Циклдік кодта келесі мәлімдеме үзіліс кодының өңделуін қамтамасыз етеді:
server.handleClient ();
Цикл мәлімдемесіндегі келесі код Қуат беру функциясымен байланысты.
Циклдағы () келесі код тағы да қызықты:
Вина [0] = ina260_0x40.readBusVoltage ()/1000.0f; Iina [0] = ina260_0x40.readCurrent (); Вина [1] = ina260_0x41.readBusVoltage ()/1000.0f; Айна [1] = ina260_0x41.readCurrent (); Вина [2] = ina260_0x44.readBusVoltage ()/1000.0f; Iina [2] = ina260_0x44.readCurrent ();
Бұл мәлімдемелер Server.on үзіліс қоңыраулары арқылы веб -бетке көшу үшін өлшемдерді жинайды және дайындайды (әрбір 1000 мс сайын, html Java java сценарийінде орнатылады).
10 -қадам: Сіз дайынсыз
Эскизді ESP32 тақтасына жүктеу, орнатуды аяқтау керек, ал сіздің Power мониторыңыз түпкілікті болуы керек!
Сіз ESP32 -ді қосу USB порты арқылы жүзеге асырылатынын байқаған боларсыз, бұл сіздің кернеу / ток есептегіштерімен WiFi негізіндегі қосылыстың артықшылықтарын арттырады. Осылайша, мен ESP32 үшін қарапайым LM317 кернеуімен реттелетін қуат көзін жасадым. Мен оны осы нұсқаулықтың шеңберінен шығардым, бірақ егер қызығушылық болса, келесі нұсқаулыққа айналуы мүмкін.
Келесі қадамда мен шабыт бола алатын электрмен жабдықтаудың электронды схемасын ұсындым.
11 -қадам: ESP32 жүйесін қосу
Егер сізде жоқ болса, ESP32 үшін жеке қуат көзін құруға шабыт береді.
Қуат тізбегі ноутбуктің 19В қуат көзінен жұмыс істейді. Бұл LM317 -дің энергияны таратуын бақылауда ұстау үшін кернеудің екі фазалы төмендеуін талап етеді. (Тіпті жылу қабылдағыштарда да!). Сондай -ақ, VCC_ESP желісінің алдына 100uF конденсаторды қосуды ұмытпаңыз, себебі бұл микроконтроллерлерде WiFi қосылымын қосқанда үлкен ток өзгерісі болады.
ESP32 бір уақытта бірнеше қуат көзінен қуат алмайтынын ескеріңіз!
Кәдімгі жауапкершіліктен бас тарту, бірақ бәрінен бұрын
Масайрау!
Барлық файлдарды менің GitHub сайтынан табуға болады:
Ұсынылған:
Arduino дәл және дәл вольт өлшегіші (0-90В тұрақты ток): 3 қадам
Arduino дәл және дәл вольт өлшегіші (0-90В тұрақты ток): Бұл нұсқаулықта мен Arduino Nano көмегімен салыстырмалы дәлдікпен және дәлдікпен тұрақты токтың жоғары кернеуін (0-90в) өлшеуге арналған вольтметр құрдым. Мен қабылдаған сынақ өлшемдері жеткілікті дәл болды, көбінесе олардың көмегімен өлшенетін нақты кернеудің 0,3 в ішінде
Көп арналы Sonoff - дауысты белсендірілген шамдар: 4 қадам (суреттермен)
Көп арналы Sonoff-Дауысты белсендірілген шамдар: 5 жыл бұрын менің ас үйдегі шамдар істің жолымен жүрді. Жолдың жарығы сәтсіз болды, ал үстелдің астындағы жарықтандыру қажетсіз болды. Мен бөлмені жақсы жарықтандыру үшін жарықтандыруды арналарға бөлгім келді
HV9910 айнымалы ток кернеуі бар әмбебап жарықдиодты драйвер: 7 қадам
HV9910 220 вольтты айнымалы ток кіретін әмбебап жарықдиодты драйвер: 220 вольтты айнымалы кірісі бар HV9910 әмбебап жарықдиодты драйвер
WiFi мен IR қашықтан басқару пульті мен Android қосымшасын қолданатын NodeMCU мен IR қабылдағышымен 8 релелік басқару: 5 қадам (суреттермен)
WiFi мен IR қашықтан басқару пульті мен Android қосымшасын пайдаланатын NodeMCU мен IR қабылдағышымен 8 релелік басқару: wifi мен қашықтан және андроид қосымшасы арқылы nodemcu мен IR қабылдағышты қолданатын 8 релелік қосқышты басқару. Қашықтан басқару құралы wifi қосылымына тәуелсіз жұмыс істейді. МҰНДА
NaI (Tl) гамма спектроскопиясы бар көп арналы анализатор MCA: 5 қадам
NaI (Tl) гамма спектроскопиясы бар көп каналды анализатор MCA: Сәлеметсіз бе, гамма спектроскопиямен айналысатындардың барлығына қош келдіңіз. Бұл шағын мақалада мен MCA-мен өз қолыммен жасалған DIY гамма-спектроскопия детекторын жасаудың жұмыс журналымен бөліскім келеді. Бұл нұсқаулық емес, мен тек процестің фотосуреттерімен бөлісемін