Агуулгын хүснэгт:

Олон сувгийн Wifi хүчдэл ба гүйдлийн тоолуур: 11 алхам (зурагтай)
Олон сувгийн Wifi хүчдэл ба гүйдлийн тоолуур: 11 алхам (зурагтай)

Видео: Олон сувгийн Wifi хүчдэл ба гүйдлийн тоолуур: 11 алхам (зурагтай)

Видео: Олон сувгийн Wifi хүчдэл ба гүйдлийн тоолуур: 11 алхам (зурагтай)
Видео: Как сделать систему для расширенного измерения тока в ... 2024, Долдугаар сарын
Anonim
Олон сувгийн Wifi хүчдэл ба гүйдлийн тоолуур
Олон сувгийн Wifi хүчдэл ба гүйдлийн тоолуур

Талхтай хоол хийхдээ хэлхээний өөр өөр хэсгүүдийг нэг дор хянах шаардлагатай болдог.

Мультиметр датчикийг нэг газраас нөгөөд наалдуулахгүйн тулд би олон сувгийн хүчдэл ба гүйдлийн тоолуур зохион бүтээхийг хүссэн юм.

Adafruit -ийн Ina260 самбар нь үүнийг хийх маш үр дүнтэй, үр дүнтэй аргыг санал болгодог. Энэ нь I2C гүүр бүхий маш нарийвчлалтай хүчдэл ба гүйдлийн тоолуурыг агуулдаг (тэдгээрийн 3 -ийг хослуулахад маш олон тээглүүр хэмнэдэг!).

Ганцхан дутагдаж байсан зүйл бол дэлгэц юм. Тиймээс самбарыг ESP32 хөгжлийн самбар дээр холбох шийдвэр гаргажээ.

Хангамж

3 x Ina260 adafruit самбар

Урт голтой 3 х толгойн зүү

Хамгийн бага 6 холбогч утас

1 x ESP32 Wrover-B (эсвэл I2C дэмжлэгтэй бусад Wifi самбар)

2 x 19 зүү зүү толгой (боломжтой бол)

1 x ПХБ эсвэл Perfboard

1 x 3.3 В цахилгаан хангамж

Алхам 1: INA -ийн гурван самбарыг гагнах

INA -ийн гурван самбарыг гагнах
INA -ийн гурван самбарыг гагнах

Эхний алхам бол гурван INA260 хавтанг угсрах явдал юм.

Маш сайн зааврыг Adafruit вэбсайтаас олж болно. Adafruit угсрах зааврыг дагана уу.

Тэднийг бие биенийхээ дээр байрлуулахын тулд хүргэсэн зүү туузны оронд урт зүү толгойг ашиглана уу!

Алхам 2: Гурван өөр I2C хаягийг тохируулах

Гурван өөр I2C хаягийг тохируулах
Гурван өөр I2C хаягийг тохируулах
Гурван өөр I2C хаягийг тохируулах
Гурван өөр I2C хаягийг тохируулах
Гурван өөр I2C хаягийг тохируулах
Гурван өөр I2C хаягийг тохируулах
Гурван өөр I2C хаягийг тохируулах
Гурван өөр I2C хаягийг тохируулах

I2C бол богино зайн төхөөрөмжүүдийг богино зайд холбох хоёр утастай интерфэйсийн цуваа протокол юм. Нэг нь 127 боол хүртэл холбох боломжтой. Нэг автобусанд төхөөрөмж бүрийг өвөрмөц I2C хаягаар тодорхойлох шаардлагатай. Төхөөрөмжийн I2C хаягийг ихэвчлэн төхөөрөмжийн чип рүү хатуу холбодог. Ижил төхөөрөмжүүдийг нэг автобусанд холбохын тулд үйлдвэрлэгчид голын тохиргоог гагнах замаар I2C хаягийг өөрчлөх боломжийг ихэвчлэн үлдээдэг.

Энэ нь INA260 гэсэн гурван самбарын хувьд мөн адил юм. Төхөөрөмж нь хүссэн хаягаа тохируулахын тулд GND, VS, SCL эсвэл SDA -тай холбогдож болох A0 ба A1 гэсэн хоёр хаягийн зүүтэй. Техас багаж хэрэгслийн INA260 чипийн мэдээллийн хуудсан дээрээс 16 боломжтой хаяг тус бүрийн зүү холболтын жагсаалтыг олж болно.

Адафрутын самбар нь үүнийг 4 самбараар хязгаарлаж, A0 ба/эсвэл A1 -ийг VS руу татахад ашиглаж болох хоёр дэвсгэрийг ил гаргадаг. INA260 самбарын үндсэн хаяг нь 0x40 байна.

Та өөр хоёр самбар дээр өөр хаяг оноож өгснөөр энэ алхамыг гүйцэтгэнэ.

Хоёрдахь самбарын A0 дэвсгэрийг гагнах замаар та түүний хаягийг 0x41 (эсвэл 1000001 BIN) болгож тохируулна уу.

Гурав дахь самбарын A1 дэвсгэрийг гагнах замаар та хаягийг дараах хаягаар өгнө: 0x44 (эсвэл 1000100 BIN)

Алхам 3: Ina самбарыг ESP32 -тэй холбоно уу

Ина самбарыг ESP32 руу холбоно уу
Ина самбарыг ESP32 руу холбоно уу

Одоо бид INA самбар бүрт өөр өөр I2C хаягийг хуваарилсан тул тэдгээрийг ESP32 самбартай холбох цаг болжээ!

Дээрх зургийн дагуу холбоно уу

1) VCC зүүг 3.3V зүү рүү холбоно уу

2) GND зүүг GND зүү рүү

3) SDA зүүг GPIO зүү 21 рүү

4) SCL зүүг GPIO зүү 22 руу оруулна уу

Би илүү том төслийн нэг хэсэг болох холболтыг бий болгохын тулд ПХБ -ийн загварыг ашигласан (тохируулж болох гүйдлийн хязгаарлалттай WiFi -ээр тохируулах хүчдэлийн хангамж - энэ талаар бас зааварчилгаа өгөх болно гэж найдаж байна).

Та холбохын тулд өөр аргыг ашиглаж болно, энэ нь та гагнах эсвэл талхны хавтан ашиглаж болно. Эдгээр хоёулаа сайн ажиллах болно.

Алхам 4: ESP32 самбарыг Arduino IDE дээр суулгана уу

ESP32 самбарыг Arduino IDE дээр суулгаарай
ESP32 самбарыг Arduino IDE дээр суулгаарай

Одоо бид самбаруудыг хооронд нь холбосон тул холболтыг шалгах цаг болжээ.

Бид үүнийг Ина самбаруудын I2C хаягийг цуглуулах замаар хийх болно.

ESP32 самбар нь Arduino IDE -тэй төгс ажилладаг.

Тиймээс ESP32 самбарыг Arduino -д ТУЗ -ийн менежер ашиглан суулгацгаая.

Алхам 5: I2C сканнер ашиглан Ina -аас ESP32 холболтыг шалгана уу

I2C сканнер ашиглан Ina to ESP32 холболтыг шалгана уу
I2C сканнер ашиглан Ina to ESP32 холболтыг шалгана уу

ESP32 болон Ina260 самбаруудын хоорондох холболтыг хангахын тулд бид энгийн I2C хаяг скан хийгчийг ашиглах болно.

I2C хаяг скан хийгчийн кодыг хоосон Arduino төсөл рүү хуулж болно.

Кодыг Arduino cc вэбсайтаас авсан болно:

// -------------------------------------- // i2c_scanner // // Хувилбар 1/ / Энэ програм (эсвэл иймэрхүү харагдах код) // олон газраас олж болно. // Жишээ нь Arduino.cc форум дээр. // Анхны зохиогчийг мэдэхгүй байна. // Хувилбар 2, 2012 оны 6 -р сар, Arduino 1.0.1 -ийг ашиглан // Arduino.cc хэрэглэгч Krodal аль болох энгийн байдлаар тохируулсан // Хувилбар 3, 2013 оны 2 -р сарын 26 // V3 by louarnold // Хувилбар 4, 2013 оны 3 -р сарын 3, Arduino 1.0.3 ашиглах // Arduino.cc хэрэглэгч Krodal. // Лоарнолдын оруулсан өөрчлөлтүүдийг арилгасан. // Сканнердах хаягийг 0… 127 байсныг 1… 119 болгон өөрчилсөн // Ник Гаммоны i2c сканнерын дагуу // https://www.gammon.com.au/forum/?id=10896 // Хувилбар 5, 3 -р сар 28, 2013 // 4 -р хувилбарын хувьд хаяг одоо 127 болж сканнердаж байна. // Мэдрэгч 120 хаягийг ашиглаж байгаа бололтой. // Хувилбар 6, 2015 оны 11 -р сарын 27. // Леонардогийн цуваа холбоог хүлээж байна. // // // Энэхүү ноорог нь 7 битийн стандарт хаягийг шалгадаг // Илүү өндөр битийн хаягтай төхөөрөмжүүд зөв харагдахгүй байж магадгүй юм. // #include void setup () {Wire.begin (); Цуваа эхлэх (9600); байхад (! Цуваа); // Леонардо: Serial.println ("\ nI2C Сканнер") цуваа мониторыг хүлээнэ үү; } void loop () {байтын алдаа, хаяг; int nDevices; Serial.println ("Скан хийж байна …"); nDevices = 0; for (address = 1; address <127; address ++) {// i2c_scanner нь // төхөөрөмж хаягийг хүлээн зөвшөөрсөн эсэхийг шалгахын тулд Write.endTransmisstion -ийн // буцаах утгыг ашигладаг. Wire.beginTransmission (хаяг); алдаа = Wire.endTransmission (); if (error == 0) {Serial.print ("0x хаягаар I2C төхөөрөмж олдсон"); хэрэв (хаяг <16) Serial.print ("0"); Serial.print (хаяг, HEX); Serial.println ("!"); nDevices ++; } if if (error == 4) {Serial.print ("0x хаягаар үл мэдэгдэх алдаа"); хэрэв (хаяг <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 нь үүсгэсэн вэб хуудсыг ESP32 -ийн RAM -д шууд байршуулах боломжийг олгодог.

Үүнийг хийхийн тулд та Arduino төслийн хавтасны доор "өгөгдөл" фолдер үүсгэх хэрэгтэй. Миний хувьд энэ бол / Arduino / esp32_Power_supply_v1_implemented / өгөгдөл юм.

Вэб хуудасны файлыг ESP -д байршуулахдаа Arduino -ийн хайж олох фолдерын нэрийг хавтас гэж яг нэрлэх нь чухал юм.

Алхам 7: Power Monitor вэб хуудсыг үүсгэнэ үү

HMTL бол вэб хөтөч дээр текст оруулах боломжийг олгодог хэл юм. HTML файлыг htm (l) өргөтгөлийн дор хадгална. Вэб хуудасны форматыг ихэвчлэн тусдаа файлд байрлуулдаг (жишээ нь css файл). Вэб хуудсанд санал болгох шаардлагатай програмын функцийг ихэвчлэн өөр файлд байрлуулдаг (ж.нь javascript -ийн хувьд).

HTML баримт бичигт би текст, формат, Javascript -ийг нэг файлд оруулсан. Тиймээс энэ нь вэб хуудас хэрхэн хийх талаар сайн жишээ биш боловч зорилгодоо нийцдэг. Би HTML баримтыг 'Index.htm' гэж нэрлэсэн.

Хоёр дахь файлыг миний өгөгдлийн хавтсанд оруулсан болно, өөрөөр хэлбэл. PicoGraph.js. PicoGraph номын санг RainingComputers -ийн Вишну Шанкар Б хангадаг бөгөөд вэб хуудсан дээр график үзүүлэх маш энгийн боловч үр дүнтэй, уян хатан аргыг санал болгодог. Зорилгоо илүү сайн биелүүлэхийн тулд би кодоо бага зэрэг өөрчилсөн.

HTML вэб хуудсанд миний ПХБ -ийн самбар дээрх хүчдэлийн хангамжийг хянах кодыг оруулсан болохыг та анзаарах болно. Хүчдэлийн хангамжийн код нь 5 оролт/зүүний хүчдэлийн түвшинг хянадаг. Үүнийг оруулахгүйн тулд та кодыг өөрчилж болно, эсвэл нөлөөлөхгүй бол үлдээж болно.

Html кодыг энэ алхамд txt файл хэлбэрээр хавсаргасан болно (зааварчилгаа нь htm кодыг байршуулахыг зөвшөөрдөггүй тул).

HTML кодыг ашиглахын тулд та үүнийг текст засварлагч руу хуулж (Notepad ++ ашигладаг), 'Data' фолдер дотор 'Index.htm' хэлбэрээр хадгална уу. Та picograph.txt файлын хувьд ижил зүйлийг хийх боловч үүнийг picograph.js гэж нэрлэх

HTML файлын хувьд:

SndUpdate функцийг ESP -ээс вэб хуудас руу буцааж, урагш илгээхэд ашигладаг.

ESP -ээс илгээсэн мессежүүд нь эрчим хүчний хангамжийн функцэд үйлчилдэг бөгөөд энэ зааварчилгааны хувьд боломжгүй юм. ESP рүү илгээсэн зурвасууд нь Ina260 хавтангийн хэмжилтэд үйлчилж байна.

var Msg = JSON.parse (xh.responseText); PG1_yrand0 = Хатагтай. PG1_yrand0; PG2_yrand0 = Хатагтай. PG2_yrand0; PG3_yrand0 = Хатагтай. PG3_yrand0; PG4_yrand0 = Хатагтай. PG4_yrand0; PG5_yrand0 = Хатагтай. PG5_yrand0; PG6_yrand0 = Хатагтай. PG6_yrand0;

Дээрх код нь ESP32 самбараас 6 тоог уншдаг, өөрөөр хэлбэл. хүчдэлийн хэмжилт, эхний самбараас одоогийн хэмжилт, дараа нь хоёр дахь хэмжилт гэх мэт.

Графикууд нь уян хатан контейнер гэж нэрлэгддэг бөгөөд энэ нь вэб хуудасны хэмжээг уян хатан өөрчлөх боломжийг олгодог.

.flex-container {дэлгэц: flex; дэвсгэр өнгө: кадет цэнхэр; уян боолт: боох; }.flex-container> div {background-color: #f1f1f1; маржин: 10 пиксел; дүүргэгч: 20 пиксел; фонтын хэмжээ: 20 пиксел; фонт-гэр бүл: "Долоон сегмент"; фонтын жин: тод; }

Уян хатан контейнер бүрийн агуулгыг дараах байдлаар бүрдүүлсэн болно.

(хаана устгасан болохыг анхаарна уу)

div label for = "PG1_scale" Scale:/label input name = "PG1_scale" value = "10" brbr!-Thr graph for canvas-canvas style = "height: 100px; border: 2px solid #000000; background-color: #fafafa; " /зураг

!-домог/шошгод зориулсан div-

div /div div /div /div

HTML файлын хамгийн чухал хэсэг нь тоонуудыг танилцуулахын тулд PicoGraph номын сантай ажилладаг.

var PG1_demograph = createGraph ("PG1_graphDemo", ["Ch1"], "V", "PG1_graphLabels", 20, 11, худал, худал, 11, "#e52b50"); var PG2_demograph = createGraph ("PG2_graphDemo", ["Ch1"], "mA", "PG2_graphLabels", 20, 11, худал, худал, 11, "#e52b50"); var PG3_demograph = createGraph ("PG3_graphDemo", ["Ch2"], "V", "PG3_graphLabels", 20, 11, худал, худал, 11, "#008000"); var PG4_demograph = createGraph ("PG4_graphDemo", ["Ch2"], "mA", "PG4_graphLabels", 20, 11, худал, худал, 11, "#008000"); // var PG5_demograph = createGraph ("PG5_graphDemo", ["Ch3"], "V", "PG5_graphLabels", 20, 11, худал, худал, 11, "#0000ff"); var PG6_demograph = createGraph ("PG6_graphDemo", ["Ch3"], "mA", "PG6_graphLabels", 20, 11, худал, худал, 11, "#0000ff"); / * Утга утгыг секунд тутамд шинэчлэх */ setInterval (updateEverySecond, 1000); function 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 дээр вэб хуудсыг ачаална уу
ESP32 дээр вэб хуудсыг ачаална уу

Сэтгэл хангалуун үр дүнд хүрсний дараа вэб хуудсыг ESP32 дээр байршуулах цаг болжээ.

Үүнийг хийхийн тулд 'Index.htm' (таны вэб хуудас) болон 'PicoGraph.js' файлуудыг Arduino төслийнхөө 'өгөгдөл' хавтсанд хадгалж болно.

Дараагийн алхам бол ESP32 самбарыг компьютерт холбох явдал юм. Зөв самбар болон COM портыг сонгосны дараа Arduino IDE дахь Tools цэснээс ESP32 Sketch Data Upload -ийг сонгоно уу.

IDE -ийг байршуулах үйл явц эхлэх бөгөөд энэ нь амжилттай ачаалал өгөх болно гэдгийг та харах болно.

Дараагийн алхам бол ESP32 микроконтроллерыг вэб сервер болгон тохируулах явдал юм.

Алхам 9: ESP32 -ийг вэб сервер болгон тохируулна уу

ESP32 -ийг вэб сервер болгон тохируулах Arduino Ino ноорогыг танд хавсаргасан болно.

Та SSID болон холбогдох нууц үгээ чиглүүлэгчийнхээ нууц үгээр солих шаардлагатай болно.

Өмнө дурьдсанчлан энэхүү тоймд вэб хуудсыг ПХБ -ийн тэжээлийн хангамжийн хэсгийн хянагч болгон тохируулах кодыг агуулдаг (үнэндээ 5 IO тээглүүрийг ХОУХ -ны зүү болгон тохируулж, вэб хуудаснаас ирсэн зурвасын дамжуулалтаар хянадаг).

Энэхүү ноорог зургийг Христо Гочковын боловсруулсан вэб серверийн стандарт ноорог дээр үндэслэсэн болно.

Кодын талаархи зарим тайлбар.

Дараахь функцууд нь вэб серверийг тохируулахтай холбоотой юм.

String formatBytes (size_t байт) String getContentType (String файлын нэр) bool байдаг (String зам) bool handleFileRead (String зам) void handleFileUpload () void handleFileDelete () void handleFileCreate () void handleFileList ()

Мөн setup () функцын эхний код нь PWM болон Webserver тохируулгатай холбоотой юм.

Дараах код нь вэб хуудас руу мессеж дамжуулах үйлчилгээтэй тасалдлын функцийг тохируулдаг.

(та вэб хуудсыг үүсгэх явцад танигчдыг таних ёстой)

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

String Msg = "{"; Msg+ = "\" PG1_yrand0 / ":"+ (String) Вина [1]; Msg+ = ", \" PG2_yrand0 / ":"+ (String) Iina [1]; Msg+ = ", \" PG3_yrand0 / ":"+ (String) Вина [0]; Msg+ = ", \" PG4_yrand0 / ":"+ (String) Iina [0]; Msg+ = ", \" PG5_yrand0 / ":"+ (String) Вина [2]; Msg+ = ", \" PG6_yrand0 / ":"+ (String) Iina [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);

Loop кодонд дараах мэдэгдэл нь тасалдлын кодыг зохицуулах болно.

server.handleClient ();

Давталтын мэдэгдэлд байгаа дараах код нь цахилгаан хангамжийн функцтэй холбоотой юм.

Loop () дээрх дараах код дахин сонирхолтой байна.

Вина [0] = ina260_0x40.readBusVoltage ()/1000.0f; Iina [0] = ina260_0x40.readCurrent (); Вина [1] = ina260_0x41.readBusVoltage ()/1000.0f; Iina [1] = ina260_0x41.readCurrent (); Вина [2] = ina260_0x44.readBusVoltage ()/1000.0f; Iina [2] = ina260_0x44.readCurrent ();

Эдгээр мэдэгдэл нь сервер дээр тасалдсан дуудлагаар дамжуулан вэб хуудсанд шилжүүлэх хэмжилтийг цуглуулж бэлэн болгодог (1000 м тутамд тохиолддог, html java скрипт вэб хуудсанд тохируулагдсан).

Алхам 10: Та дууссан

Та дууссан!
Та дууссан!

ESP32 самбар дээр ноорог байршуулах нь тохиргоог эцэслэх ёстой бөгөөд таны Power монитор эцсийнх байх ёстой!

ESP32 -ийг USB портоор тэжээдэг болсон нь таны хүчдэл / гүйдлийн тоолууртай WiFi холболтын давуу талыг ихээхэн нэмэгдүүлж байгааг та анзаарсан байх. Тиймээс би ESP32 -ийн LM317 дээр суурилсан хүчдэлийн зохицуулалттай энгийн тэжээлийг хийсэн. Би үүнийг энэ зааварчилгааны хамрах хүрээнээс хол байлгасан боловч хэрэв сонирхол байвал дараагийн зааварчилгаа болж магадгүй юм.

Дараагийн алхамд би урам зориг өгөх цахилгаан тэжээлийн цахилгаан хэлхээг өгсөн.

Алхам 11: ESP32 -ийг ажиллуулах

ESP32 -ийг ажиллуулж байна
ESP32 -ийг ажиллуулж байна

Энд ESP32 -ийн бие даасан хүч чадлын эх үүсвэрийг бий болгох урам зоригийг өгөх болно.

Цахилгаан хэлхээ нь 19В зөөврийн компьютерын тэжээлийн эх үүсвэрээр ажилладаг. Энэ нь LM317 -ийн цахилгаан зарцуулалтыг хяналтан дор байлгахын тулд хоёр үе шаттай хүчдэлийг бууруулахыг шаарддаг. (Дулаан шингээгч байсан ч гэсэн!). VCC_ESP шугамын урд 100uF конденсатор оруулахаа бүү мартаарай, учир нь эдгээр микроконтроллерууд WiFi холболтыг эхлүүлэх үед гүйдлийн хэлбэлзэл ихтэй байдаг.

ESP32 -ийг нэг дор хэд хэдэн тэжээлийн эх үүсвэрээр тэжээхгүй байхыг анхаарна уу.

Цаашид ердийн хариуцлагаас татгалзах тухай, гэхдээ хамгийн гол нь

Хөгжилтэй байгаарай!

Бүх файлыг миний GitHub дээрээс олж болно:

Зөвлөмж болгож буй: