Jeffrey Cross
Jeffrey Cross

Tee verkkokäyttöinen anturi prosessoimalla

Tämä Codebox tutkii, miten web-palvelinta käytetään keräämään anturitietoja käsittelyn luonnoksesta. Esimerkiksi käytämme OpenCV: tä havaitsemaan ja raportoimaan säännöllisesti web-näkymän näkymässä olevien kasvojen lukumäärää. Saatat käyttää jotain tällaista konferenssissa tai taidenäyttelyssä nähdäksesi, kuinka monta ihmistä on kiinnostunut tietystä istunnosta tai näyttelystä. Käyttämällä tätä tietosyötettä saatat sitten luoda mobiilisovelluksen, joka näyttää, missä useimmat ihmiset ovat konferenssissa milloin tahansa.

Määritä web-palvelin

Tarvitset pääsyn web-palvelimeen PHP: n kanssa tämän hankkeen toteuttamiseksi. (PHP on skriptikieli verkkosivustojen luomiseksi, jota tarjoaa lähes jokainen hosting-yritys.) Jos sinulla ei ole tiliä hosting-yhtiössä, voit yksinkertaisesti perustaa Web-palvelimen omalle koneellesi. Itse asiassa useimmissa uusissa Macissa on Apache, joka on yksi suosituimmista web-palvelimista. Sinun tarvitsee vain aktivoida se, jonka voit tehdä tietokoneen Järjestelmäasetukset-paneelin kautta. Avaa vain asetukset, napsauta "Jakaminen" ja tarkista sitten "Web-jakaminen" vasemmalla olevasta luettelosta. (Jos käytät Windowsia, sinun on asennettava ulkoinen palvelin. Olen saanut XAMPP: n menestyksen hyvin, sillä siinä on kaikki mitä tarvitset.)

Jos kaikki menee hyvin, näkyviin tulee "Web Sharing: On" -tilan merkkivalo vihreänä. Näet myös osoitteen, jota voit käyttää selaimessasi, jotta pääset verkkosivustosi “root” -versioon. (Merkitse tämä osoite muistiin, koska sitä tarvitaan myöhemmin käsittelyn luonnoksessa.) Seuraava kuva näyttää yksityiskohtaisemmin:

Kun jakaminen on otettu käyttöön, olet valmis määrittämään PHP-loki, joka kirjaa tiedot. Tämä tehdään lisäämällä muutama tiedosto Web-palvelimen juurihakemistoon. Macissa tämä on yleensä "Sivustot" -hakemisto, joka on samalla paikalla kuin musiikki-, elokuva- ja asiakirjaluettelot.

Voit aloittaa komentosarjan määrittämisen pudottamalla päätelaitteeseen ja kirjoittamalla nämä komennot:

cd ~ / Sites / mkdir face_sensor cd face_sensor touch sensor_log.txt chmod 777 sensor_log.txt

Tässä komentosarjassa muutamme "root" -hakemistoon, jossa Macin verkkopalvelin odottaa löytävänsä tiedostoja, luomalla uuden kasvotiedoston nimeltä "face_sensor" ja lisäämällä sitten tyhjän lokitiedoston, jonka PHP-skripti voi kirjoittaa. Tämä viimeinen vaihe tapahtuu kahdessa osassa: ensimmäinen on kosketus komento luoda uusi tyhjä lokitiedosto. Toinen vaihe on käyttää chmod komento asettaa oikeudet tiedostoon niin, että PHP voi kirjoittaa tietoja tiedostoon.

Seuraavaksi sinun on määritettävä järjestelmä, jotta palvelin voi suorittaa PHP-skriptejä. SerpicoLugNut Stackoverflowissa on hyvä kuvaus siitä, miten tämä tehdään helpoin tapa aktivoida PHP ja MySQL Mac OS 10.6: ssa (Snow Leopard) ?. Tässä kerrotaan, mitä hän tekee:

Avaa hyvä tekstieditori (suosittelen TextMate-ohjelmaa, mutta ilmainen TextWrangler tai vi tai nano tekee myös) ja avaa: /etc/apache2/httpd.conf Etsi rivi: "#LoadModule php5_module libexec / apache2 / libphp5. niin "Ja poista se (poista #).

Kun hakemisto on valmis, tallenna seuraava PHP nimettyyn tiedostoon record.php:

Kun olet kopioinut tiedoston, siirry selaimeen ja anna seuraava URL:

http: //henkilökohtaisen verkkosivustosi osoite jakamispaneelista/face_sensor/record.php?face_count=5&room_name=ballroom&interval=2000

Selaimesi pitäisi sanoa "OK". Jos avaat sensor_log.txt tiedoston pitäisi nähdä rivi, joka näyttää tältä:

01-12-2010 06:01:41 EST-juhlasali 5 2000

Mitä siis tapahtuu? Periaatteessa PHP-skripti vetää yksinkertaisesti URL-osoitteen kyselymerkkijonoon (esim. Face_count, room_name ja interval) asettamat arvot ja kirjoittaa ne välilehden erottelemaan tiedostoon. Se siitä. (No, OK, se lisää myös päivämäärän ja kellonajan.)

"Todellisessa" järjestelmässä nämä arvot kirjoitettaisiin todennäköisesti tietokantaan, mutta se on tämän viestin ulkopuolella - mitä lähinnä haluat tehdä, on näyttää, miten Prosessin avulla voit lähettää tietoja verkkosivustolle, ei tiedot siitä, miten kyseinen sivusto tallentaa tiedot. Jos olet kiinnostunut menemään pidemmälle taaksepäin, Kevin Yankin artikkeli Build Your Own Database Driven Web-sivusto käyttäen PHP & MySQL, Osa 1: Asennus on hyvä paikka aloittaa.

Määritä luonnos

Nyt kun verkkopalvelin on määritetty ja pystyy kirjaamaan tietoja, seuraava vaihe on luoda käsittelyskenaatio, joka havaitsee kasvot ja raportoi ne takaisin palvelimellesi. Ennen kuin aloitat, varmista, että olet asentanut controlP5: n ja OPENCV Processing ulkoiset kirjastot. (Jos et tunne ulkoisia kirjastoja, tarkista, miten kirjastojen tuonti käsittelyssä O'Reilly-vastauksissa.) Kun kirjastot on asennettu, palaa ylös Käsittele ja liitä verkkotunnuksen_sensor.pde-koodi luonnosikkunaan:

Lisäksi sinun on muutettava transmission_url asettaa sen PHP-skriptiisi osoitteeseen. Linja

String transmission_url = "http: //MacOdewahn.home/~odewahn/face_sensor/record.php";

on päivitettävä

String transmission_url = "http: //henkilökohtaisen verkkosivustosi osoite jakamispaneelista/face_sensor/record.php ";

Kun aloitat luonnoksen, huomaat, että sinun täytyy ensin valita haluamasi lähdevideo, joka tehdään komennolla cam.settings ();. Tämän avulla voit kytkeä ulkoisen web-kameran pikemminkin kuin käyttää vain sisäänrakennettua web-kameraa. Kun olet valinnut lähteen, sinun pitäisi nähdä videosyöttö.

Kasvojentunnistus- ja raportointiprosessi tapahtuu 2 sekunnin välein aikaväli muuttuja. Voit myös syöttää "huoneen nimen", jotta voit erottaa useita tietolähteitä. Esimerkiksi sinulla voi olla yksi kamera, joka toimii olohuoneessasi ja toinen keittiössä, ja molemmat raportoivat takaisin samalle keskuspalvelimelle.

Muutaman sekunnin kuluttua voit avata lokin Web-selaimessasi ja nähdä antureiden ilmoittamat tiedot. Tämän URL-osoite on:

http: //henkilökohtaisen verkkosivustosi osoite jakamispaneelista/face_sensor/sensor_log.txt

Se näyttää tältä:

keskustelu

Kuten näette, käsittelykoodi on hyvin samankaltainen kuin muissa viroissa tutkitut projektit. Periaatteessa kaikki, mitä teemme täällä, lisää uuden menetelmän, jota kutsutaan lähettämään (), raportoida tiedot takaisin palvelimelle. lähettämään ()Sen tehtävänä on luoda URL-osoite, jossa on kaikki PHP-komentosarjan edellyttämät tiedot. Huomaa, että kutakin merkkijonon kentän nimeä - face_count, intervalli ja room_name - käytetään johdonmukaisesti sekä Processing- että PHP-komentosarjassa:

Kun olemme saaneet tämän URL-osoitteen, Processing on sisäänrakennettu loadStrings () komento suorittaa PHP: n komentosarjan tietojen tallentamiseksi. Huomaa, että emme todellakaan välitä tuloksista tässä esimerkissä; vain, että sivua kutsutaan. Kuitenkin, jos halusimme saada entistä hienostuneempia, PHP-skripti voisi palauttaa tilakoodin tai jonkin muun tiedon.

Viimeinen asia, joka kannattaa huomata, on se, miten olemme käyttäneet Java: n URLEncoder-apuohjelmaluokkaa koodaamaan jokaisen kentän. Näin varmistetaan, että tiedot lähetetään oikein palvelimelle. Jälleen kerran hyödynnetään joitakin voimakkaita juttuja, jotka ovat saatavilla Java-ohjelmassa, jotta elämästämme on paljon helpompaa!

Makerissa:


Käsittelyn aloittaminen Opi käyttämään prosessointia helpompaa tietokoneen ohjelmointia, joka on yksinkertainen kieli, jolla voit käyttää koodia piirustusten, animaatioiden ja vuorovaikutteisen grafiikan luomiseen. Ohjelmointikurssit alkavat yleensä teoriasta, mutta tämän kirjan avulla voit siirtyä suoraan luoviin ja hauskiin projekteihin. Se sopii kaikille, jotka haluavat oppia perusohjelmointia, ja se on yksinkertainen esittely grafiikalle ihmisille, joilla on joitakin ohjelmointitaitoja.

Osake

Jättänyt Kommenttia