Batxilergoko hirugarren mailan nengoenean (2016ko martxotik abendura), oso haserre nengoen gure eskolako jantokian sortutako egoerarekin.
Lehenengo arazoa: ilaran itxarote denbora gehiegi
Zein arazo ikusi dut? Hau:

Janari-mostradorea ikaslez beteta zegoen, eta denbora luzez itxaron behar izan zuten (bost-hamar minutu). Noski, arazo arrunta da hau, eta zerbitzu-plan bidezkoa: zenbat eta beranduago iritsi, orduan eta beranduago zerbitzatuko zaituzte. Beraz, ulergarria zen zergatik itxaron behar izan zuten.
Bigarren arazoa: zain daudenentzako baldintza desberdinak
Baina, noski, hori ez da guztia; beste arazo larriago bat ere ikusi nuen. Hain larria, ezen azkenean irtenbide bat bilatzen saiatzea erabaki bainuen. Goi mailako ikasleek (hau da, gutxienez maila bat goragokoek) eta irakasleek janari banaketa puntuan ilaran jarraitzeko baimena zuten. Eta bai, lehen hezkuntzako ikasle gisa, ezin zenien ezer esan. Gure eskolak politika zorrotza zuen klase arteko harremanei dagokienez.
Beraz, berriak ginenean, lagunak eta biok lehenengo iristen ginen jantokira, janaria hartzera zihoazela, eta orduan ikasle edo irakasle zaharragoak agertzen ziren eta alde batera bultzatzen gintuzten (jatorrenetako batzuek ilaran egoten uzten ziguten). Hamabost edo hogei minutu gehiago itxaron behar izaten genuen, lehenengo iristen ginen arren.
Bazkaltzeko ordua bereziki gogorra zen guretzat. Egunean zehar, denak (irakasleak, ikasleak, langileak) jantokira joaten ziren presaka, beraz, guretzat, lehen hezkuntzako ikasle gisa, bazkaltzeko ordua ez zen inoiz poza izan.
Arazoari irtenbide konbentzionalak
Baina etorri berriek ez zutenez aukerarik, bi modu asmatu genituen ilaran atzeko aldera ostikoka botatzeko arriskua murrizteko. Lehenengoa, oso goiz iristea zen kafetegira (literalki janaria zerbitzatzen hasi baino lehen). Bigarrena, nahita denbora ping-pongean edo saskibaloian jolasten hiltzea eta oso berandu iristea zen (bazkaldu eta hogei minutura gutxi gorabehera).
Neurri batean funtzionatu zuen. Baina, egia esan, inor ez zegoen kafetegira presaka joateko gogoz zerbait jateko edo besteen janari hotzak amaitzeko, azkenengoen artean zeudelako. Kafetegia hutsik zegoenean abisatuko zigun irtenbide bat behar genuen.
Bikaina izango zen igarle batek etorkizuna esango baligu eta kafetegira noiz joan behar genuen zehazki esango baligu, gehiegi itxaron beharrik ez izateko. Arazoa zen egun bakoitza desberdina zela. Ezin genituen patroiak aztertu eta unerik onena zein zen jakin besterik gabe. Gauzak kafetegian nola zihoazen jakiteko modu bakarra hara oinez joatea zen, eta ibilaldia ehunka metrokoa izan zitekeen, non zauden arabera. Beraz, agertu, ilara begiratu, itzuli eta ildo berean jarraituko bazenuen laburtu arte, denbora asko galduko zenuen. Funtsean, bizitza tamalgarria zen lehen hezkuntzako ikasleentzat, eta ezin zenuen ezer egin horren inguruan.
Eureka – Jangelako Monitorizazio Sistema bat sortzeko ideia
Eta bat-batean, hurrengo ikasturtean (2017an), neure buruari esan nion: "Zer gertatuko litzateke ilararen luzera denbora errealean erakutsiko lukeen (hau da, trafiko-ilarak detektatuko lituzkeen) sistema bat sortuko bagenu?". Arrakasta izango banu, egoera honelakoa izango litzateke: lehen hezkuntzako ikasleek telefonoei begiratu besterik ez lukete egingo uneko pilaketa-mailaren datu eguneratuak lortzeko eta orain joatea zentzuzkoa den erabakitzeko.
Funtsean, sistema honek desberdintasuna arintzen zuen informaziora sarbidearen bidez. Lehen Hezkuntzako ikasleek erabil zezaketen eurek erabakitzeko zer zen onena: ilaran egon eta egon (luzeegia ez bazen) edo denbora modu produktiboagoan eman eta geroago une egokiago bat aukeratu. Ideia honek oso hunkituta utzi ninduen.
Jangelako Monitorizazio Sistema baten Diseinua
2017ko irailean, objektuei orientatutako programazio ikastaro baterako proiektu bat aurkeztu behar nuen, eta sistema hau aurkeztu nuen nire proiektu gisa.

Hasierako sistemaren plana (2017ko iraila)
Ekipamendua hautatzea (2017ko urria)

Erresistentzia gorakor batekin etengailu taktil sinple bat. Hiru ilaratan bost babeski dituen zirkuitu bat, hiru lerrotan ilara bat detektatzeko.
Berrogeita hamar mintz etengailu, Wemos D1 mini ESP8266 plaka bat eta esmaltezko hariak lotzeko asmoa nuen eraztun-pintza batzuk bakarrik eskatu nituen.
Prototipatzea eta garapena (2017ko urria)
Probeta-plaka batekin hasi nintzen, zirkuitua eraiki eta probatu nuen. Materialetan mugatuta nengoenez, bost oineko plaka-sistema batera mugatu nintzen.
C++-n idatzi nuen softwarearentzat, helburu hauek ezarri nituen:
- Lan egin etengabe eta bidali datuak janaria zerbitzatzen den aldietan bakarrik (gosaria, bazkaria, afaria, arratsaldeko askaria).
- Jabetza-ikaskuntzako ereduetan erabil daitezkeen maiztasunetan (adibidez, 10 Hz) kafetegiko ilara/trafiko-ilarak ezagutu.
- Bidali datuak zerbitzarira modu eraginkorrean (paketearen tamaina txikia izan behar da) eta tarte laburretan.
Horiek lortzeko honako hau egin behar izan nuen:
- Erabili RTC (Denbora Errealeko Erlojua) modulua denbora etengabe kontrolatzeko eta kafetegian janaria noiz zerbitzatzen den zehazteko.
- Erabili datu-konpresioa ezkutuaren egoera karaktere bakar batean adierazteko. Datuak bost digituko kode bitar gisa tratatuz, balio desberdinak ASCII karaktereetara mapatu nituen, datu-elementuak irudikatzeko.
- Erabili ThingSpeak (IoT analisi eta online grafiko tresna) HTTP POST eskaerak bidaliz.
Noski, akats batzuk ere bazeuden. Adibidez, ez nekien sizeof() operadoreak char * objektu batentzat 4 itzultzen duela, ez katearen luzera (ez baita array bat, eta beraz, konpiladoreak ez duelako luzera kalkulatzen). Oso nahastuta nengoen zergatik nire HTTP eskaerek URL osoaren lau karaktere bakarrik zituzten!
Parentesiak #define urratsean sartzea ere ahaztu zait, eta horrek emaitza ustekabekoak ekarri ditu. Beno, demagun:
#define _A 2 * 5
int a = _A / 3;Hemen A 3 izatea espero litzateke (10 / 3 = 3), baina egia esan beste modu batera kalkulatu zen: 2 (2 * 5/ 3 = 2).
Azkenik, aurkitu dudan beste akats aipagarri bat zaindari-tenporizadorea berrezartzea izan da. Denbora luzez borrokatu dut arazo honekin. Azkenean, ESP8266 txiparen behe-mailako erregistro batera gaizki sartzen saiatzen ari nintzen (NULL balio bat egitura-erakusle bati akats bat eginez).

Diseinatu eta eraiki nuen oin-euskarria. Argazki hau atera zenerako, bost asteko zapalketa jasan zuen jada.
Hardwarea (oin-oholak)
Ezkutuek jantokiko baldintza gogorrei aurre egin ahal izateko, honako baldintza hauek ezarri nizkien:
- Ezkutuak uneoro giza pisua eusteko bezain sendoak izan behar dira.
- Babesak meheak izan behar dira, ilaran dauden pertsonei oztopatu ez diezaieten.
- Zapaltzean etengailua aktibatu behar da.
- Babesak iragazgaitzak izan behar dira. Jangela beti dago heze.
Baldintza hauek betetzeko, bi geruzako egitura duen diseinu bat aukeratu nuen: laserrez ebakitako akrilikoa oinarri eta goiko estalkiarentzat, eta kortxoa babes-geruza gisa.
Ezkutuaren maketa bat egin dut AutoCAD-en; neurriak 400 x 400 milimetro dira.

Ezkerrean ekoizpenean jarri zen diseinua dago. Eskuinean, Lego antzeko konexioa duen bertsioa.
Bide batez, diseinu egokia alde batera utzi nuen azkenean, finkatze sistema horrekin 40 zentimetro egon behar zirelako babesen artean, eta horrek esan nahi zuen ezin nuela beharrezko distantzia estali (hamar metro baino gehiago).


Etengailu guztiak konektatzeko, esmaltatutako alanbrea erabili nuen —guztira 70 metro baino gehiago! Mintz-etengailu bat jarri nuen panel bakoitzaren erdian. Bi grapa ateratzen ziren alboko zirrikituetatik —bat etengailuaren ezkerrean eta bestea eskuinean—.
Eta iragazgaitza izan zedin, zinta itsaskorra erabili nuen. Zinta itsaskor asko.
Eta dena funtzionatu zuen!
Azaroaren 5etik abenduaren 12ra bitarteko epea

Sistemaren argazki bat – bost panelak ikusgai daude. Elektronika (D1-mini / Bluetooth / RTC) ezkerrean dago.
Azaroaren 5ean, goizeko zortzietan (gosaltzeko orduan), sistemak jantokiaren egoerari buruzko datu eguneratuak biltzen hasi zen. Ezin nuen nire begiek sinesten. Duela bi hilabete eskas, etxean pijama jantzita plan orokorra zirriborratzen ari nintzen, eta hona hemen: sistema osoa ondo funtzionatzen... edo ez.
Software akatsak probak egitean
Noski, sistemak akats ugari zituen. Hona hemen niri arreta berezia jarri diedanak.
Programak ez zuen Wi-Fi gune eskuragarririk bilatzen bezero bat ThingSpeak APIra konektatzen saiatzean. Hori konpontzeko, urrats gehigarri bat gehitu dut Wi-Fi erabilgarritasuna egiaztatzeko.
Konfigurazio funtzioan, behin eta berriz "WiFi.begin" deitzen ari nintzen konexioa ezarri arte. Geroago konturatu nintzen ESP8266 firmwareak konexioa ezartzen duela, eta begin funtzioa Wi-Fi konfigurazioan bakarrik erabiltzen dela. Hau zuzendu nuen funtzioa behin bakarrik deituz, konfigurazioan zehar.
Sortu nuen komando-lerroko interfazea (ordua ezartzeko eta sareko ezarpenak aldatzeko diseinatua) ez zela funtzionatzen inaktibo zegoenean aurkitu nuen (hau da, gosaria, bazkaria, afaria eta arratsaldeko askaria izan ezik). Ohartu nintzen, halaber, erregistrorik gertatzen ez zenean, barneko begizta gehiegi bizkortzen zela, serieko datuak azkarregi irakurtzen zituela. Beraz, atzerapen bat gehitu nuen sistemak espero zirenean komando gehigarriak itxaroteko.
Zaindariari oda
A, eta zaindari-tenporizadorearen arazoaz ari garela, proba-fasean bertan konpondu nuen. Literalki lau egunez pentsatu nezakeen gauza bakarra zen. Hamar minutuko atsedenaldi bakoitzean, kafetegira joaten nintzen kodearen bertsio berria probatzera. Eta banaketa ireki zenean, ordubetez lurrean eserita egoten nintzen, birusa harrapatzen saiatzen. Ez nuen janariaz ere pentsatu! Eskerrik asko gauza on guztiengatik, ESP8266 zaindari-tenporizadorea!
Nola asmatu nuen WDT

Zailtasunak nituen kode zatia
Programa bat aurkitu dut, edo hobeto esanda, Arduinorako luzapen bat, Wdt berrezarpen bat gertatzen denean softwarearen datu-egitura aztertzen duena, konpilatutako kodearen ELF fitxategira sartuz (funtzioen eta erakusleen arteko korrelazioak). Hori egin ondoren, errorea honela konpondu zitekeela ikusi nuen:

Ai, madarikatua! Nork pentsatuko zuen denbora errealeko sistema bateko akatsak konpontzea hain zaila izan zitekeenik? Hala ere, akatsa konpondu nuen, eta akats tonto bat izan zen. Esperientziarik gabe, while begizta bat idatzi nuen, array bat gainezka egiten zuena. Uf! (index++ eta ++index bi gauza oso desberdin dira.)

Hardware arazoak probak egitean
Noski, ekipamendua —oin-euskarriak— ez zen batere egokia. Espero bezala, etengailu bat trabatu egin zen.

Azaroaren 7an, bazkalorduan, hirugarren paneleko etengailua trabatu egin zen.
Goian, ThingSpeak webguneko online grafiko baten pantaila-argazkia sartu dut. Ikus dezakezuenez, zerbait gertatu zen 12:25ak aldera, eta horrek hirugarren zenbakiko zentralita huts egitea eragin zuen. Ondorioz, eztanda-luzera 3 gisa kalkulatu zen (balioa 3 * 100 da), nahiz eta hirugarren zenbakiko zentralitara ez iritsi. Konponketa betegarri gehiago gehitzea izan zen (bai, zinta elektrikoa) etengailuari leku gehiago emateko.
Batzuetan, nire sistema errotik erauzten zen kable bat atean trabatzen zenean. Gurditxoak eta poltsak atetik kafetegira sartzen ziren, eta ateak kablea berarekin arrastaka eramaten zuen ixtean, bere entxufetik ateraz. Kasu horietan, datuen transmisioan bat-bateko eten bat sumatzen nuen eta sistema energia iturritik deskonektatu zutela susmatzen nuen.
Sistemaren inguruko informazioa eskola osoan zabaltzea
Aipatu bezala, ThingSpeak APIa erabili nuen, webguneko datuak grafiko gisa bistaratzen dituena, eta oso erosoa da hori. Funtsean, nire grafikoaren esteka bat argitaratu nuen eskolako Facebook taldean (ordu erdi eman nuen mezu hau bilatzen eta ezin izan nuen aurkitu, oso arraroa). Hala ere, 2017ko azaroaren 5eko mezu bat aurkitu nuen nire Band-ean, eskolako komunitatean:


Erreakzioa bortitza izan zen!
Nire proiektuarekiko interesa pizteko argitaratu ditut hauek. Hala ere, ikustea bera ere nahiko entretenigarria da. Adibidez, hemen argi ikus dezakezue nola jende kopurua nabarmen igo zen 6:02an eta ia zero jaitsi zen 6:10ean.

Goian, bazkaltzeko eta arratsaldeko askaria hartzeko ordutegien grafiko pare bat erantsi ditut. Bitxia bada ere, bazkalorduan jendetza handiena ia beti 12:25ean izaten zen (ilararen luzera bosgarren seinalera iristen zen). Eta arratsaldeko askariak normalean ezohiko jendez gainezka egoten dira (ilararen luzera gehienez seinale bat zen).
Badakizu zer den barregarria? Sistema hau oraindik bizirik dago (https://thingspeak.com/channels/346781)! Lehen erabili nuen kontuan saioa hasi eta hau ikusi dut:

Goiko grafikoan, abenduaren 3an jende kopurua nabarmen txikiagoa izan zela ikusi dut. Eta ez da harritzekoa, igandea baitzen. Egun horretan, ia denak kanpoan daude nonbait, kasu gehienetan igandea baita eskola-eremutik irten zaitezkeen egun bakarra. Ulertzekoa da asteburu batean inor ez ikustea jantokian.
Nola irabazi nuen Koreako Hezkuntza Ministerioaren lehen saria nire proiektuagatik
Ikusten duzuenez, ez nuen proiektu honetan lan egin inolako sari edo aitortzarik bilatzen ari nintzelako. Nire trebetasunak eskolan nuen arazo kroniko bati aplikatu nahi nizkion, besterik gabe.
Hala ere, gure eskolako nutrizionistak, O andereñoak, nire proiektua planifikatzen eta garatzen ari nintzela oso harreman estua izan nuenak, behin galdetu zidan ea jantokiko ideien lehiaketaren berri nuen. Garai hartan, ideia arraro samarra zela pentsatu nuen – jantokiko ideiak lehian. Baina informazio-liburuxka irakurri eta jakin nuen bidalketak egiteko azken eguna azaroaren 24a zela! Beno, beno. Kontzeptua, datuak eta grafikoak azkar findu eta nire eskaera aurkeztu nuen.
Lehiaketaren jatorrizko ideiari egindako aldaketak
Bide batez, azkenean proposatu nuen sistema dagoeneko ezarrita zegoenarekin alderatuta apur bat desberdina zen. Funtsean, nire jatorrizko metodoa (ilararen luzera denbora errealean neurtzea) Koreako eskola handiagoetarako egokitu nuen. Alderatzeko, gure eskolak hirurehun ikasle ditu, eta beste batzuek beste hainbeste dituzte klase bakarrean! Sistema nola eskalatu asmatu behar nuen.
Beraz, eskuzko kontrolean oinarritutako kontzeptu bat proposatu nuen. Koreako eskolek orain otordu-ordutegi zorrotza dute klase guztientzat, beraz, "seinale-erantzun" esparru desberdin bat garatu nuen. Hau seinale-erantzun sistema bat izan behar zuen. Zure aurreko taldeak ilara-luzera jakin batera iristen zenean (hau da, ilara laburtzen zenean), eskuz seinale bat bidaltzen zizuten horman zegoen botoi edo etengailu bat erabiliz. Seinalea telebista-pantaila batera edo LED argien bidez transmititzen zen.
Benetan nahi nuen herrialde osoko eskoletan sortzen ari zen arazo bat konpondu. Nire erabakia are gehiago indartu zen O andereñoaren istorio bat entzun nuenean —orain kontatuko dizuet—. Badirudi eskola handi batzuetan ilara jantokitik kanpo luzatzen dela, kalera hogei edo hogeita hamar metrora, baita neguan ere, inork ezin duelako prozesua behar bezala antolatu. Eta batzuetan, minutu batzuetan, inor ez da agertzen —eta hori ere txarra da. Ikasle kopuru handia duten eskoletan, langileek ia ez dute denborarik denak zerbitzatzeko, nahiz eta otordu-denbora bakar bat ere alferrik galdu ez. Beraz, azken iristen direnek (normalean lehen hezkuntzako ikasleak) ez dute jateko denborarik.
Beraz, nire aplikazioa presaka bidali behar izan nuen arren, oso arretaz pentsatu nuen nola egokitu nezakeen erabilera zabalago baterako.
Lehen saria irabazi dudala dioen mezua!
Laburbilduz, nire proiektua gobernuko funtzionarioei aurkeztera gonbidatu ninduten. Beraz, nire PowerPoint trebetasun guztiak erabili nituen, agertu eta aurkeztu nuen!

Aurkezpenaren hasiera (ezkerreko muturrean – ministroa)
Esperientzia interesgarria izan zen – kafetegi bateko arazo bat konpontzeko zerbait bururatu zitzaidan, eta nolabait lehiaketa irabazi nuen. Eszenatokian zutik ere, pentsatzen nuen behin eta berriz: "Hmm, zer egiten ari naiz hemen?". Baina, oro har, proiektua oso onuragarria izan zen – asko ikasi nuen sistema txertatuen garapenari eta proiektuak benetako bizitzan ezartzeari buruz. Eta noski, sari bat irabazi nuen.
Ondorioa
Badago ironia bat hemen: zenbat lehiaketa eta zientzia azoketan izena eman arren, ez zen inoiz ezer merezirik atera. Baina hemen, aukerak aurkitu ninduen eta emaitza onak eman zituen.
Honek proiektuak hartzera bultzatzen nauten arrazoiei buruz pentsarazi dit. Proiektu bat "irabazteko" edo inguruko munduko arazo erreal bat konpontzeko hasten dut? Azken hori bada zure kasua, aurrera jarraitzera animatzen zaitut. Ikuspegi honekin, bidean ustekabeko aukerak aurkituko dituzu eta ez duzu irabazteko presiorik sentituko; zure motibazio nagusia egiten duzunarekiko duzun grina izango da.
Eta garrantzitsuena: irtenbide egoki bat ezartzea lortzen baduzu, berehala probatu dezakezu benetako munduan. Nire kasuan, plataforma eskola bat zen, baina denborarekin, esperientzia pilatzen da, eta nork daki, agian zure aplikazioa herrialde oso batek edo mundu osoak erabiliko du.
Esperientzia honi buruz gogoratzen dudan bakoitzean, harro sentitzen naiz neure buruaz. Ezin dut azaldu zergatik, baina proiektua gauzatzeko prozesuak plazer handia eman zidan, eta saria abantaila gehigarri bat izan zen. Gainera, pozik nengoen egunero bizitza hondatzen zien ikaskideentzako arazo bat konpontzea lortu nuelako. Egun batean, ikasle bat hurbildu zitzaidan eta esan zidan: "Zure sistema oso erosoa da". Oso pozik nengoen!
Uste dut saririk gabe ere, nire garapenaz harro sentituko nintzatekeela horregatik bakarrik. Agian beste batzuei laguntzeak eman zidan hainbesteko poztasuna... nolanahi ere, proiektuak maite ditut.
Artikulu honekin lortu nahi nuena
Artikulu honen amaierarako zure komunitatearentzat edo zeuretzat bakarrik onuragarria izango den zerbait egiteko inspirazioa jaso duzula espero dut. Zure trebetasunak erabiltzera animatzen zaitut (programazioa horietako bat da, zalantzarik gabe, baina beste batzuk ere badaude) zure inguruko mundua hobera aldatzeko. Ziurtatu dezaket prozesuan lortuko duzun esperientzia paregabea izango dela.
Gainera, espero ez zenituen bide berriak ireki diezazkizuke —horixe gertatu zitzaidan niri—. Beraz, mesedez, egin maite duzuna eta utzi zure arrastoa munduan! Ahots bakar baten oihartzunak mundu osoa astindu dezake, beraz, sinetsi zeure buruan.
Hona hemen proiektuarekin lotutako esteka batzuk:
- )
- albiste baliabideei buruz
Iturria: www.habr.com
