Orodha ya maudhui:

Njia nyingi za Wifi Voltage & mita za sasa: Hatua 11 (na Picha)
Njia nyingi za Wifi Voltage & mita za sasa: Hatua 11 (na Picha)

Video: Njia nyingi za Wifi Voltage & mita za sasa: Hatua 11 (na Picha)

Video: Njia nyingi za Wifi Voltage & mita za sasa: Hatua 11 (na Picha)
Video: ОЖИДАНИЕ или РЕАЛЬНОСТЬ! ИГРЫ в РЕАЛЬНОЙ ЖИЗНИ! Маленькие кошмары 2 в реальной жизни! 2024, Julai
Anonim
Njia nyingi za Wifi Voltage & mita za sasa
Njia nyingi za Wifi Voltage & mita za sasa

Wakati wa kupiga mkate, mara nyingi mtu anahitaji kufuatilia sehemu tofauti za mzunguko mara moja.

Ili kuepusha maumivu kuwa na fimbo ya viunga vya multimeter kutoka sehemu moja hadi nyingine, nilitaka kubuni voltage ya njia nyingi na mita ya sasa.

Bodi ya Ina260 kutoka Adafruit hutoa njia nzuri na nzuri ya kufanya hivyo. Inayo voltage sahihi sana na mita ya sasa na daraja lililounganishwa la I2C (kuokoa pini nyingi wakati unachanganya 3 kati yao!).

Kitu pekee kilichokosa ilikuwa onyesho. Kwa hivyo uamuzi wa kunasa bodi hadi kwenye bodi ya maendeleo ya ESP32, ambayo inaweza kubeba webserver kwa urahisi kuwasilisha vitu vilivyopimwa kwenye skrini ya PC / rununu.

Vifaa

3 x Ina260 bodi ya matunda

Pini za kichwa 3 x na pini ndefu

Waya 6 za kuruka

1 x ESP32 Wrover-B (au bodi yoyote ya Wifi na msaada wa I2C)

Kichwa cha pini 2 x 19 (ikiwa inatumika)

1 x PCB au Perfboard

1 x 3.3 V usambazaji wa umeme

Hatua ya 1: Solder the Three INA Bodi

Solder Bodi tatu za INA
Solder Bodi tatu za INA

Hatua ya kwanza ni kukusanya bodi tatu za INA260.

Maagizo mazuri sana yanaweza kupatikana kwenye wavuti ya Adafruit. Fuata maagizo ya mkutano wa Adafruit.

Ili kuweza kuziweka juu ya kila mmoja tumia vichwa vya pini ndefu badala ya vipande vya pini!

Hatua ya 2: Sanidi Anwani Tatu tofauti za I2C

Sanidi Anwani Tatu tofauti za I2C
Sanidi Anwani Tatu tofauti za I2C
Sanidi Anwani Tatu tofauti za I2C
Sanidi Anwani Tatu tofauti za I2C
Sanidi Anwani Tatu tofauti za I2C
Sanidi Anwani Tatu tofauti za I2C
Sanidi Anwani Tatu tofauti za I2C
Sanidi Anwani Tatu tofauti za I2C

I2C ni itifaki ya serial ya kiolesura cha waya mbili kuunganisha vifaa vya kasi ya chini kwa umbali mfupi. Mtu anaweza kuunganisha hadi watumwa 127. Kwenye basi moja kila kifaa kinahitaji kutambuliwa na anwani ya kipekee ya I2C. Anwani ya I2C ya kifaa mara nyingi ina waya ngumu kwenye chip ya kifaa. Ili kuunganisha vifaa vile vile kwenye basi moja, mtengenezaji mara nyingi huacha uwezekano wa kubadilisha anwani ya I2C kwa kutengeneza usanidi wa pini pamoja.

Hii pia ni kesi kwa bodi tatu za INA260. Kifaa hicho kina pini mbili za anwani, A0 na A1 ambazo zinaweza kushikamana na GND, VS, SCL au SDA kuweka anwani inayotakiwa. Katika lahajedwali la chip INA260 kutoka kwa vyombo vya texas, mtu anaweza kupata orodha ya unganisho la pini kwa kila anwani 16 zinazowezekana.

Bodi ya adafruit inapunguza hii kwa bodi 4 kwa kufunua pedi mbili ambazo zinaweza kutumiwa kuvuta A0 na / au A1 kwa VS. Anwani chaguomsingi ya bodi ya INA260 ni 0x40.

Unakamilisha hatua hii kwa kupeana anwani tofauti kwa bodi zingine mbili:

Kwa kuuza pedi ya A0 ya bodi ya pili uliweka anwani yake kwa: 0x41 (au 1000001 BIN)

Kwa kuuza pedi ya A1 ya bodi ya tatu unapeana anwani kwa: 0x44 (au 1000100 BIN)

Hatua ya 3: Unganisha Bodi za Ina na ESP32

Unganisha Bodi za Ina na ESP32
Unganisha Bodi za Ina na ESP32

Sasa kwa kuwa tumepewa anwani tofauti za I2C kwa kila bodi ya INA, ni wakati wa kuziunganisha kwenye bodi ya ESP32!

Kwa picha hapo juu, unganisha

1) pini ya VCC kwa pini ya 3.3V

2) pini ya GND kwa pini ya GND

3) pini ya SDA kwa pini ya GPIO 21

4) pini ya SCL kwa pini ya GPIO 22

Nimetumia muundo wa PCB kufanya unganisho kwani ni sehemu ya mradi mkubwa zaidi (usambazaji wa voltage inayoweza kubadilika ya WiFi na upeo wa sasa unaoweza kubadilika - tumaini la kufundisha kwa huyu pia).

Unaweza kutumia njia nyingine yoyote ya kuunganisha, hii inaweza kuwa ubao wa maandishi uliotengeneza au kutumia ubao wa mkate. Zote hizo zitafanya kazi vizuri pia.

Hatua ya 4: Sakinisha Bodi ya ESP32 katika Arduino IDE

Sakinisha Bodi ya ESP32 katika IDE ya Arduino
Sakinisha Bodi ya ESP32 katika IDE ya Arduino

Sasa kwa kuwa tumeunganisha bodi kwa kila mmoja, ni wakati wa kuangalia unganisho.

Tutafanya hivyo kwa kukusanya anwani za I2C za bodi za Ina.

Bodi ya ESP32 inafanya kazi kikamilifu na IDE ya Arduino.

Basi hebu tuweke bodi ya ESP32 huko Arduino tukitumia meneja wa Bodi.

Hatua ya 5: Angalia Ina kwa Uunganisho wa ESP32 Kutumia skana ya I2C

Angalia Uunganisho wa Ina kwa ESP32 Ukitumia Kichanganuzi cha I2C
Angalia Uunganisho wa Ina kwa ESP32 Ukitumia Kichanganuzi cha I2C

Tutatumia skana rahisi ya anwani ya I2C kuhakikisha unganisho kati ya ESP32 na bodi za Ina260.

Nambari ya skana ya anwani ya I2C inaweza kunakiliwa kubandikwa kwenye mradi tupu wa Arduino.

Nambari hiyo imechukuliwa kutoka kwa wavuti ya Arduino cc:

// -------------------------------------- // i2c_scanner // // Toleo 1 / Mpango huu (au nambari inayoonekana kama hiyo) // inaweza kupatikana katika maeneo mengi. // Kwa mfano kwenye jukwaa la Arduino.cc. // Mwandishi wa asili hajui. // Toleo la 2, Juni 2012, Kutumia Arduino 1.0.1 // Imechukuliwa kuwa rahisi iwezekanavyo na mtumiaji wa Arduino.cc Krodal // Toleo la 3, Feb 26 2013 // V3 na louarnold // Toleo la 4, Machi 3, 2013, Kutumia Arduino 1.0.3 // na Arduino.cc mtumiaji Krodal. // Mabadiliko ya louarnold yameondolewa. // Anwani za kuchanganua zilibadilika kutoka 0… 127 hadi 1… 119, // kulingana na skana ya i2c na Nick Gammon // https://www.gammon.com.au/forum/?id=10896 // Toleo la 5, Machi 28, 2013 // Kama toleo la 4, lakini anwani inashughulikia sasa hadi 127. // Sensorer inaonekana kutumia anwani 120. // Toleo la 6, Novemba 27, 2015. // Imeongezwa kusubiri mawasiliano ya serial ya Leonardo. // // // Mchoro huu unajaribu anwani za kiwango cha 7-bit // Vifaa vilivyo na anwani ya juu zaidi haviwezi kuonekana vizuri. // # pamoja na usanidi batili () {Wire.begin (); Kuanzia Serial (9600); wakati (! Serial); // Leonardo: subiri mfuatiliaji wa serial Serial.println ("\ nI2C Scanner"); } kitanzi batili () {byte kosa, anwani; vifaa vya ndani; Serial.println ("Kutambaza…"); Vifaa = 0; kwa (anwani = 1; anwani <127; anwani ++) {// I2c_scanner hutumia nambari ya kurudisha ya // the Write.endTransmisstion kuona ikiwa // kifaa kilikubali anwani hiyo. Uwasilishaji wa waya (anwani); kosa = Wire.endTransmission (); ikiwa (makosa == 0) {Serial.print ("Kifaa cha I2C kinapatikana kwenye anwani 0x"); ikiwa (anwani <16) Serial.print ("0"); Serial.print (anwani, HEX); Serial.println ("!"); Vifaa ++; } vingine ikiwa (kosa == 4) {Serial.print ("Kosa lisilojulikana kwenye anwani 0x"); ikiwa (anwani <16) Serial.print ("0"); Serial.println (anwani, HEX); }} ikiwa (nDevices == 0) Serial.println ("Hakuna vifaa vya I2C vilivyopatikana / n"); mwingine Serial.println ("imefanywa / n"); kuchelewesha (5000); // subiri sekunde 5 kwa skanisho inayofuata}

Hatua ya 6: Kuunda Folda ya Webserver ya HTML

Kuunda Folda ya Webserver ya HTML
Kuunda Folda ya Webserver ya HTML

ESP32 inatoa uwezekano wa kuendesha webserver. Pia hutoa kumbukumbu kubwa kabisa ya RAM kushikilia kurasa kadhaa za wavuti. (Ni moja kwa moja inasisitiza faili za wavuti).

IDE ya Arduino hutoa utendaji wa kupakia kurasa za wavuti zilizoundwa kwa RAM ya ESP32 moja kwa moja.

Ili kufanya hivyo, unahitaji kuunda folda 'data' chini ya folda ya mradi wa Arduino. Kwa upande wangu hii ni data ya / Arduino / esp32_Power_supply_v1_impled \.

Ni muhimu kutaja folda hiyo kama 'data' kwani ni jina la folda Arduino itatafuta wakati wa kupakia faili za ukurasa wa wavuti kwa ESP.

Hatua ya 7: Unda Ukurasa wa Wavuti wa Monitor Power

HMTL ni lugha ambayo inaruhusu kuwasilisha maandishi kwenye kivinjari cha wavuti. Faili ya HTML imehifadhiwa chini ya htm ya ugani (l). Muundo wa ukurasa wa wavuti kawaida huwekwa kwenye faili tofauti (kwa mfano faili ya css). Utendaji wa programu ambayo ukurasa wa wavuti unahitaji kutoa kawaida huwekwa kwenye faili nyingine (kwa mfano faili ya js, kwa javascript).

Katika hati yangu ya HTML nilijumuisha maandishi, fomati na Javascript katika faili moja. Kwa hivyo sio mfano mzuri wa jinsi ya kutengeneza ukurasa wa wavuti lakini hutumikia malengo. Niliipa jina hati ya HTML 'Index.htm'.

Faili ya pili imejumuishwa kwenye folda yangu ya data, yaani. PicoGraph.js. Maktaba ya PicoGraph hutolewa na Vishnu Shankar B kutoka RainingComputers na inaruhusu njia rahisi sana, lakini yenye ufanisi na rahisi ya kuwasilisha grafu kwenye ukurasa wa wavuti. Nilibadilisha nambari kidogo ili kutumikia vizuri kusudi langu.

Utagundua kuwa ukurasa wa wavuti wa HTML pia unajumuisha nambari ya kudhibiti usambazaji wa voltage kwenye bodi yangu ya PCB. Nambari ya usambazaji wa voltage inadhibiti kiwango cha voltage ya pini 5 za I / O. Unaweza kubadilisha nambari kuiondoa hii au unaweza kuiacha ikiwa hakuna athari.

Nambari ya html imeambatishwa na hatua hii kama faili ya txt (kwani mafundisho hayaruhusu kupakia nambari ya htm).

Ili kutumia nambari ya HTML unayonakili na kuibandika kwenye kihariri cha maandishi (ninatumia Notepad ++) na kuihifadhi kama 'Index.htm' chini ya folda ya 'Takwimu'. Unafanya vivyo hivyo kwa faili ya picograph.txt lakini ibadilishe jina kuwa picograph.js

Kuhusiana na faili ya HTML:

SndUpdate ya kazi hutumiwa kutuma ujumbe nyuma na mbele kutoka kwa ESP kwenda kwa wavuti.

Ujumbe unaotumwa kutoka kwa ESP unatumika kwa utendaji wa usambazaji wa umeme na hauwezekani kwa hii inayoweza kufundishwa. jumbe kwa ESP zinahudumia vipimo vya bodi ya 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;

Nambari iliyo hapo juu inasoma nambari 6 kutoka kwa bodi ya ESP32, yaani. kipimo cha voltage, kipimo cha sasa kutoka bodi ya kwanza, ikifuatiwa na vipimo viwili kutoka kwa pili na kadhalika.

Grafu zimewekwa katika kile kinachoitwa vyombo vya kubadilika, ambavyo huruhusu ukubwa wa ukubwa wa ukurasa wa wavuti.

.flex-container {onyesha: kubadilika; rangi ya asili: cadetblue; bamba-funga: funga; }.flex-container> div {rangi-asili: # f1f1f1; margin: 10px; padding: 20px; saizi ya fonti: 20px; font-familia: "Sehemu Saba"; font-uzito: ujasiri; }

Yaliyomo kwenye kila kontena la kubadilika linaundwa kama ifuatavyo, pamoja na grafu zilizopachikwa.

(kumbuka kuwa mahali palipoondolewa)

lebo ya div ya = "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; " / turubai

- div kwa hadithi / lebo -

div / div div / div / div

Sehemu ya mwisho ya umuhimu katika faili ya HTML inafanya kazi na maktaba ya PicoGraph kuwasilisha nambari:

var PG1_demograph = createGraph ("PG1_graphDemo", ["Ch1"], "V", "PG1_graphLabels", 20, 11, uongo, uwongo, 11, "# e52b50"); var PG2_demograph = createGraph ("PG2_graphDemo", ["Ch1"], "mA", "PG2_graphLabels", 20, 11, uongo, uwongo, 11, "# e52b50"); var PG3_demograph = createGraph ("PG3_graphDemo", ["Ch2"], "V", "PG3_graphLabels", 20, 11, uwongo, uwongo, 11, "# 008000"); var PG4_demograph = createGraph ("PG4_graphDemo", ["Ch2"], "mA", "PG4_graphLabels", 20, 11, uongo, uwongo, 11, "# 008000"); // var PG5_demograph = createGraph ("PG5_graphDemo", ["Ch3"], "V", "PG5_graphLabels", 20, 11, uongo, uwongo, 11, "# 0000ff"); var PG6_demograph = createGraph ("PG6_graphDemo", ["Ch3"], "mA", "PG6_graphLabels", 20, 11, uongo, uwongo, 11, "# 0000ff"); / * Sasisha maadili kila sekunde * / setInterval (updateEverySecond, 1000); sasisha kaziEverySecond () {/ * Pata maadili mapya * / SndUpdate ();

/ * Sasisha grafu * / PG1_demograph.update ([PG1_yrand0], parseInt (byID ("PG1_scale"). Thamani) + parseInt (byID ("PG1_scale"). Thamani) / 10, "# e52b50"); PG2_demograph.update ([PG2_yrand0], parseInt (byID ("PG2_scale"). Thamani) + parseInt (byID ("PG2_scale"). Thamani) / 10, "# e52b50"); PG3_demograph.update ([PG3_yrand0], parseInt (byID ("PG3_scale"). Thamani) + parseInt (byID ("PG3_scale"). Thamani) / 10, "# 008000"); PG4_demograph.update ([PG4_yrand0], parseInt (byID ("PG4_scale"). Thamani) + parseInt (byID ("PG4_scale"). Thamani) / 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"). Thamani) + parseInt (byID ("PG6_scale"). Thamani) / 10, "# 0000ff"); var Watts = Math.zunguka (PG1_yrand0 * PG2_yrand0 * 100) / 100; byID ("PG1_wattLabel"). HTMLHTML ya ndani = `WATT: $ {Watts} mW`; var Watts = Math.zunguka (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"). thamani = Math.floor (parseInt (byID ("PG1_scale"). thamani) / 2 + PG1_yrand0); byID ("PG2_scale"). thamani = Math.floor (parseInt (byID ("PG2_scale"). thamani) / 2 + PG2_yrand0); byID ("PG3_scale"). thamani = Math.floor (parseInt (byID ("PG3_scale"). thamani) / 2 + PG3_yrand0); byID ("PG4_scale"). thamani = Math.floor (parseInt (byID ("PG4_scale"). thamani) / 2 + PG4_yrand0); // byID ("PG5_scale"). thamani = Math.floor (parseInt (byID ("PG5_scale"). thamani) / 2 + PG5_yrand0); byID ("PG6_scale"). thamani = Math.floor (parseInt (byID ("PG6_scale"). thamani) / 2 + PG6_yrand0);

Kusoma nambari hiyo utaona ninatumia tu grafu 5 za 6 kwa kusudi langu. Kutoa maoni kwa mistari sahihi kutawezesha grafu ya 6.

Kwa wale ambao hawana uzoefu na html, hatua hii inaweza kuja ngumu sana. Walakini inaweza kutumika kama utangulizi mzuri katika ulimwengu wa HTML. Najua kwa sababu hii ndiyo ukurasa wa kwanza niliowahi kuunda. Kwa hivyo usiogope. Kwa wale walio na uzoefu chini yetu, wasamehe.

Matokeo ya kazi yako kwenye ukurasa wa wavuti yanaweza kupitiwa kwa kufungua html yako, itapakia kwenye kivinjari chako na kuonyesha kuonekana kwake. Unaweza kuangalia makosa iwezekanavyo kwa kubonyeza kitufe cha F12 kwenye kivinjari chako, dirisha la utatuzi litaonekana. Ufafanuzi kamili wa jinsi ya kuondoa utatuzi hauwezi kutoka kwa hii inayoweza kufundishwa, lakini ukurasa wa wavuti unaweza kusaidia kama hatua ya kwanza kwa utatuaji wa ukurasa wa wavuti / utatuzi wa javascript.

Hatua inayofuata ni kupakia kurasa za wavuti zilizoundwa kwenye ESP32.

Hatua ya 8: Pakia Ukurasa wa Wavuti kwenye ESP32

Pakia Ukurasa wa Wavuti Kwenye ESP32
Pakia Ukurasa wa Wavuti Kwenye ESP32

Baada ya kupata matokeo ya kuridhisha, ni wakati wa kupakia ukurasa wa wavuti kwenye ESP32.

Unafanya hivyo kwa kuokoa 'Index.htm' (ukurasa wako wa wavuti) na 'PicoGraph.js' kwenye folda ya 'data' chini ya mradi wako wa Arduino.

Hatua inayofuata ni kuunganisha bodi ya ESP32 kwenye kompyuta. Baada ya kuchagua bodi sahihi na bandari ya COM, chagua ESP32 Sketch Data Pakia chini ya menyu ya Zana kwenye IDE ya Arduino.

Utaona kwamba IDE itaanza mchakato wake wa kupakia, ambayo inapaswa kusababisha mzigo unaofanikiwa.

Karibu na hatua hii ni kusanidi mdhibiti mdogo wa ESP32 kama seva ya wavuti.

Hatua ya 9: Sanidi ESP32 kama Webserver

Imeambatanishwa unapata mchoro wa Arduino Ino ambao utasanidi ESP32 kama seva ya wavuti.

Utahitaji kubadilisha SSID na Nenosiri linalohusiana na nenosiri la router yako.

Kama ilivyoelezwa tayari mchoro huu pia una nambari ya kusanidi ukurasa wa wavuti kama mtawala wa upande wa usambazaji wa umeme wa PCB (kwa kweli, kusanidi pini 5 za IO kama pini za PWM na kuzidhibiti kupitia mtiririko wa ujumbe kutoka kwa ukurasa wa wavuti).

Mchoro huo unategemea mchoro wa kawaida wa Webserver uliotengenezwa na Hristo Gochkov.

Maelezo fulani juu ya nambari.

Kazi zifuatazo zinahusiana na kuanzisha seva ya wavuti.

String formatBytes (size_t bytes) String getContentType (String filename) bool ipo (String path) bool handleFileRead (String path) batili handleFileUpload () void handleFileDelete () utupu handleFileCreate () utupu handleFileList ()

Pia nambari ya kwanza katika usanidi () inahusiana na PWM na usanidi wa Webserver.

Nambari ifuatayo inaweka kazi ya Kukatiza ambayo hutumikia mitiririko ya ujumbe kwenda na kutoka kwa wavuti:

(unapaswa kutambua vitambulisho kutoka kwa uundaji wa ukurasa wa wavuti)

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

Kamba Msg = "{"; Msg + = "\" PG1_yrand0 / ":" + (Kamba) Vina [1]; Msg + = ", \" PG2_yrand0 / ":" + (Kamba) Iina [1]; Msg + = ", \" PG3_yrand0 / ":" + (Kamba) Vina [0]; Msg + = ", \" PG4_yrand0 / ":" + (Kamba) Iina [0]; Msg + = ", \" PG5_yrand0 / ":" + (Kamba) Vina [2]; Msg + = ", \" PG6_yrand0 / ":" + (Kamba) Iina [2]; Msg + = "}";

tuma seva (200, "maandishi / json", Msg);

Hii inaanza seva:

anza ();

Nambari inayofuata ya nambari, inaanzisha bodi za INA260:

// uanzishaji wa INA260 ikiwa (! Ina260_0x40.begin (0x40)) {Serial.println (F ("Haikuweza kupata chip INA260 0x40")); // wakati (1); } Serial.println (F ("Imepatikana INA260 chip 0x40")); ikiwa (! ina260_0x41.begin (0x41)) {Serial.println (F ("Haikuweza kupata chip 0x41 INA260")); // wakati (1); } Serial.println (F ("Imepatikana INA260 0x41 chip")); ikiwa (! ina260_0x44.begin (0x44)) {Serial.println (F ("Haikuweza kupata chip INA260 0x44")); // wakati (1); } Serial.println (F ("Imepatikana INA260 chip 0x44"));

ina260_0x40.setAveragingCount (INA260_COUNT_256);

saa260_0x40.setVoltageConversionTime (INA260_TIME_1_1_ms); ina260_0x40.setCurrentConrentionTime (INA260_TIME_1_1_ms); ina260_0x40.setMode (INA260_MODE_CONTINUOUS); ina260_0x41.setAveragingCount (INA260_COUNT_256); saa260_0x41.setVoltageConversionTime (INA260_TIME_1_1_ms); ina260_0x41.setCurrentConrentionTime (INA260_TIME_1_1_ms); ina260_0x41.setMode (INA260_MODE_CONTINUOUS); ina260_0x44.setAveragingCount (INA260_COUNT_256); saa260_0x44.setVoltageConversionTime (INA260_TIME_1_1_ms); saa260_0x44.setCurrentConrentionTime (INA260_TIME_1_1_ms); ina260_0x44.setMode (INA260_MODE_CONTINUOUS);

Katika nambari ya kitanzi, taarifa ifuatayo inahakikisha utunzaji wa nambari ya kukatiza:

seva.handleClient ();

Nambari ifuatayo katika taarifa ya kitanzi inahusiana na utendaji wa Ugavi wa Umeme.

Nambari ifuatayo kwenye kitanzi () inavutia tena:

Vina [0] = ina260_0x40.readBusVoltage () / 1000.0f; Iina [0] = ina260_0x40.readCurrent (); Vina [1] = ina260_0x41.readBusVoltage () / 1000.0f; Iina [1] = ina260_0x41.readCurrent (); Vina [2] = ina260_0x44.readBusVoltage () / 1000.0f; Iina [2] = ina260_0x44.readCurrent ();

Taarifa hizi hukusanya na kuweka tayari vipimo vya kuhamishia kwenye ukurasa wa wavuti kupitia Seva.on kukatisha simu (ikitokea kila 1000ms, iliyowekwa kwenye ukurasa wa wavuti html java script).

Hatua ya 10: Umemaliza

Umemaliza!
Umemaliza!

Kupakia mchoro kwenye bodi ya ESP32, inapaswa kukamilisha usanidi na mfuatiliaji wako wa Nguvu lazima awe wa mwisho!

Labda umeona kuwa kuwezesha ESP32 sasa kumefanywa kupitia bandari ya USB, hii inainua sehemu kubwa ya faida za unganisho la msingi wa WiFi na mita zako za voltage / za sasa. Kwa hivyo, nimefanya usambazaji rahisi wa umeme uliodhibitiwa wa LM317 kwa ESP32. Niliiweka nje ya wigo wa hii inayoweza kufundishwa lakini ikiwa kuna maslahi inaweza kuwa ya kufundisha ijayo.

Katika hatua inayofuata tayari nimetoa mzunguko wa elektroniki kwa usambazaji wa umeme ambao unaweza kutumika kama msukumo.

Hatua ya 11: Kuwezesha ESP32

Kuwezesha ESP32
Kuwezesha ESP32

Hapa kuna msukumo wa kujenga starehe peke yako kwa rasilimali ya ESP32 yako, ikiwa huna mtu amelala karibu.

Mzunguko wa nguvu unafanya kazi ya usambazaji wa umeme wa laptop ya 19V. Hii inahitaji hatua mbili za voltage kushuka ili kuweka utaftaji wa Nguvu wa LM317 chini ya udhibiti. (Hata na kuzama kwa joto!). Pia usisahau kusahau capacu ya 100uF mbele ya laini ya VCC_ESP kwani wale watawala wadogo wana mabadiliko makubwa ya sasa wakati wa kuanzisha unganisho la WiFi.

Kumbuka kutotia nguvu ESP32 na chanzo cha nguvu zaidi ya moja kwa wakati!

Zaidi ya hayo Kanusho la kawaida la dhima, lakini zaidi ya yote

Furahiya!

Faili zote zinaweza kupatikana kwenye GitHub yangu:

Ilipendekeza: