Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Nalika aku isih SMP (wiwit Maret nganti Desember 2016), aku jengkel banget karo kahanan sing tuwuh ing kantin sekolahku.

Masalah siji: ngenteni ing baris dawa banget

Masalah apa sing aku diamati? Kaya iki:

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Akeh siswa sing padha kumpul ing area distribusi lan kudu ngadeg suwe (lima nganti sepuluh menit). Mesthine, iki masalah umum lan skema layanan sing adil: mengko sampeyan teka, mengko sampeyan bakal dilayani. Supaya sampeyan bisa ngerti kenapa sampeyan kudu ngenteni.

Masalah loro: kahanan sing ora padha kanggo sing nunggu

Nanging, mesthi, ora kabeh; Aku uga kudu mirsani masalah liyane sing luwih serius. Dadi serius sing pungkasanipun aku mutusaké kanggo nyoba kanggo golek dalan metu saka kahanan. Siswa sekolah menengah (yaiku saben wong sing sinau paling ora kelas sing luwih dhuwur) lan guru menyang distribusi tanpa ngenteni antrian. Ya, ya, lan sampeyan, minangka siswa sekolah dasar, ora bisa ngomong apa-apa. Sekolah kita duwe kabijakan sing cukup ketat babagan hubungan antarane kelas.

Mula, aku lan kanca-kanca, nalika isih anyar, teka ing kantin luwih dhisik, arep njaluk panganan - banjur siswa utawa guru sekolah menengah muncul lan mung nyingkirake (sawetara, sing luwih apik, ngidini kita tetep ing panggonan kita ing baris). Kita kudu ngenteni ekstra limalas nganti rong puluh menit, sanajan kita teka luwih awal tinimbang wong liya.

We wis wektu utamané ala ing lunchtime. Ing wayah awan, pancen kabeh wong kesusu menyang kantin (guru, siswa, staf), mula kanggo kita, minangka bocah sekolah dasar, nedha awan ora nate nyenengake.

Solusi umum kanggo masalah

Nanging wiwit wong anyar ora duwe pilihan, kita teka karo rong cara kanggo ngurangi risiko kang di buwang menyang mburi baris. Sing pertama yaiku teka ing ruang makan awal banget (yaiku, sadurunge panganan diwiwiti). Kapindho yaiku kanthi sengaja mateni wektu main ping-pong utawa basket lan teka telat (udakara rong puluh menit sawise nedha awan).

Kanggo sawetara ombone makarya. Nanging, sejujure, ora ana sing kepengin cepet-cepet menyang ruang makan mung kanggo mangan, utawa ngrampungake sisa-sisa sing adhem sawise liyane, amarga dheweke kalebu sing pungkasan. We needed solusi sing bakal supaya kita ngerti nalika kantin ora rame.

Iku bakal gedhe yen sawetara peramal mbadek mangsa kanggo kita lan marang kita persis nalika arep menyang kamar panedhaan, supaya kita ora kudu ngenteni dawa. Masalahe yaiku saben dina kabeh dadi beda. Kita ora bisa mung nganalisa pola lan ngenali titik manis. Kita mung duwe siji cara kanggo mangerteni apa ana ing kamar panedhaan - tekan ing kono kanthi mlaku, lan dalan bisa nganti pirang-pirang atus meter, gumantung ing ngendi sampeyan. Dadi yen teka, katon ing baris, bali lan terus ing semangat sing padha nganti dadi cendhak, sampeyan bakal mbuwang akeh wektu. Umumé, urip njijiki kanggo kelas SD, lan ora ana sing bisa ditindakake.

Eureka - gagasan nggawe Sistem Pemantauan Kantin

Lan dumadakan, wis ing taun akademik sabanjuré (2017), aku kandha marang aku: "Apa yen kita nggawe sistem sing bakal nuduhake dawa antrian ing wektu nyata (yaiku, ndeteksi macet)?" Yen aku wis sukses, gambar kasebut bakal kaya mangkene: para siswa sekolah dasar mung bakal nglirik telpon kanggo entuk data paling anyar babagan tingkat beban kerja saiki, lan bakal nggawe kesimpulan babagan apa sing kudu ditindakake saiki. .

Ateges, skema iki ngrampungake ketimpangan liwat akses menyang informasi. Kanthi bantuan, bocah-bocah sekolah dhasar bisa milih dhewe apa sing paling apik kanggo dheweke - pindhah lan ngadeg ing baris (yen ora suwe banget) utawa nglampahi wektu sing luwih migunani, lan banjur milih wektu sing luwih cocog. Aku bungah banget dening pikiran iki.

Perancangan Sistem Monitoring Kantin

Ing September 2017, aku kudu ngirim proyek kanggo kursus pemrograman berorientasi obyek, lan aku ngirim sistem iki minangka proyekku.

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Rencana Sistem Awal (September 2017)

Pilihan peralatan (Oktober 2017)

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

A ngalih tactile prasaja karo resistor pull-up. Skema kanthi limang tameng ing telung larik kanggo ngenali antrian ing telung baris

Aku mung dhawuh sèket ngalih membran, Papan mini Wemos D1 adhedhasar ESP8266, lan sawetara Clamps ring sing aku ngrancang masang kabel enamel.

Prototyping lan pangembangan (Oktober 2017)

Aku miwiti karo breadboard - nglumpuk sirkuit ing lan dites. Aku diwatesi ing jumlah bahan, mula aku mbatesi sistem kanthi limang footboards.

Kanggo piranti lunak sing aku tulis ing C ++, aku nyetel gol ing ngisor iki:

  1. Bisa terus-terusan lan ngirim data mung sajrone wektu nalika panganan diwenehake (sarapan, nedha awan, nedha bengi, cemilan sore).
  2. Ngenali kahanan antrian / lalu lintas ing kantin ing frekuensi kaya data sing banjur bisa digunakake ing model machine learning (ngomong, 10 Hz).
  3. Kirim data menyang server kanthi cara sing efisien (ukuran paket kudu cilik) lan kanthi interval sing cendhak.

Kanggo entuk wong-wong mau, aku kudu nindakake ing ngisor iki:

  1. Gunakake modul RTC (Jam Wektu Nyata) kanggo terus-terusan ngawasi wektu lan nemtokake nalika panganan diwenehake ing kantin.
  2. Gunakake cara kompresi data kanggo ngrekam status tameng ing siji karakter. Nambani data minangka kode biner lima-bit, aku nggawe peta macem-macem nilai kanggo karakter ASCII supaya padha makili unsur data.
  3. Gunakake ThingSpeak (alat IoT kanggo analytics lan charting online) kanthi ngirim panjalukan HTTP nggunakake metode POST.

Mesthi, ana sawetara kewan omo. Contone, aku ora ngerti manawa operator sizeof () ngasilake nilai 4 kanggo obyek char *, lan dudu dawa senar (amarga dudu array lan mulane, kompiler ora ngetung dawa) lan kaget banget kenapa panjaluk HTTPku mung ngemot papat karakter saka kabeh URL!

Aku uga ora nyakup tanda kurung ing langkah #define, sing nyebabake asil sing ora dikarepke. Ayo ngomong:

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

Kene siji bakal nyana sing A bakal padha karo 3 (10/3 = 3), nanging nyatane wis diwilang beda: 2 (2 * 5/3 = 2).

Pungkasan, bug liyane sing kudu ditindakake yaiku Reset ing timer pengawas. Aku berjuang karo masalah iki kanggo dangu banget. Nalika iku nguripake metu mengko, aku nyoba kanggo ngakses pendaptaran tingkat kurang ing chip ESP8266 ing cara salah (kanthi salah ngetik Nilai NULL kanggo pitunjuk kanggo struktur).

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Perisai sikil sing dakrancang lan dibangun. Nalika foto dijupuk, dheweke wis slamet limang minggu saka trampling

Hardware (papan kaki)

Kanggo mesthekake yen tameng kasebut bisa urip ing kahanan kasar ing kantin, aku nyetel syarat ing ngisor iki:

  • Tameng kudu cukup kuwat kanggo ndhukung bobot manungsa ing kabeh wektu.
  • Perisai kudu tipis supaya ora ngganggu wong sing baris.
  • Ngalih kudu diaktifake nalika diinjak.
  • Tameng kudu anti banyu. Kamar panedhaan tansah lembab.

Kanggo nyukupi syarat kasebut, aku nggunakake desain rong lapisan - akrilik laser-cut kanggo dhasar lan tutup ndhuwur, lan gabus minangka lapisan protèktif.

Aku nggawe tata letak tameng ing AutoCAD; dimensi - 400 dening 400 milimeter.

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Ing sisih kiwa ana desain sing dadi produksi. Ing sisih tengen ana pilihan karo sambungan Lego-jinis

Miturut cara, aku pungkasanipun nilar desain tangan tengen amarga karo sistem fiksasi kaya iku kudu ana 40 centimeters antarane tameng, kang tegese aku ora bisa nutupi jarak sing dibutuhake (luwih saka sepuluh meter).

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Kanggo nyambungake kabeh switch aku nggunakake kabel enamel - total njupuk luwih saka 70 meter! Aku sijine switch membran ing tengah saben tameng. Loro klip protruded saka slot sisih - ing sisih kiwa lan ing sisih tengen ngalih.

Inggih, kanggo waterproofing aku nggunakake tape listrik. Kathah pita listrik.

Lan kabeh bisa!

Periode saka kaping lima November nganti kaping rolas Desember

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Foto sistem - kabeh limang tameng katon ing kene. Ing sisih kiwa ana elektronik (D1-mini / Bluetooth / RTC)

Tanggal XNUMX November jam wolu esuk (wektu sarapan), sistem wiwit ngumpulake data saiki babagan kahanan ing ruang makan. Aku ora percaya mripatku. Mung rong sasi kepungkur aku nggambar skema umum, lungguh ing omah nganggo piyama, lan ing kene, kabeh sistem bisa digunakake tanpa alangan ... utawa ora.

Kewan omo piranti lunak sajrone tes

Mesthi, ana akeh kewan omo ing sistem. Iki sing aku eling.

Program kasebut ora mriksa titik Wi-Fi sing kasedhiya nalika nyoba nyambungake klien menyang API ThingSpeak. Kanggo ndandani kesalahan, aku nambahake langkah tambahan kanggo mriksa kasedhiyan Wi-Fi.

Ing fungsi persiyapan, aku bola-bali disebut "WiFi.begin" nganti sambungan katon. Mengko aku ketemu metu sing sambungan ditetepake dening perangkat kukuh ESP8266, lan fungsi wiwitan mung digunakake nalika nyetel Wi-Fi. Aku mbenerake kahanan kanthi nelpon fungsi mung sapisan, sajrone persiyapan.

Aku katutup sing antarmuka baris printah aku digawe (iku dimaksudaké kanggo nyetel wektu, ngganti setelan jaringan) ora bisa ing liyane (yaiku, njaba nedha isuk, nedha awan, nedha bengi lan afternoon teh). Aku uga weruh yen ora ana logging, daur ulang internal cepet banget lan data serial diwaca kanthi cepet. Mulane, aku nyetel wektu tundha supaya sistem ngenteni printah tambahan teka nalika samesthine.

Ode kanggo watchdog

Oh, lan siji liyane babagan masalah kasebut karo timer pengawas - aku ngrampungake kanthi tepat ing tahap tes ing kahanan "lapangan". Tanpa exaggeration, iki kabeh aku mikir bab patang dina. Saben istirahat (sepuluh menit) aku kesusu menyang kantin kanggo nyoba kode versi anyar. Lan nalika distribusi dibukak, aku lungguh ing lantai kanggo jam, nyoba kanggo nyekel bug. Aku malah ora mikir babagan panganan! Matur nuwun kanggo kabeh sing apik, ESP8266 Watchdog!

Carane aku ngerti WDT

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Kode potongan aku berjuang karo

Aku ketemu program, utawa rodo extension kanggo Arduino, sing nganalisa struktur data saka piranti lunak nalika Wdt-reset ana, ngakses file ELF kode nyawiji (gathukane antarane fungsi lan penunjuk). Nalika iki rampung, ternyata kesalahan kasebut bisa diilangi kaya ing ngisor iki:

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

sial! Ya, sapa ngerti yen ndandani bug ing sistem wektu nyata angel banget! Nanging, aku mbusak bug, lan ternyata bug bodho. Amarga ora pengalaman, aku nulis sawetara wektu ing ngendi array kasebut ngluwihi wates. Ugh! (indeks ++ lan ++ indeks minangka rong bedane gedhe).

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Masalah karo hardware sak testing

Mesthine, peralatan, yaiku, tameng sikil, adoh saka ideal. Minangka sampeyan bisa nyana, salah siji ngalih macet.

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Ing XNUMX November, nalika nedha awan, saklar ing panel katelu macet

Ing ndhuwur aku wis nyedhiyakake gambar grafik online saka situs web ThingSpeak. Kaya sing sampeyan ngerteni, ana kedadeyan sekitar jam 12:25, sawise tameng nomer telu gagal. Akibaté, dawa antrian ditemtokake dadi 3 (nilai 3 * 100), sanajan nyatane ora tekan tameng katelu. Ndandani aku ditambahake padding liyane (ya, tape tape) kanggo menehi ngalih kamar liyane.

Kadhangkala sistem saya dicabut nalika kabel kejiret ing lawang. Gerobak lan paket digawa liwat lawang iki menyang kamar panedhaan, supaya kabel digawa bebarengan karo, nutup, lan narik metu saka soket. Ing kasus kaya mengkono, aku ngeweruhi Gagal sing ora dikarepke ing aliran data lan guessed sing sistem iki pedhot saka sumber daya.

Penyebaran informasi babagan sistem ing saindhenging sekolah

Kaya sing wis kasebut, aku nggunakake API ThingSpeak, sing nggambarake data ing situs kasebut ing wangun grafik, sing trep banget. Umumé, aku mung ngirim link menyang jadwalku ing grup Facebook sekolah (aku nelusuri kirim iki setengah jam lan ora bisa nemokake - aneh banget). Nanging aku nemokake kiriman ing Bandku, komunitas sekolah, tanggal 2017 November XNUMX:

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Reaksi kasebut liar!

Aku ngirim kiriman iki kanggo narik minat proyekku. Nanging, sanajan mung ndeleng dheweke cukup nyenengake. Contone, sampeyan bisa ndeleng kanthi jelas yen jumlah wong mlumpat kanthi cepet ing 6:02 lan meh nol ing 6:10.

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Ing ndhuwur aku wis nempelake sawetara grafik sing ana hubungane karo nedha awan lan teh sore. Iku menarik kanggo Wigati sing puncak workload ing lunchtime meh tansah kedaden ing 12:25 (antrean tekan tameng kaping lima). Lan kanggo cemilan sore iku umume ora umum yen akeh wong akeh (antrean paling akeh siji papan).

Sampeyan ngerti apa sing lucu? Sistem iki isih urip (https://thingspeak.com/channels/346781)! Aku mlebu menyang akun sing digunakake sadurunge lan ndeleng iki:

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Ing grafik ing ndhuwur, aku weruh yen ing kaping telu ing Desember influx wong saya kurang. Lan ora wonder - iku dina Minggu. Ing dina iki, meh kabeh wong menyang ngendi wae, amarga ing paling kasus mung dina Minggu sampeyan bisa ninggalake latar sekolah. Cetha yen sampeyan ora bakal weruh jiwa urip ing kantin ing akhir minggu.

Kepiye carane aku nampa hadiah pisanan saka Kementerian Pendidikan Korea kanggo proyekku

Minangka sampeyan bisa ndeleng dhewe, aku ora nggarap proyek iki amarga aku nyoba entuk sawetara penghargaan utawa pangenalan. Aku mung pengin nggunakake katrampilan kanggo ngatasi masalah kronis sing aku diadhepi ing sekolah.

Nanging, ahli gizi sekolah kita, Miss O, sing aku dadi cedhak banget nalika ngrancang lan ngembangake proyekku, sawijining dina takon yen aku ngerti babagan kompetisi kanggo ide kantin. Banjur aku panginten iku sawetara jenis idea aneh kanggo mbandhingaké gagasan kanggo kamar panedhaan. Nanging aku maca buklet informasi lan sinau manawa proyek kasebut kudu diajukake tanggal 24 November! Inggih nggih. Aku cepet rampung konsep, data lan grafis lan ngirim aplikasi.

Owah-owahan menyang ide asli kanggo kompetisi

Miturut cara, sistem sing pungkasane dakusulake rada beda karo sing wis ditindakake. Ateges, aku ngganti cara asliku (ngukur dawa antrian ing wektu nyata) kanggo sekolah Korea sing luwih gedhe. Kanggo mbandhingake: ing sekolah kita ana telung atus siswa, lan ing sawetara liyane ana akeh wong ing siji kelas! Aku kudu ngerti carane ukuran sistem.

Mulane, aku ngusulake konsep sing luwih adhedhasar kontrol "manual". Saiki, sekolah Korea wis ngenalake rencana meal kanggo kabeh kelas, sing ditindakake kanthi ketat, mula aku nggawe kerangka jinis "sinyal-respon" sing beda. Ide ing kene yaiku yen grup sing ngunjungi kantin ing ngarep sampeyan wis tekan watesan tartamtu ing dawa baris (yaiku, garis dadi cendhak), dheweke bakal ngirim sinyal kanthi manual menyang sampeyan nggunakake tombol utawa ngalih ing tembok. . Sinyal kasebut bakal dikirim menyang layar TV utawa liwat lampu LED.

Aku mung pengin ngrampungake masalah sing muncul ing kabeh sekolah ing negara kasebut. Niatku saya tambah kuwat nalika krungu crita saka Miss O - saiki dakkandhani. Ternyata ing sawetara sekolah gedhe garis kasebut ngluwihi kantin, menyang dalan nganti rong puluh nganti telung puluh meter, sanajan ing musim dingin, amarga ora ana sing bisa ngatur proses kasebut kanthi bener. Lan kadhangkala kedadeyan sawetara menit ora ana sing katon ing ruang makan - lan iki uga ala. Ing sekolah kanthi jumlah siswa sing akeh, staf meh ora duwe wektu kanggo ngladeni kabeh wong sanajan ora ana wektu mangan siji menit. Mula, sing pungkasan teka ing distribusi (biasane siswa SD) mung ora duwe wektu kanggo mangan.

Dadi, sanajan aku kudu cepet-cepet ngirim aplikasi, aku mikir kanthi ati-ati babagan carane bisa adaptasi kanggo panggunaan sing luwih akeh.

Pesen sing aku menang hadiah pisanan!

Singkat cerita, aku diundang teka lan ngaturake proyekku marang pejabat pemerintah. Dadi aku sijine kabeh talents Power Point kanggo bisa lan teka lan presented!

Kisah bocah sekolah Korea sing nampa hadiah saka kementerian kanggo sistem pemantauan antrian

Awal presentasi (kiwa kiwa - menteri)

Iku pengalaman menarik - Aku mung teka munggah karo soko kanggo masalah cafeteria, lan piye wae rampung ing antarane pemenang kompetisi. Malah ngadeg ing panggung, aku tetep mikir: "Hmm, apa sing aku lakoni ing kene?" Nanging umume, proyek iki entuk manfaat gedhe - aku sinau akeh babagan pangembangan sistem sing dipasang lan implementasine proyek ing urip nyata. Inggih, aku nampa hadiah, mesthi.

kesimpulan

Ana sawetara ironi ing kene: ora ketompo carane akeh aku melu ing kabeh limo kompetisi lan pameran ilmu sing purposefully aku mlebu munggah kanggo, ora ana apik teka saka iku. Lan banjur kesempatan mung ketemu kula lan menehi kula asil apik.

Iki nggawe aku mikir babagan alasan sing menehi motivasi kanggo njupuk proyek. Napa aku miwiti kerja - kanggo "menang" utawa ngrampungake masalah nyata ing jagad iki? Yen motif kapindho ana ing kasus sampeyan, aku banget ngajak sampeyan supaya ora ninggalake proyek kasebut. Kanthi pendekatan bisnis iki, sampeyan bisa nemokake kesempatan sing ora dikarepake ing dalan lan ora bakal ngrasakake tekanan amarga kudu menang - motivator utama sampeyan bakal dadi semangat kanggo bisnis sampeyan.

Lan sing paling penting: yen sampeyan bisa ngetrapake solusi sing layak, sampeyan bisa langsung nyoba ing jagad nyata. Ing kasusku, platform kasebut minangka sekolah, nanging suwene wektu, pengalaman saya tambah, lan sapa ngerti - bisa uga aplikasi sampeyan bakal digunakake ing saindenging negara utawa malah ing saindenging jagad.

Saben-saben aku mikir babagan pengalaman iki, aku seneng banget. Aku ora bisa nerangake apa, nanging proses ngleksanakake project mung nggawa kula kesenengan gedhe, lan hadiah ana bonus tambahan. Kajaba iku, aku seneng amarga bisa ngrampungake masalah kanggo kanca-kancaku sing saben dina ngrusak uripe. Ing sawijining dina ana salah sawijining murid marani aku lan kandha, ”Sistemmu trep banget.” Aku ana ing langit kapitu!
Aku mikir sanajan tanpa penghargaan, aku bakal bangga karo pangembanganku dhewe. Mungkin iki nulungi wong liya sing ndadekake aku seneng ... umume, aku seneng proyek.

Apa sing dakkarepake bisa digayuh karo artikel iki

Muga-muga kanthi maca artikel iki nganti pungkasan, sampeyan wis diilhami kanggo nindakake apa wae sing bakal nguntungake komunitas sampeyan utawa mung kanggo sampeyan dhewe. Aku ngajak sampeyan nggunakake katrampilan sampeyan (pemrograman mesthi salah sijine, nanging ana liyane) kanggo ngganti kasunyatan sing ana ing sekitar sampeyan dadi luwih apik. Aku bisa njamin yen pengalaman sampeyan bakal entuk ing proses ora bisa dibandhingake karo tindakan liya.

Sampeyan uga bisa mbukak dalan sing ora dikarepake - kaya sing kedadeyan karo aku. Dadi mangga, tindakake apa sing sampeyan tresnani lan nggawe tandha ing jagad iki! Gema siji swara bisa goyangake jagad kabeh, mula percaya marang awake dhewe.

Ing ngisor iki sawetara pranala sing ana gandhengane karo proyek kasebut:

Source: www.habr.com

Add a comment