فهرست مطالب:

ولتاژ و متر وای فای چند کاناله: 11 مرحله (همراه با تصاویر)
ولتاژ و متر وای فای چند کاناله: 11 مرحله (همراه با تصاویر)

تصویری: ولتاژ و متر وای فای چند کاناله: 11 مرحله (همراه با تصاویر)

تصویری: ولتاژ و متر وای فای چند کاناله: 11 مرحله (همراه با تصاویر)
تصویری: لزبازی لیلا اوتادی چه لبی میگیره (نبینی از دستت رفته) 2024, جولای
Anonim
ولتاژ و متر وای فای چند کاناله
ولتاژ و متر وای فای چند کاناله

هنگام سوار شدن بر روی نان ، اغلب باید همزمان قسمت های مختلف مدار را زیر نظر داشت.

برای جلوگیری از درد ناشی از چسباندن پروب های مولتی متر از جایی به مکان دیگر ، می خواستم یک متر ولتاژ و جریان چند کاناله طراحی کنم.

تخته Ina260 از Adafruit یک راه بسیار م effectiveثر و کارآمد برای این کار ارائه می دهد. این شامل یک ولتاژ و جریان سنج بسیار دقیق با یک پل I2C یکپارچه است (هنگام ترکیب 3 عدد از آنها تعداد زیادی پین ذخیره می شود!).

تنها چیزی که وجود نداشت نمایشگر بود. از این رو تصمیم گرفته شد که تخته ها را به یک برد توسعه ESP32 متصل کنید ، که می تواند به راحتی یک وب سرور را برای ارائه موارد اندازه گیری شده روی صفحه کامپیوتر/تلفن همراه حمل کند.

تدارکات

3 عدد تخته آدافروت Ina260

3 پین هدر با پین های بلند

حداقل 6 سیم جامپر

1 عدد ESP32 Wrover-B (یا هر برد Wifi دیگر با پشتیبانی I2C)

هدر پین 2 x 19 پین (در صورت وجود)

1 x PCB یا Perfboard

منبع تغذیه 1 x 3.3 V

مرحله 1: سه تخته INA را لحیم کنید

سه تخته INA را لحیم کنید
سه تخته INA را لحیم کنید

اولین مرحله مونتاژ سه تخته INA260 است.

یک آموزش بسیار خوب را می توانید در وب سایت Adafruit پیدا کنید. دستورالعمل های مونتاژ Adafruit را دنبال کنید.

برای اینکه بتوانید آنها را روی هم قرار دهید ، از هدرهای پین بلند به جای نوارهای پین تحویل داده شده استفاده کنید!

مرحله 2: سه آدرس مختلف I2C را پیکربندی کنید

سه آدرس مختلف I2C را پیکربندی کنید
سه آدرس مختلف I2C را پیکربندی کنید
سه آدرس مختلف I2C را پیکربندی کنید
سه آدرس مختلف I2C را پیکربندی کنید
سه آدرس مختلف I2C را پیکربندی کنید
سه آدرس مختلف I2C را پیکربندی کنید
سه آدرس مختلف I2C را پیکربندی کنید
سه آدرس مختلف I2C را پیکربندی کنید

I2C یک پروتکل سریال برای رابط دو سیم برای اتصال دستگاه های کم سرعت در مسافت های کوتاه است. می توان تا 127 برده را متصل کرد. در یک اتوبوس هر دستگاهی باید با یک آدرس منحصر به فرد I2C شناسایی شود. آدرس I2C یک دستگاه اغلب به سختی در تراشه دستگاه متصل می شود. برای اتصال دستگاه های مشابه در یک گذرگاه ، سازنده اغلب امکان تغییر آدرس I2C را با لحیم کردن پیکربندی پین ها به یکدیگر می گذارد.

این امر در مورد سه برد INA260 نیز صادق است. این دستگاه دارای دو پین آدرس A0 و A1 است که می توانند برای تنظیم آدرس مورد نظر به GND ، VS ، SCL یا SDA متصل شوند. در برگه اطلاعات تراشه INA260 از ابزارهای تگزاس ، می توانید لیست اتصالات پین برای هر یک از 16 آدرس ممکن را بیابید.

تخته adafruit با قرار دادن دو پد که می تواند برای کشیدن A0 و/یا A1 به VS. استفاده شود ، این مورد را به 4 تخته محدود می کند. آدرس پیش فرض برد INA260 0x40 است.

این مرحله را با اختصاص آدرس های مختلف به دو صفحه دیگر تکمیل می کنید:

با لحیم کاری پد A0 برد دوم ، آدرس او را روی 0x41 (یا 1000001 BIN) تنظیم می کنید.

با لحیم کاری پد A1 صفحه سوم ، آدرس را به: 0x44 (یا 1000100 BIN) اختصاص می دهید

مرحله 3: بردهای Ina را به ESP32 وصل کنید

تخته های Ina را به ESP32 وصل کنید
تخته های Ina را به ESP32 وصل کنید

اکنون که آدرسهای مختلف I2C را به هریک از بردهای INA اختصاص داده ایم ، زمان اتصال آنها به برد ESP32 فرا رسیده است!

مطابق تصویر بالا ، اتصال دهید

1) پین VCC به پین 3.3V

2) پین GND به پین GND

3) پین SDA به پین GPIO 21

4) پین SCL به پین GPIO 22

من از یک طرح PCB برای ایجاد اتصالات به عنوان بخشی از یک پروژه بزرگتر استفاده کرده ام (منبع ولتاژ قابل تنظیم WiFi با محدودیت جریان قابل تنظیم - امیدوارم برای این مورد نیز یک دستورالعمل باشد).

شما می توانید از هر روش دیگری برای اتصال استفاده کنید ، این ممکن است یک تخته چوبی باشد که به آن لحیم کرده اید یا از تخته نان استفاده می کنید. هر دوی آنها نیز به خوبی کار خواهند کرد.

مرحله 4: برد ESP32 را در Arduino IDE نصب کنید

برد ESP32 را در Arduino IDE نصب کنید
برد ESP32 را در Arduino IDE نصب کنید

اکنون که تخته ها را به یکدیگر متصل کرده ایم ، وقت آن است که اتصال را بررسی کنیم.

ما این کار را با جمع آوری آدرس های I2C بردهای Ina انجام می دهیم.

برد ESP32 با Arduino IDE کاملاً کار می کند.

بنابراین اجازه دهید با استفاده از مدیر برد ، برد ESP32 را در Arduino نصب کنیم.

مرحله 5: اتصال Ina به ESP32 را با استفاده از اسکنر I2C بررسی کنید

اتصال Ina به ESP32 را با استفاده از اسکنر I2C بررسی کنید
اتصال Ina به ESP32 را با استفاده از اسکنر I2C بررسی کنید

ما از یک اسکنر آدرس I2C ساده برای اطمینان از اتصال بین بردهای ESP32 و Ina260 استفاده خواهیم کرد.

کد اسکنر آدرس I2C را می توان در پروژه خالی آردوینو کپی کرد.

کد از وب سایت Arduino cc گرفته شده است:

// -------------------------------------- // i2c_scanner // // نسخه 1/ / این برنامه (یا کدی که به نظر می رسد) // در بسیاری از نقاط یافت می شود. // به عنوان مثال در انجمن Arduino.cc. // نویسنده اصلی نمی داند. // نسخه 2 ، ژوئن 2012 ، با استفاده از Arduino 1.0.1 // تا حد ممکن ساده توسط کاربر Arduino.cc Krodal // نسخه 3 ، 26 فوریه 2013 // V3 توسط louarnold // نسخه 4 ، 3 مارس 2013 ، با استفاده از Arduino 1.0.3 // توسط کاربر Arduino.cc Krodal. // تغییرات توسط louarnold حذف شد. // آدرس های اسکن از 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)؛ در حالی که (! سریال) ؛ // لئوناردو: منتظر مانیتور سریال Serial.println ("\ nI2C Scanner") باشید ؛ } void loop () {خطای بایت ، آدرس ؛ int n دستگاه ها ؛ Serial.println ("اسکن …") ؛ n دستگاه = 0 ؛ for (address = 1؛ address <127؛ address ++) {// i2c_scanner از مقدار بازگشتی // the.exTransmisstion Write.endTransmisstion استفاده می کند تا ببیند آیا // دستگاه آدرس را تایید کرده است. Wire.begin انتقال (آدرس) ؛ error = Wire.endTransmission ()؛ if (error == 0) {Serial.print ("دستگاه I2C در آدرس 0x یافت شد") ؛ if (آدرس <16) Serial.print ("0")؛ Serial.print (آدرس ، HEX) ؛ Serial.println ("!") ؛ n دستگاهها ++ ؛ } else 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

ایجاد پوشه وب سرور HTML
ایجاد پوشه وب سرور HTML

ESP32 امکان اجرای وب سرور را فراهم می کند. همچنین دارای یک حافظه RAM بسیار بزرگ برای نگهداری برخی از صفحات وب است. (به طور خودکار فایل های صفحه وب را فشرده می کند).

Arduino IDE عملکردی را برای بارگذاری مستقیم صفحات وب ایجاد شده در RAM ESP32 فراهم می کند.

برای انجام این کار ، باید یک پوشه 'data' در زیر پوشه پروژه Arduino ایجاد کنید. در مورد من این / Arduino / esp32_Power_supply_v1_implemented / data است.

مهم است که نام پوشه را دقیقاً "داده" بگذارید زیرا نام پوشه ای است که آردوینو هنگام بارگذاری فایل های صفحه وب در ESP به دنبال آن خواهد بود.

مرحله 7: صفحه وب Power Monitor را ایجاد کنید

HMTL زبانی است که به شما امکان می دهد یک متن را در مرورگر وب ارائه دهید. یک فایل HTML تحت پسوند htm (l) ذخیره می شود. قالب بندی صفحه وب معمولاً در یک فایل جداگانه قرار می گیرد (به عنوان مثال ، فایل css). عملکرد برنامه ای که یک صفحه وب باید ارائه دهد معمولاً در یک فایل دیگر قرار می گیرد (به عنوان مثال ، فایل js ، برای جاوا اسکریپت).

در سند HTML من متن ، قالب بندی و جاوا اسکریپت را در یک فایل قرار دادم. بنابراین این مثال خوبی برای نحوه ایجاد یک صفحه وب نیست ، اما به اهداف می رسد. من نام سند HTML را "Index.htm" گذاشتم.

فایل دوم در پوشه داده من قرار دارد ، به عنوان مثال. PicoGraph.js. کتابخانه PicoGraph توسط Vishnu Shankar B از RainingComputers ارائه شده است و به شما امکان می دهد راهی ساده ، در عین حال م andثر و انعطاف پذیر برای ارائه نمودارها بر روی صفحه وب داشته باشید. من کد را کمی تغییر دادم تا هدفم را بهتر انجام دهم.

متوجه خواهید شد که صفحه وب HTML همچنین شامل کد کنترل منابع ولتاژ روی برد PCB من است. کد منبع ولتاژ سطح ولتاژ 5 پین ورودی/خروجی را کنترل می کند. می توانید کد را برای حذف این مورد تغییر دهید یا در صورت عدم تأثیر ممکن است آن را بگذارید.

کد html به عنوان یک فایل txt به این مرحله متصل است (زیرا دستورالعمل ها اجازه بارگذاری کد htm را نمی دهند).

به منظور استفاده از کد HTML ، آن را کپی کرده و در ویرایشگر متن (من از Notepad ++ استفاده می کنم) پیست کرده و آن را به عنوان 'Index.htm' در پوشه 'Data' ذخیره کنید. شما همین کار را برای فایل 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؛

کد بالا 6 عدد را از صفحه ESP32 می خواند ، یعنی. اندازه گیری ولتاژ ، اندازه گیری جریان از صفحه اول ، و سپس دو اندازه گیری از صفحه دوم و غیره.

نمودارها در به اصطلاح flex-containers جاسازی شده اند که امکان تغییر اندازه صفحه وب را فراهم می کند.

.flex-container {display: flex؛ background-color: cadetblue؛ flex-wrap: wrap؛ }.flex-container> div {background-color: #f1f1f1؛ حاشیه: 10 پیکسل؛ بالشتک: 20 پیکسل ؛ اندازه فونت: 20px؛ font-family: "Seven Segment"؛ font-weight: bold؛ }

محتوای هر یک از ظروف انعطاف پذیر به شرح زیر ، از جمله نمودارهای تعبیه شده ، تشکیل شده است.

(توجه داشته باشید که موارد حذف شده)

div label for = "PG1_scale" Scale:/label input name = "PG1_scale" value = "10" brbr!-Canvas for thr graph-canvas style = "height: 100px؛ border: 2px solid #000000؛ background-color: #fafafa؛ " /بوم

!-div for legends/labels-

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"). value)+ parseInt (byID ("PG1_scale"). value)/10، "#e52b50")؛ PG2_demograph.update ([PG2_yrand0]، parseInt (byID ("PG2_scale"). value)+ parseInt (byID ("PG2_scale"). value)/10، "#e52b50")؛ PG3_demograph.update ([PG3_yrand0]، parseInt (byID ("PG3_scale"). value)+ parseInt (byID ("PG3_scale"). value)/10، "#008000")؛ PG4_demograph.update ([PG4_yrand0]، parseInt (byID ("PG4_scale"). value)+ parseInt (byID ("PG4_scale"). value)/10، "#008000")؛ // PG5_demograph.update ([PG5_yrand0]، parseInt (byID ("PG5_scale"). value)+ // parseInt (byID ("PG5_scale"). value)/10، "#0000ff")؛ PG6_demograph.update ([PG6_yrand0]، parseInt (byID ("PG6_scale"). value)+ parseInt (byID ("PG6_scale"). value)/10، "#0000ff"))؛ var Watts = Math.round (PG1_yrand0 * PG2_yrand0 * 100)/100 ؛ byID ("PG1_wattLabel"). innerHTML = `WATT: $ {Watts} mW` ؛ var Watts = Math.round (PG3_yrand0 * PG4_yrand0 * 100)/100 ؛ byID ("PG3_wattLabel"). innerHTML = `WATT: $ {Watts} mW` ؛ // var Watts = Math.round (PG5_yrand0 * PG6_yrand0 * 100)/100 ؛ // byID ("PG5_wattLabel"). innerHTML = `WATT: $ {Watts} mW` ؛ byID ("PG1_scale"). value = Math.floor (parseInt (byID ("PG1_scale"). value)/2+PG1_yrand0)؛ byID ("PG2_scale"). value = Math.floor (parseInt (byID ("PG2_scale"). value)/2+PG2_yrand0)؛ byID ("PG3_scale"). value = Math.floor (parseInt (byID ("PG3_scale"). value)/2+PG3_yrand0)؛ byID ("PG4_scale"). value = Math.floor (parseInt (byID ("PG4_scale"). مقدار)/2+PG4_yrand0)؛ // byID ("PG5_scale"). value = Math.floor (parseInt (byID ("PG5_scale"). value)/2+PG5_yrand0)؛ byID ("PG6_scale"). value = Math.floor (parseInt (byID ("PG6_scale"). value)/2+PG6_yrand0)؛

با مطالعه کد متوجه خواهید شد که من فقط از 5 نمودار 6 استفاده می کنم. بدون نظر دادن خطوط راست ، نمودار 6 را فعال می کند.

برای کسانی که با html تجربه ندارند ، این مرحله می تواند سخت باشد. با این حال می تواند به عنوان یک مقدمه خوب در دنیای HTML عمل کند. من می دانم زیرا این اولین صفحه ای بود که من ایجاد کردم. پس نترس. برای کسانی که زیر نظر ما هستند ، بخشنده باشید.

نتیجه کار شما در صفحه وب را می توان با باز کردن html خود مرور کرد ، در مرورگر شما بارگذاری می شود و ظاهر خود را نشان می دهد. با فشردن کلید F12 در مرورگر خود می توانید خطاهای احتمالی را بررسی کنید ، پنجره اشکال زدایی ظاهر می شود. توضیحات کامل در مورد نحوه اشکال زدایی خارج از این دستورالعمل است ، اما صفحه وب می تواند به عنوان اولین قدم برای اشکال زدایی صفحه وب / جاوا اسکریپت مفید باشد.

مرحله بعدی بارگیری صفحات وب ایجاد شده در ESP32 است.

مرحله 8: بارگذاری صفحه وب در ESP32

بارگذاری صفحه وب در ESP32
بارگذاری صفحه وب در ESP32

پس از به دست آوردن نتیجه رضایت بخش ، زمان بارگذاری صفحه وب در ESP32 فرا می رسد.

این کار را با ذخیره 'Index.htm' (صفحه وب شما) و 'PicoGraph.js' در پوشه 'data' در پروژه Arduino خود انجام دهید.

مرحله بعدی اتصال برد ESP32 به کامپیوتر است. پس از انتخاب برد مناسب و پورت COM ، ESP32 Sketch Data Upload را در زیر منوی Tools در Arduino IDE انتخاب کنید.

خواهید دید که IDE روند بارگذاری خود را آغاز می کند ، که باید منجر به بار موفقیت آمیز شود.

در کنار این مرحله پیکربندی میکروکنترلر ESP32 به عنوان وب سرور است.

مرحله 9: ESP32 را به عنوان سرور وب پیکربندی کنید

در پیوست ، طرح Arduino Ino را پیدا می کنید که ESP32 را به عنوان سرور وب پیکربندی می کند.

شما باید SSID و رمز عبور مربوطه را با گذرواژه روتر خود جایگزین کنید.

همانطور که قبلاً ذکر شد ، این طرح همچنین حاوی کد پیکربندی صفحه وب به عنوان کنترل کننده طرف منبع تغذیه PCB است (در واقع پیکربندی 5 پین IO به عنوان پین PWM و کنترل آنها از طریق جریان پیام از صفحه وب).

این طرح بر اساس طرح استاندارد وب سرور است که توسط هریستو گوچکوف تهیه شده است.

چند توضیح در مورد کد

توابع زیر همه مربوط به راه اندازی وب سرور است.

قالب رشته (بایت)

همچنین اولین کد در تابع setup () مربوط به راه اندازی PWM و وب سرور است.

کد زیر تابع وقفه ای را ارائه می دهد که جریان پیام ها را از و به صفحه وب ارائه می دهد:

(باید شناسه های ایجاد شده در صفحه وب را تشخیص دهید)

server.on ("/SndUpdate" ، HTTP_GET ، () {

رشته Msg = "{"؛ Msg+ = "\" PG1_yrand0 / ":"+ (رشته) وینا [1]؛ Msg+ = "، \" PG2_yrand0 / ":"+ (رشته) Iina [1]؛ Msg+ = "، \" PG3_yrand0 / ":"+ (رشته) وینا [0]؛ Msg+ = "، \" PG4_yrand0 / ":"+ (رشته) Iina [0]؛ Msg+ = "، \" PG5_yrand0 / ":"+ (رشته) وینا [2]؛ Msg+ = "، \" PG6_yrand0 / ":"+ (رشته) ایینا [2]؛ Msg+= "}"؛

server.send (200 ، "text/json" ، Msg) ؛

این سرور را راه اندازی می کند:

server.begin ()؛

بلوک بعدی کد ، بورد INA260 را مقداردهی می کند:

// مقداردهی اولیه INA260 if (! 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 ()؛

کد زیر در دستور حلقه مربوط به عملکرد منبع تغذیه است.

کد زیر در حلقه () دوباره جالب است:

Vina [0] = ina260_0x40.readBusVoltage ()/1000.0f ؛ Iina [0] = ina260_0x40.readCurrent ()؛ Vina [1] = ina260_0x41.readBusVoltage ()/1000.0f ؛ Iina [1] = ina260_0x41.readCurrent ()؛ وینا [2] = ina260_0x44.readBusVoltage ()/1000.0f؛ Iina [2] = ina260_0x44.readCurrent ()؛

این دستورات اندازه گیری ها را برای انتقال به صفحه وب از طریق سرور جمع آوری و آماده می کند. در تماس های وقفه (هر 1000 میلی ثانیه ، در اسکریپت html جاوا صفحه وب تنظیم می شود).

مرحله دهم: تمام شدی

شما انجام دادید!
شما انجام دادید!

بارگذاری طرح در برد ESP32 ، باید تنظیمات نهایی شود و مانیتور Power شما نهایی باشد!

شاید متوجه شده باشید که تغذیه ESP32 اکنون از طریق پورت USB انجام می شود ، این بخش بزرگی از مزایای اتصال WiFi را با متر ولتاژ / جریان شما افزایش می دهد. بنابراین ، من یک منبع تغذیه تنظیم شده با ولتاژ LM317 ساده برای ESP32 ساخته ام. من آن را از حوصله این دستورالعمل دور نگه داشتم ، اما اگر علاقمندی وجود داشت می تواند به یک دستورالعمل بعدی تبدیل شود.

در مرحله بعد ، مدار الکترونیکی منبع تغذیه را ارائه کرده ام که می تواند به عنوان الهام بخش عمل کند.

مرحله 11: تغذیه ESP32

تغذیه ESP32
تغذیه ESP32

در اینجا الهام بخش برای ایجاد منبع قدرت مستقل برای ESP32 خود هستید ، در صورت عدم وجود منبع در اطراف.

مدار تغذیه از منبع تغذیه لپ تاپ 19 ولت کار می کند. این امر باعث می شود تا ولتاژ دو مرحله ای کاهش یابد تا اتلاف توان LM317 تحت کنترل باشد. (حتی با گرمکن!). همچنین فراموش نکنید که یک خازن 100uF را در مقابل خط VCC_ESP قرار دهید زیرا این میکروکنترلرها در هنگام راه اندازی اتصال WiFi قطعاً نوسانات جریان زیادی دارند.

توجه داشته باشید که ESP32 را با بیش از یک منبع تغذیه همزمان تغذیه نکنید!

علاوه بر این سلب مسئولیت معمولی ، اما بیشتر از همه

خوش بگذره!

همه فایلها را می توانید در GitHub من پیدا کنید:

توصیه شده: