La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Kiam mi estis en mia maljunuljaro de mezlernejo (de marto ĝis decembro 2016), mi estis tre ĝenita de la situacio kiu disvolviĝis en nia lerneja manĝejo.

Problemo unu: atendi en vico tro longe

Kiun problemon mi observis? Kiel tio:

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Multaj lernantoj kolektiĝis ĉe la distribuejo kaj ili devis stari longe (kvin ĝis dek minutoj). Kompreneble, ĉi tio estas ofta problemo kaj justa servoskemo: ju pli malfrue vi alvenos, des pli poste vi estos servita. Do vi povus kompreni kial vi devas atendi.

Problemo du: neegalaj kondiĉoj por tiuj atendantoj

Sed, kompreneble, tio ne estas ĉio; mi ankaŭ devis observi alian, pli seriozan problemon. Tiel serioza, ke mi finfine decidis provi trovi eliron el la situacio. Mezlernejanoj (tio estas ĉiuj, kiuj studas almenaŭ unu gradon pli altan) kaj instruistoj iris al la distribuo sen vico atendi. Jes, jes, kaj vi, kiel bazlernejano, nenion povis diri al ili. Nia lernejo havis sufiĉe striktan politikon pri rilatoj inter klasoj.

Tial mi kaj miaj amikoj, dum ni estis novuloj, venis tre unue al la kafejo, estis ricevontaj manĝaĵoj - kaj tiam aperis gimnazianoj aŭ instruistoj kaj simple flankenpuŝis nin (kelkaj, kiuj estis pli afablaj, permesis al ni resti en nia loko en linio). Ni devis atendi pliajn dek kvin ĝis dudek minutojn, kvankam ni alvenis pli frue ol ĉiuj aliaj.

Ni havis precipe malbonan tempon je la tagmanĝo. Tage absolute ĉiuj rapidis al la kafejo (instruistoj, lernantoj, dungitoj), do por ni, kiel bazlernejanoj, tagmanĝo neniam estis ĝojo.

Komunaj solvoj al la problemo

Sed ĉar la novuloj ne havis elekton, ni elpensis du manierojn redukti la riskon esti ĵetitaj al la malantaŭo de la linio. La unua estas veni al la manĝoĉambro tre frue (tio estas, laŭvorte antaŭ ol la manĝaĵo eĉ komencas esti servata). La dua estas intence mortigi tempon ludante pingpongon aŭ basketbalon kaj alveni tre malfrue (ĉirkaŭ dudek minutojn post la komenco de tagmanĝo).

Iagrade ĝi funkciis. Sed, sincere, neniu volis rapidi kiel eble plej rapide al la manĝoĉambro nur por povi manĝi, aŭ por fini la malvarmajn restaĵojn post la aliaj, ĉar ili estis inter la lastaj. Ni bezonis solvon, kiu sciigus nin, kiam la kafejo ne estas plenplena.

Estus bonege, se iu aŭguristo antaŭdiris al ni la estontecon kaj dirus al ni ĝuste kiam iri al la manĝoĉambro, por ke ni ne devu longe atendi. La problemo estis, ke ĉiutage ĉio rezultis alimaniere. Ni ne povus simple analizi ŝablonojn kaj identigi la dolĉan punkton. Ni havis nur unu rimedon por ekscii, kiel estis la aferoj en la manĝoĉambro — atingi tien piede, kaj la vojo povus esti kelkcent metroj, depende de kie vi estas. Do se vi venos, rigardu la linion, revenu kaj daŭrigu en la sama spirito ĝis ĝi mallongiĝos, vi malŝparos multe da tempo. Ĝenerale, la vivo estis abomena por la elementa klaso, kaj nenio estis farebla pri ĝi.

Eŭreka - la ideo krei Kantinan Monitorsistemon

Kaj subite, jam en la venonta akademia jaro (2017), mi diris al mi: "Kaj se ni faros sistemon, kiu montros la longecon de la vico en reala tempo (tio estas, detekti trafikŝtopiĝon)?" Se mi sukcesus, la bildo estus jena: bazlernejaj studentoj simple rigardus siajn telefonojn por akiri ĝisdatigitajn datumojn pri la nuna nivelo de laborŝarĝo, kaj farus konkludojn pri tio, ĉu estas senco, ke ili iru nun. .

Esence, ĉi tiu skemo glatigis malegalecon per aliro al informoj. Per ĝia helpo la bazlernejanoj povis mem elekti tion, kio estas plej bone por ili fari - iri kaj stari en vico (se ĝi ne estis tro longa) aŭ pasigi tempon pli utile, kaj poste elekti pli taŭgan momenton. Mi estis tre ekscitita de ĉi tiu penso.

Dezajno de Kantina Monitora Sistemo

En septembro 2017, mi devis prezenti projekton por objekt-orientita programa kurso, kaj mi prezentis ĉi tiun sistemon kiel mian projekton.

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Komenca sistemplano (septembro 2017)

Elekto de ekipaĵo (oktobro 2017)

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Simpla palpa ŝaltilo kun tirrezisto. Skemo kun kvin ŝildoj en tri vicoj por rekoni la atendovicon laŭ tri linioj

Mi mendis nur kvindek membranŝaltilojn, minitablon Wemos D1 bazitan sur ESP8266, kaj kelkajn ringkrampojn, al kiuj mi planis alkroĉi la emajlitajn dratojn.

Prototipado kaj evoluo (oktobro 2017)

Mi komencis per pantabulo - kunmetis cirkviton sur ĝi kaj testis ĝin. Mi estis limigita en la nombro da materialoj, do mi limigis min al sistemo kun kvin piedtabuloj.

Por la programaro, kiun mi skribis en C++, mi fiksis la jenajn celojn:

  1. Laboru senĉese kaj sendu datumojn nur dum periodoj, kiam manĝaĵoj estas servataj (matenmanĝo, tagmanĝo, vespermanĝo, posttagmeza manĝeto).
  2. Rekonu la atendovicon/trafiksituacion en la kafejo je tiaj frekvencoj, ke la datumoj tiam povas esti uzataj en maŝinlernado-modeloj (diru, 10 Hz).
  3. Sendu datumojn al la servilo en efika maniero (pakaĵgrandeco devus esti malgranda) kaj je mallongaj intervaloj.

Por atingi ilin mi devis fari la jenon:

  1. Uzu la modulon RTC (Reala Tempo Horloĝo) por kontinue kontroli la tempon kaj determini kiam manĝaĵo estas servata en la kafejo.
  2. Uzu datumkunpreman metodon por registri la ŝirman staton en unu signo. Traktante la datumojn kiel kvin-bita binara kodo, mi mapis la diversajn valorojn al ASCII-signoj por ke ili reprezentis la datumelementojn.
  3. Uzu ThingSpeak (IoT-ilo por analizo kaj interreta mapo) sendante HTTP-petojn per la POST-metodo.

Kompreneble, estis kelkaj cimoj. Ekzemple, mi ne sciis, ke la operatoro sizeof( ) redonas la valoron 4 por char * objekto, kaj ne la longon de la ĉeno (ĉar ĝi ne estas tabelo kaj, sekve, la kompililo ne kalkulas la longon) kaj estis tre surprizita kial miaj HTTP-petoj enhavis nur kvar signojn el ĉiuj URL-oj!

Mi ankaŭ ne enmetis krampojn en la #define paŝo, kio kondukis al neatenditaj rezultoj. Nu, ni diru:

#define _A    2 * 5 
int a = _A / 3;

Ĉi tie oni atendus, ke A estus egala al 3 (10 / 3 = 3), sed fakte ĝi estis kalkulita malsame: 2 (2 * 5/ 3 = 2).

Fine, alia menciinda cimo, kiun mi traktis, estis la Restarigi la gardan tempigilon. Mi luktis kun ĉi tiu problemo dum tre longa tempo. Kiel montriĝis poste, mi provis aliri la malaltnivelan registron sur la ESP8266-peceto en malĝusta maniero (erare mi enigis NULL-valoron por montrilo al strukturo).

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Pieda ŝildo, kiun mi desegnis kaj konstruis. Kiam la foto estis prenita, li jam travivis kvin semajnojn da piedpremado

Aparataro (piedtabuloj)

Por certigi, ke la ŝildoj povis travivi la severajn kondiĉojn de la kantino, mi starigis la jenajn postulojn por ili:

  • Ŝildoj devas esti sufiĉe fortaj por subteni homan pezon ĉiam.
  • La ŝildoj estu maldikaj por ne ĝeni homojn en vico.
  • La ŝaltilo devas esti aktivigita kiam surpaŝita.
  • Ŝildoj devas esti akvorezistaj. La manĝoĉambro estas ĉiam malseka.

Por plenumi ĉi tiujn postulojn, mi decidis por du-tavola dezajno - lasertranĉita akrila por la bazo kaj supra kovrilo, kaj korko kiel protekta tavolo.

Mi faris la ŝildan aranĝon en AutoCAD; dimensioj - 400 per 400 milimetroj.

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Maldekstre estas la dezajno kiu iris en produktadon. Dekstre estas opcio kun Lego-tipa konekto

Cetere, mi finfine forlasis la dekstran dezajnon, ĉar kun tia fikssistemo montriĝis, ke devus esti 40 centimetroj inter la ŝildoj, kio signifas, ke mi ne povis kovri la postulatan distancon (pli ol dek metroj).

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Por konekti ĉiujn ŝaltilojn mi uzis emajlaj dratoj - entute ili daŭris pli ol 70 metrojn! Mi metis membranŝaltilon en la centron de ĉiu ŝildo. Du klipoj elstaris el la flankaj fendoj - maldekstren kaj dekstren de la ŝaltilo.

Nu, por akvorezisto mi uzis elektran bendon. Multe da elektra bendo.

Kaj ĉio funkciis!

Periodo de la kvina de novembro ĝis la dekdua de decembro

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Foto de la sistemo - ĉiuj kvin ŝildoj estas videblaj ĉi tie. Maldekstre estas la elektroniko (D1-mini / Bluetooth / RTC)

La XNUMX-an de novembro je la oka matene (matenmanĝo), la sistemo komencis kolekti aktualajn datumojn pri la situacio en la manĝoĉambro. Mi ne povis kredi miajn okulojn. Antaŭ nur du monatoj mi skizis la ĝeneralan skemon, sidante hejme en mia piĵamo, kaj jen ni, la tuta sistemo funkcias senprobleme... aŭ ne.

Programaraj cimoj dum testado

Kompreneble, estis multaj cimoj en la sistemo. Jen tiuj, kiujn mi memoras.

La programo ne kontrolis disponeblajn Wi-Fi-punktojn kiam li provis konekti la klienton al la ThingSpeak API. Por ripari la eraron, mi aldonis plian paŝon por kontroli la haveblecon de Wi-Fi.

En la agorda funkcio, mi plurfoje vokis "WiFi.begin" ĝis konekto aperis. Poste mi eksciis, ke la konekto estas establita de la ESP8266-firmvaro, kaj la komenco-funkcio estas uzata nur dum agordado de Wi-Fi. Mi korektis la situacion vokante la funkcion nur unufoje, dum aranĝo.

Mi malkovris, ke la komandlinia interfaco, kiun mi kreis (ĝi intencis agordi la horon, ŝanĝi retajn agordojn) ne funkcias ripoze (tio estas ekster matenmanĝo, tagmanĝo, vespermanĝo kaj posttagmeza teo). Mi ankaŭ vidis, ke kiam ne okazas protokolado, la interna buklo troe plirapidiĝas kaj la seriaj datumoj estas legitaj tro rapide. Tial mi fiksis prokraston por ke la sistemo atendu ke aldonaj komandoj alvenos kiam ili estas atendataj.

Odo al la gardhundo

Ho, kaj ankoraŭ unu afero pri tiu problemo kun la gardohundo-tempigilo - mi solvis ĝin ĝuste en la prova stadio en "kampaj" kondiĉoj. Sen troigo, ĉi tio estis ĉio pri kio mi pensis dum kvar tagoj. Ĉiun paŭzon (daŭron dek minutojn) mi rapidis al la kafejo nur por provi la novan version de la kodo. Kaj kiam la distribuo malfermiĝis, mi sidis sur la planko dum unu horo, provante kapti la cimon. Mi eĉ ne pensis pri manĝaĵo! Dankon pro ĉiuj bonaj aferoj, ESP8266 Watchdog!

Kiel mi eltrovis WDT

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Kodfragmento, kun kiu mi luktis

Mi trovis programon, aŭ pli ĝuste etendon por Arduino, kiu analizas la datumstrukturon de la programaro kiam okazas Wdt-reset, alirante la ELF-dosieron de la kompilita kodo (korelacioj inter funkcioj kaj montriloj). Kiam ĉi tio estis farita, montriĝis, ke la eraro povas esti forigita jene:

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Damnu ĝin! Nu, kiu sciis, ke ripari cimojn en realtempa sistemo estas tiel malfacila! Tamen mi forigis la cimon, kaj ĝi montriĝis stulta cimo. Pro mia malsperto, mi skribis while-buklon en kiu la tabelo preterpasis la limojn. Uf! (Indekso++ kaj ++indekso estas du grandaj diferencoj).

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Problemoj kun aparataro dum testado

Kompreneble, la ekipaĵo, tio estas, la piedŝildoj, estis malproksima de ideala. Kiel vi povus atendi, unu el la ŝaltiloj estas blokita.

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

La XNUMX-an de novembro, dum tagmanĝo, la ŝaltilo sur la tria panelo algluiĝis

Supre mi disponigis ekrankopion de reta diagramo de la retejo ThingSpeak. Kiel vi povas vidi, io okazis ĉirkaŭ 12:25, post kio la ŝildo numero tri malsukcesis. Kiel rezulto, la vostolongo estis determinita esti 3 (la valoro estas 3 * 100), eĉ kiam ĝi fakte ne atingis la trian ŝildon. La solvo estis, ke mi aldonis pli da remburaĵo (jes, glubendo) por doni al la ŝaltilo pli da loko.

Foje mia sistemo estis laŭvorte elradikigita kiam la drato kaptiĝis en la pordo. Ĉaroj kaj pakaĵoj estis portitaj tra ĉi tiu pordo en la manĝoĉambron, tiel ke ĝi kunportis la draton, fermiĝante kaj eltirinte ĝin el la ingo. En tiaj kazoj, mi rimarkis neatenditan malsukceson en la fluo de datumoj kaj divenis, ke la sistemo estas malkonektita de la energifonto.

Disvastigo de informoj pri la sistemo tra la lernejo

Kiel jam menciite, mi uzis la ThingSpeak API, kiu bildigas datumojn en la retejo en formo de grafikaĵoj, kio estas tre oportuna. Ĝenerale, mi esence ĵus afiŝis ligilon al mia horaro en la fejsbuka grupo de la lernejo (mi serĉis ĉi tiun afiŝon dum duonhoro kaj ne trovis ĝin - tre stranga). Sed mi trovis afiŝon en mia Band, lerneja komunumo, datitan la 2017-an de novembro XNUMX:

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

La reago estis sovaĝa!

Mi afiŝis ĉi tiujn afiŝojn por veki intereson pri mia projekto. Tamen, eĉ nur rigardi ilin estas sufiĉe distra en si mem. Ni diru, ke vi povas klare vidi ĉi tie, ke la nombro da homoj akre saltis je 6:02 kaj preskaŭ malaltiĝis je la 6:10.

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Supre mi aldonis kelkajn grafikaĵojn, kiuj rilatas al tagmanĝo kaj posttagmeza teo. Estas interese rimarki, ke la pinto de laborŝarĝo je la tagmanĝo preskaŭ ĉiam okazis je 12:25 (la vico atingis la kvinan ŝildon). Kaj por posttagmeza manĝeto estas ĝenerale nekarakterize havi grandan amason da homoj (la vico estas maksimume unu tabulon longa).

Ĉu vi scias, kio estas amuza? Ĉi tiu sistemo ankoraŭ vivas (https://thingspeak.com/channels/346781)! Mi ensalutis en la konton, kiun mi antaŭe uzis kaj vidis ĉi tion:

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

En la supra grafikaĵo, mi vidis, ke la trian de decembro la alfluo de homoj estis signife malpli granda. Kaj ne mirinde — estis dimanĉo. En ĉi tiu tago preskaŭ ĉiuj iras ien, ĉar plejofte nur dimanĉe oni povas forlasi la lernejon. Estas klare, ke vi ne vidos vivantan animon en la kafejo semajnfine.

Kiel mi ricevis la unuan premion de la korea Ministerio pri Edukado por mia projekto

Kiel vi mem povas vidi, mi ne laboris pri ĉi tiu projekto ĉar mi provis gajni ian premion aŭ rekonon. Mi nur volis uzi miajn kapablojn por solvi kronikan problemon, kiun mi alfrontis en la lernejo.

Tamen, nia lerneja nutraĵisto, fraŭlino O, kun kiu mi iĝis tre proksima dum la planado kaj disvolvado de mia projekto, iutage demandis min, ĉu mi scias pri konkurso por ideoj pri kafejo. Tiam mi pensis, ke estas ia stranga ideo kompari ideojn por la manĝoĉambro. Sed mi legis la informlibreton kaj eksciis, ke la projekto devas esti prezentita ĝis la 24-a de novembro! Bone bone. Mi rapide finpretigis la koncepton, datumojn kaj grafikojn kaj sendis la aplikaĵon.

Ŝanĝoj al la origina ideo por la konkurso

Cetere, la sistemo, kiun mi finfine proponis, estis iomete malsama al tiu jam efektivigita. Esence, mi adaptis mian originalan metodon (mezurante vicolongon en reala tempo) por multe pli grandaj koreaj lernejoj. Kompare: en nia lernejo estas tricent studentoj, kaj en kelkaj aliaj estas tiom da homoj en nur unu klaso! Mi devis eltrovi kiel grimpi la sistemon.

Tial mi proponis koncepton, kiu pli baziĝis sur "mana" kontrolo. Nuntempe, koreaj lernejoj jam enkondukis manĝplanon por ĉiuj klasoj, kiu estas strikte respektata, do mi konstruis alian "signal-respondan" tipan kadron. La ideo ĉi tie estis ke kiam la grupo vizitanta la kafejon antaŭ vi atingis certan limon en la longo de la linio (tio estas, la linio iĝis mallonga), ili permane sendos signalon al vi per butono aŭ ŝaltilo sur la muro. . La signalo estos transdonita al la televida ekrano aŭ per LED-bulboj.

Mi nur ege volis solvi problemon, kiu aperis en ĉiuj lernejoj de la lando. Mi eĉ pli fortiĝis en mia intenco, kiam mi aŭdis rakonton de fraŭlino O - mi rakontos al vi nun. Montriĝas, ke en kelkaj grandaj lernejoj la linio etendiĝas preter la kafejo, en la straton dum dudek ĝis tridek metroj, eĉ vintre, ĉar neniu povas organizi la procezon ĝuste. Kaj foje okazas, ke dum kelkaj minutoj neniu aperas en la manĝoĉambro — kaj ankaŭ tio estas malbona. En lernejoj kun granda nombro da studentoj, dungitaro apenaŭ havas tempon por servi ĉiujn eĉ se eĉ ne unu minuton da manĝtempo estas malŝparita. Tial tiuj, kiuj estas la lastaj alvenintaj al la distribuo (kutime bazlernejanoj) simple ne havas sufiĉe da tempo por manĝi.

Do, kvankam mi devis haste sendi mian kandidatiĝon, mi ja tre zorge pripensis kiel mi povus adapti ĝin por pli vasta uzo.

Mesaĝo, ke mi gajnis la unuan premion!

Mallonga rakonto, mi estis invitita veni kaj prezenti mian projekton al registaraj oficistoj. Do mi metis ĉiujn miajn Power Point-talentojn al laboro kaj venis kaj prezentis!

La rakonto de korea lernejano, kiu ricevis premion de la ministerio por vicomonitorsistemo

Komenco de la prezento (maldekstre - ministro)

Estis interesa sperto – mi ĵus elpensis ion por la kafeja problemo, kaj iel finiĝis inter la gajnintoj de la konkurso. Eĉ starante sur la scenejo, mi daŭre pensis: "Hmm, kion mi eĉ faras ĉi tie?" Sed ĝenerale, ĉi tiu projekto alportis al mi grandan profiton - mi lernis multon pri la evoluo de enigitaj sistemoj kaj la efektivigo de projektoj en la reala vivo. Nu, mi ricevis premion, kompreneble.

konkludo

Ĉi tie estas iom da ironio: kiom ajn mi partoprenis en ĉiaj konkursoj kaj sciencaj foiroj, al kiuj mi intence aliĝis, nenio bona rezultis. Kaj tiam la ŝanco ĵus trovis min kaj donis al mi bonajn rezultojn.

Ĉi tio pensigis min pri la kialoj, kiuj instigas min alpreni projektojn. Kial mi komencas labori - por "gajni" aŭ solvi veran problemon en la mondo ĉirkaŭ mi? Se la dua motivo funkcias en via kazo, mi forte kuraĝigas vin ne forlasi la projekton. Kun ĉi tiu aliro al komerco, vi povas renkonti neatenditajn ŝancojn survoje kaj ne sentos premon de la bezono venki - via ĉefa motivilo estos pasio por via komerco.

Kaj plej grave: se vi sukcesas efektivigi decan solvon, vi povas tuj provi ĝin en la reala mondo. En mia kazo, la platformo estis lernejo, sed kun la tempo, sperto amasiĝas, kaj kiu scias - eble via aplikaĵo estos uzata de la tuta lando aŭ eĉ de la tuta mondo.

Ĉiufoje, kiam mi pensas pri ĉi tiu sperto, mi estas iom fiera pri mi mem. Mi ne povas klarigi kial, sed la procezo de efektivigo de la projekto simple alportis al mi grandan plezuron, kaj la premio estis plia gratifiko. Krome mi ĝojis, ke mi povis solvi por miaj samklasanoj problemon, kiu ruinigis ilian vivon ĉiutage. Iun tagon unu el la studentoj venis al mi kaj diris: "Via sistemo estas tre oportuna." Mi estis en la sepa ĉielo!
Mi pensas, ke eĉ sen premioj mi sentus min fiera pri mia evoluo nur pro tio. Eble estis helpi aliajn, kio alportis al mi tian kontenton... ĝenerale, mi amas projektojn.

Kion mi esperis atingi per ĉi tiu artikolo

Mi esperas, ke legante ĉi tiun artikolon ĝis la fino, vi estis inspirita fari ion, kio profitigos vian komunumon aŭ eĉ nur vin mem. Mi instigas vin uzi viajn kapablojn (programado certe estas unu el ili, sed ekzistas aliaj) por ŝanĝi la realon ĉirkaŭ vi por pli bone. Mi povas certigi vin, ke la sperto, kiun vi akiros en la procezo, ne povas esti komparita kun io alia.

Ĝi ankaŭ povas malfermi vojojn, kiujn vi ne atendis – jen kio okazis al mi. Do bonvolu, faru tion, kion vi amas kaj signu sur la mondo! La eĥo de unu sola voĉo povas skui la tutan mondon, do kredu je vi mem.

Jen kelkaj ligiloj rilataj al la projekto:

fonto: www.habr.com

Aldoni komenton