Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Toe ek in my junior jaar van hoërskool was (van Maart tot Desember 2016), was ek baie vererg deur die situasie wat in ons skoolkafeteria ontwikkel het.

Probleem een: om te lank in die ry te wag

Watter probleem het ek waargeneem? Soos hierdie:

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Baie studente het by die verspreidingsarea bymekaargekom en hulle moes lank staan ​​(vyf tot tien minute). Dit is natuurlik 'n algemene probleem en 'n billike diensskema: hoe later jy aankom, hoe later sal jy bedien word. So jy kan verstaan ​​hoekom jy moet wag.

Probleem twee: ongelyke toestande vir diegene wat wag

Maar dit is natuurlik nie al nie; ek moes ook 'n ander, ernstiger probleem waarneem. So ernstig dat ek uiteindelik besluit het om 'n uitweg uit die situasie te probeer vind. Hoërskoolleerlinge (dit wil sê almal wat minstens 'n graad hoër studeer) en onderwysers het na die verspreiding gegaan sonder om in die ry te wag. Ja, ja, en jy as laerskoolleerling kon hulle niks vertel nie. Ons skool het 'n taamlik streng beleid ten opsigte van verhoudings tussen klasse gehad.

Daarom het ek en my vriende, terwyl ons nuwelinge was, heel eerste na die kafeteria gekom, op die punt om kos te kry - en toe het hoërskoolleerlinge of onderwysers verskyn en ons eenvoudig eenkant toe gestoot (sommige, wat vriendeliker was, het ons toegelaat om in te bly ons plek in die ry). Ons moes 'n ekstra vyftien tot twintig minute wag, hoewel ons vroeër as al die ander opgedaag het.

Ons het 'n besonder slegte tyd gehad tydens middagete. Bedags het absoluut almal na die kafeteria gehaas (onderwysers, studente, personeel), so vir ons as laerskoolkinders was middagete nooit 'n vreugde nie.

Algemene oplossings vir die probleem

Maar aangesien die nuwelinge geen keuse gehad het nie, het ons met twee maniere vorendag gekom om die risiko te verminder om agter in die ry gegooi te word. Die eerste is om baie vroeg na die eetkamer te kom (dit wil sê letterlik voordat die kos selfs begin bedien word). Die tweede is om doelbewus tyd dood te maak om tafeltennis of basketbal te speel en baie laat op te daag (ongeveer twintig minute na die begin van middagete).

In 'n mate het dit gewerk. Maar, om eerlik te wees, was niemand gretig om so vinnig as moontlik na die eetkamer te jaag net om te kan eet, of om die koue oorskiet na die ander af te handel nie, want hulle was van die laastes. Ons het 'n oplossing nodig gehad wat ons sou laat weet wanneer die kafeteria nie stampvol was nie.

Dit sal wonderlik wees as een of ander fortuinverteller die toekoms vir ons voorspel en vir ons sê presies wanneer ons na die eetkamer moet gaan, sodat ons nie lank hoef te wag nie. Die probleem was dat alles elke dag anders uitgedraai het. Ons kon nie bloot patrone ontleed en die lieflike plek identifiseer nie. Ons het net een manier gehad om uit te vind hoe dinge in die eetkamer was - om te voet daar te kom, en die paadjie kan etlike honderde meter wees, afhangend van waar jy was. So as jy kom, kyk na die lyn, kom terug en gaan voort in dieselfde gees totdat dit kort raak, sal jy baie tyd mors. Oor die algemeen was die lewe walglik vir die laerklas, en niks kon daaraan gedoen word nie.

Eureka – die idee om 'n Kantienmoniteringstelsel te skep

En skielik, reeds in die volgende akademiese jaar (2017), het ek vir myself gesê: "Wat as ons 'n stelsel maak wat die lengte van die tou in reële tyd sal wys (dit wil sê, 'n verkeersknoop opspoor)?" As ek daarin geslaag het, sou die prentjie soos volg gewees het: laerskoolleerlinge sou bloot na hul fone kyk om bygewerkte data oor die huidige vlak van werklading te kry, en sou gevolgtrekkings maak oor of dit sin maak dat hulle nou gaan .

In wese het hierdie skema ongelykheid uitgestryk deur toegang tot inligting. Met die hulp daarvan kon laerskoolkinders self kies wat vir hulle die beste is om te doen – in die ry gaan staan ​​(as dit nie te lank was nie) of tyd nuttiger deurbring en later ’n meer gepaste oomblik kies. Ek was baie opgewonde oor hierdie gedagte.

Ontwerp van 'n Kantien-moniteringstelsel

In September 2017 moes ek 'n projek vir 'n objekgeoriënteerde programmeringskursus indien, en ek het hierdie stelsel as my projek ingedien.

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Aanvanklike stelselplan (September 2017)

Toerustingkeuse (Oktober 2017)

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

'n Eenvoudige tasbare skakelaar met 'n optrekweerstand. Skema met vyf skilde in drie rye om die tou langs drie lyne te herken

Ek het net vyftig membraanskakelaars bestel, 'n Wemos D1-minibord gebaseer op ESP8266, en 'n paar ringklemme waaraan ek beplan het om die geëmailleerde drade vas te maak.

Prototipering en ontwikkeling (Oktober 2017)

Ek het met 'n broodbord begin - 'n stroombaan daarop aanmekaargesit en dit getoets. Ek was beperk in die aantal materiaal, so ek het myself beperk tot 'n stelsel met vyf voetplanke.

Vir die sagteware wat ek in C++ geskryf het, het ek die volgende doelwitte gestel:

  1. Werk deurlopend en stuur data slegs gedurende periodes wanneer kos bedien word (ontbyt, middagete, aandete, middaghappie).
  2. Herken die tou-/verkeersituasie in die kafeteria teen sulke frekwensies dat die data dan in masjienleermodelle gebruik kan word (sê, 10 Hz).
  3. Stuur data na die bediener op 'n doeltreffende manier (pakkiegrootte moet klein wees) en met kort tussenposes.

Om dit te bereik, moes ek die volgende doen:

  1. Gebruik die RTC (Real Time Clock) module om die tyd deurlopend te monitor en te bepaal wanneer kos in die kafeteria bedien word.
  2. Gebruik 'n datakompressiemetode om die skildtoestand in een karakter aan te teken. Deur die data as 'n vyf-bis-binêre kode te hanteer, het ek die verskillende waardes na ASCII-karakters gekarteer sodat hulle die data-elemente verteenwoordig.
  3. Gebruik ThingSpeak ('n IoT-instrument vir ontleding en aanlyn kartering) deur HTTP-versoeke met die POST-metode te stuur.

Natuurlik was daar 'n paar goggas. Ek het byvoorbeeld nie geweet dat die sizeof( )-operateur die waarde 4 vir 'n char *-voorwerp terugstuur nie, en nie die lengte van die string nie (omdat dit nie 'n skikking is nie en dus die samesteller nie die lengte bereken nie) en was baie verbaas hoekom my HTTP-versoeke slegs vier karakters van alle URL's bevat het!

Ek het ook nie hakies by die #definieer stap ingesluit nie, wat tot onverwagte resultate gelei het. Wel kom ons sê:

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

Hier sou mens verwag dat A gelyk sou wees aan 3 (10 / 3 = 3), maar in werklikheid is dit anders bereken: 2 (2 * 5/ 3 = 2).

Ten slotte, nog 'n noemenswaardige fout wat ek hanteer het, was die Herstel op die waghond-timer. Ek het baie lank met hierdie probleem gesukkel. Soos dit later geblyk het, het ek op die verkeerde manier probeer om toegang tot die laevlak-register op die ESP8266-skyfie te kry (ek het per ongeluk 'n NULL-waarde vir 'n wyser na 'n struktuur ingevoer).

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

’n Voetskild wat ek ontwerp en gebou het. Toe die foto geneem is, het hy reeds vyf weke se vertrapping oorleef

Hardeware (voetplanke)

Om te verseker dat die skilde die strawwe toestande van die kantien kon oorleef, het ek die volgende vereistes daarvoor gestel:

  • Skilde moet sterk genoeg wees om te alle tye menslike gewig te dra.
  • Die skilde moet dun wees om nie mense in die ry te steur nie.
  • Die skakelaar moet geaktiveer word wanneer daarop getrap word.
  • Skilde moet waterdig wees. Die eetkamer is altyd klam.

Om aan hierdie vereistes te voldoen, het ek op 'n tweelaagontwerp besluit - lasergesnyde akriel vir die basis en boonste deklaag, en kurk as 'n beskermende laag.

Ek het die skilduitleg in AutoCAD gemaak; afmetings - 400 by 400 millimeter.

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Aan die linkerkant is die ontwerp wat in produksie gegaan het. Aan die regterkant is 'n opsie met 'n Lego-tipe verbinding

Terloops, ek het uiteindelik die regterkantse ontwerp laat vaar, want met so 'n fiksasiestelsel het dit geblyk dat daar 40 sentimeter tussen die skilde moes wees, wat beteken dat ek nie die vereiste afstand (meer as tien meter) kon aflê nie.

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Om al die skakelaars aan te sluit het ek emaljedrade gebruik - in totaal het hulle meer as 70 meter geneem! Ek het 'n membraanskakelaar in die middel van elke skild geplaas. Twee knippe het by die sygleuwe uitgesteek – links en regs van die skakelaar.

Wel, vir waterdigting het ek elektriese band gebruik. Baie elektriese band.

En alles het gewerk!

Tydperk van die vyfde November tot die twaalfde Desember

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Foto van die stelsel - al vyf skilde is hier sigbaar. Aan die linkerkant is die elektronika (D1-mini / Bluetooth / RTC)

Op XNUMX November om agtuur die oggend (ontbyttyd) het die stelsel huidige data oor die situasie in die eetkamer begin insamel. Ek kon my oë nie glo nie. Net twee maande gelede was ek besig om die algemene skema uit te skets, sit by die huis in my slaapklere, en hier is ons, die hele stelsel werk sonder 'n haakplek... of nie.

Sagtewarefoute tydens toetsing

Natuurlik was daar baie foute in die stelsel. Hier is die wat ek onthou.

Die program het nie gekyk vir beskikbare Wi-Fi-punte toe hy probeer het om die kliënt aan die ThingSpeak API te koppel nie. Om die fout reg te stel, het ek 'n bykomende stap bygevoeg om die beskikbaarheid van Wi-Fi na te gaan.

In die opstelfunksie het ek herhaaldelik "WiFi.begin" genoem totdat 'n verbinding verskyn het. Later het ek uitgevind dat die verbinding deur die ESP8266-firmware tot stand gebring word, en die beginfunksie word slegs gebruik wanneer Wi-Fi opgestel word. Ek het die situasie reggestel deur die funksie net een keer tydens opstelling te bel.

Ek het ontdek dat die opdragreël-koppelvlak wat ek geskep het (dit was bedoel om die tyd te stel, netwerkinstellings te verander) nie in rus werk nie (dit wil sê buite ontbyt, middagete, aandete en middagtee). Ek het ook gesien dat wanneer geen logging plaasvind nie, die interne lus buitensporig versnel en die reeksdata word te vinnig gelees. Daarom stel ek 'n vertraging sodat die stelsel wag vir bykomende opdragte om te arriveer wanneer dit verwag word.

Ode aan die waghond

O, en nog een ding oor daardie probleem met die waghond-timer - ek het dit presies opgelos op die toetsstadium in "veld" toestande. Sonder oordrywing was dit al waaraan ek vir vier dae gedink het. Elke pouse (wat tien minute duur) het ek na die kafeteria gehaas net om die nuwe weergawe van die kode te probeer. En toe die verspreiding oopmaak, het ek vir 'n uur op die vloer gesit en probeer om die gogga te vang. Ek het nie eers aan kos gedink nie! Dankie vir al die goeie dinge, ESP8266 Waghond!

Hoe ek WDT uitgevind het

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Kodebrokkie waarmee ek gesukkel het

Ek het 'n program, of eerder 'n uitbreiding vir Arduino, gevind wat die datastruktuur van die sagteware ontleed wanneer 'n Wdt-terugstelling plaasvind, wat toegang tot die ELF-lêer van die saamgestelde kode kry (korrelasies tussen funksies en wysers). Toe dit gedoen is, het dit geblyk dat die fout soos volg uitgeskakel kan word:

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Vervloek dit! Wel, wie het geweet dat dit so moeilik was om foute in 'n intydse stelsel reg te stel! Ek het egter die gogga verwyder, en dit blyk 'n dom gogga te wees. Weens my onervarenheid het ek 'n while-lus geskryf waarin die skikking verby die perke gegaan het. Ugh! (indeks++ en ++indeks is twee groot verskille).

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Probleme met hardeware tydens toetsing

Natuurlik was die toerusting, dit wil sê die voetskerms, ver van ideaal. Soos u kan verwag, is een van die skakelaars vas.

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Op XNUMX November, tydens middagete, het die skakelaar op die derde paneel vasgesit

Hierbo het ek 'n skermskoot van 'n aanlyn grafiek van die ThingSpeak webwerf verskaf. Soos jy kan sien, het iets omstreeks 12:25 gebeur, waarna skild nommer drie onklaar geraak het. As gevolg hiervan is die toulengte as 3 bepaal (die waarde is 3 * 100), selfs al het dit in werklikheid nie die derde skild bereik nie. Die oplossing was dat ek meer vulling (ja, kleefband) bygevoeg het om die skakelaar meer ruimte te gee.

Soms is my stelsel letterlik ontwortel as die draad in die deur vasgehaak het. Karre en pakkies is deur hierdie deur tot in die eetkamer gedra, sodat dit die draad saamgedra het, dit toegemaak en uit die sok getrek het. In sulke gevalle het ek 'n onverwagse fout in die vloei van data opgemerk en geraai dat die stelsel van die kragbron ontkoppel is.

Verspreiding van inligting oor die stelsel regdeur die skool

Soos reeds genoem, het ek die ThingSpeak API gebruik, wat data op die webwerf in die vorm van grafieke visualiseer, wat baie gerieflik is. Oor die algemeen het ek basies net 'n skakel na my skedule in die skool se Facebook-groep geplaas (ek het vir 'n halfuur na hierdie plasing gesoek en kon dit nie kry nie - baie vreemd). Maar ek het 'n plasing gekry op my Band, 'n skoolgemeenskap, gedateer 2017 November XNUMX:

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Die reaksie was wild!

Ek het hierdie plasings geplaas om belangstelling in my projek aan te wakker. Maar om net na hulle te kyk, is op sigself nogal vermaaklik. Kom ons sê jy kan hier duidelik sien dat die aantal mense skerp gespring het om 6:02 en feitlik tot nul gedaal het met 6:10.

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Hierbo het ek 'n paar grafieke aangeheg wat verband hou met middagete en middagtee. Dit is interessant om daarop te let dat die piek van werklading tydens middagete byna altyd om 12:25 plaasgevind het (die tou het die vyfde skild bereik). En vir 'n middaghappie is dit oor die algemeen onkenmerkend om 'n groot skare mense te hê (die tou is hoogstens een bord lank).

Weet jy wat is snaaks? Hierdie stelsel leef nog (https://thingspeak.com/channels/346781)! Ek het aangemeld by die rekening wat ek voorheen gebruik het en dit gesien:

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

In die grafiek hierbo het ek gesien dat die toestroming van mense op die derde Desember aansienlik minder was. En geen wonder nie – dit was Sondag. Op hierdie dag gaan omtrent almal iewers heen, want in die meeste gevalle kan jy net Sondag die skoolterrein verlaat. Dit is duidelik dat jy nie die naweek 'n lewende siel in die kafeteria sal sien nie.

Hoe ek die eerste prys van die Koreaanse Ministerie van Onderwys vir my projek ontvang het

Soos u self kan sien, het ek nie aan hierdie projek gewerk nie, want ek het probeer om 'n soort toekenning of erkenning te verdien. Ek wou net my vaardighede gebruik om 'n chroniese probleem op te los waarmee ek op skool te kampe gehad het.

Ons skoolvoedingkundige, juffrou O, met wie ek baie geheg geraak het terwyl ek my projek beplan en ontwikkel het, het my egter eendag gevra of ek weet van 'n kompetisie vir kafeteria-idees. Toe dink ek dis een of ander vreemde idee om idees vir die eetkamer te vergelyk. Maar ek het die inligtingsboekie gelees en geleer dat die projek teen 24 November ingedien moet word! Wel wel. Ek het vinnig die konsep, data en grafika gefinaliseer en die aansoek gestuur.

Veranderinge aan die oorspronklike idee vir die kompetisie

Terloops, die stelsel wat ek uiteindelik voorgestel het, was effens anders as die een wat reeds geïmplementeer is. In wese het ek my oorspronklike metode (meet toulengte in reële tyd) aangepas vir baie groter Koreaanse skole. Ter vergelyking: in ons skool is daar driehonderd studente, en in sommige ander is daar soveel mense in net een klas! Ek moes uitvind hoe om die stelsel te skaal.

Daarom het ek 'n konsep voorgestel wat meer gebaseer was op "handmatige" beheer. Deesdae het Koreaanse skole reeds 'n maaltydplan vir alle klasse ingestel, wat streng nagekom word, so ek het 'n ander "sein-respons" tipe raamwerk gebou. Die idee hier was dat wanneer die groep wat die kafeteria voor jou besoek 'n sekere limiet in die lengte van die lyn bereik het (dit wil sê, die lyn kort geword het), hulle met die hand 'n sein aan jou sou stuur deur 'n knoppie te gebruik of die muur aan te skakel. . Die sein sal na die TV-skerm of deur LED-gloeilampe oorgedra word.

Ek wou net regtig 'n probleem oplos wat in alle skole in die land ontstaan ​​het. Ek was nog meer gesterk in my voorneme toe ek 'n storie van juffrou O hoor - ek sal jou nou vertel. Dit blyk dat in sommige groot skole die lyn verby die kafeteria strek, twintig tot dertig meter in die straat, selfs in die winter, want niemand kan die proses behoorlik organiseer nie. En soms gebeur dit dat daar vir 'n paar minute glad niemand in die eetkamer verskyn nie - en dit is ook erg. In skole met groot getalle studente het personeel skaars tyd om almal te bedien al word nie 'n enkele minuut se etenstyd vermors nie. Daarom het diegene wat die laaste is wat by die uitdeling opdaag (gewoonlik laerskoolleerlinge), eenvoudig nie genoeg tyd om te eet nie.

Dus, al moes ek my aansoek inderhaas indien, het ek baie mooi gedink oor hoe ek dit vir wyer gebruik kan aanpas.

Boodskap dat ek die eerste prys gewen het!

Lang storie kort, ek is genooi om my projek aan staatsamptenare te kom aanbied. So ek het al my Power Point-talente aan die werk gesit en kom aanbied!

Die verhaal van 'n Koreaanse skoolseun wat 'n prys van die ministerie ontvang het vir 'n tou-moniteringstelsel

Begin van die aanbieding (heel links - predikant)

Dit was 'n interessante ervaring – ek het net iets vir die kafeteria-probleem uitgedink, en op een of ander manier onder die wenners van die kompetisie beland. Selfs toe ek op die verhoog gestaan ​​het, het ek aanhou dink: "Hmm, wat doen ek selfs hier?" Maar oor die algemeen het hierdie projek vir my groot voordeel gebring - ek het baie geleer oor die ontwikkeling van ingebedde stelsels en die implementering van projekte in die werklike lewe. Wel, ek het natuurlik 'n prys ontvang.

Gevolgtrekking

Hier is ’n mate van ironie: maak nie saak hoeveel ek aan allerhande kompetisies en wetenskapskoue deelgeneem het waarvoor ek doelbewus ingeskryf het nie, niks goeds het daarvan gekom nie. En toe vind die geleentheid my net en gee my goeie resultate.

Dit het my laat dink oor die redes wat my motiveer om projekte aan te pak. Hoekom begin ek werk - om te "wen" of om 'n werklike probleem in die wêreld om my op te los? As die tweede motief in jou geval aan die werk is, moedig ek jou sterk aan om nie die projek te laat vaar nie. Met hierdie benadering tot besigheid, kan jy onverwagte geleenthede langs die pad ontmoet en sal nie druk voel van die behoefte om te wen nie – jou hoofmotiveerder sal passie vir jou besigheid wees.

En die belangrikste: as jy daarin slaag om 'n ordentlike oplossing te implementeer, kan jy dit dadelik in die regte wêreld probeer. In my geval was die platform 'n skool, maar met verloop van tyd hoop ervaring op, en wie weet - miskien sal jou aansoek deur die hele land of selfs die hele wêreld gebruik word.

Elke keer as ek aan hierdie ervaring dink, is ek soort van trots op myself. Ek kan nie verduidelik hoekom nie, maar die proses om die projek te implementeer het my eenvoudig groot plesier gebring, en die prys was 'n bykomende bonus. Daarbenewens was ek bly dat ek 'n probleem vir my klasmaats kon oplos wat hul lewens elke dag verwoes het. Op 'n dag het een van die studente na my toe gekom en gesê: "Jou stelsel is baie gerieflik." Ek was in die sewende hemel!
Ek dink selfs sonder enige toekennings sal ek trots voel op my ontwikkeling hiervoor alleen. Miskien was dit om ander te help wat my soveel bevrediging gebring het ... oor die algemeen is ek mal oor projekte.

Wat ek gehoop het om met hierdie artikel te bereik

Ek hoop dat deur hierdie artikel tot die einde te lees, jy geïnspireer is om iets te doen wat jou gemeenskap of selfs net jouself sal bevoordeel. Ek moedig jou aan om jou vaardighede te gebruik (programmering is sekerlik een daarvan, maar daar is ander) om die werklikheid om jou ten goede te verander. Ek kan jou verseker dat die ervaring wat jy in die proses sal opdoen, nie met enigiets anders vergelyk kan word nie.

Dit kan ook paaie oopmaak wat jy nie verwag het nie – dis wat met my gebeur het. So asseblief, doen waarvoor jy lief is en maak jou merk op die wêreld! Die eggo van een enkele stem kan die hele wêreld skud, so glo in jouself.

Hier is 'n paar skakels wat met die projek verband hou:

Bron: will.com

Voeg 'n opmerking