altRobots
/robotigs/icons/actuator.pngActuatoren
/robotigs/icons/printboards.pngAlgemeen
/robotigs/icons/chassis.pngChassis
/robotigs/icons/florigs.pngFlorigs
/robotigs/icons/interfacing.gifInterfacing
/robotigs/icons/microphone_icon.pngMuziek
/robotigs/icons/musicKey_icon.pngMuzikanten
/robotigs/icons/shield.pngSchildjes
/sys/icons/sensors.pngSensors
/robotigs/icons/languages.pngTalen
/robotigs/icons/battery.pngVoedingen
/sys/icons/microController.pngµControllers
altContact
Smelly V2alt  

Deze pagina is verouderd. Ga naar de vernieuwde pagina.

"); $counter = 0; $aantal = str_word_count($pict_list, 0, "0123456789"); $lijst = str_word_count($pict_list, 1, "0123456789"); while($counter < $aantal){ $pictkey = $lijst[$counter]; $qryy1 = ("SELECT * FROM illustrations WHERE ill_id = $pictkey ;"); $resulty1 = pg_query($con1, $qryy1); while($row = pg_fetch_array($resulty1)){ //Fields accesible by their name foreach( $row AS $key => $val ){ $$key = stripslashes( $val ); } } $image = ("/robotigs/documentatie/plaatjes/$ill_name"); $pictfull = str_replace('_small', '', $image); //Pictfull=biggest version $alt = ("Just wait till your 57...."); $txtname = get_txt($con1, 18, $koekje[2], $ill_id); //Robot illustrations subtitles echo (""); echo (''. $alt .'
'); $nummer = $counter + 1; $txtAfb = get_txt($con1, 9, $koekje[2], 3865); //Pic Afb if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates echo ("$txtAfb $nummer: "); echo ("$txtname"); echo ("
"); echo ("Ontkoppelen "); if ($counter==0){ echo ("Up "); }else{ echo ("Up "); } if ($nummer == $aantal){ echo ("Down"); }else{ echo ("Down"); } }else{ //Else of if Meaning the current useer is logged in echo ("$txtAfb $nummer: $txtname"); } echo ('

'); //End of this picture $counter++; //Prepair for next picture } echo (''); //All pictures are printed } //End of if there are 1 or more pictures to be printed ---------------------- ?>

Beschrijving
Hoe goed kan je ruiken? Een grote neus is handig maar er bestaan ook reuksensors. Dat soort sensors kunnen simpel met een Arduino worden gelezen. Dit is een project om de luchtkwaliteit te bewaken met gas sensors (wiki). Hier vindt u een voorbeeld van enkele meetresultaten in een grafiek.
  • Wat kan deze robot ruiken?
    Alle waardes in ppm
     MQ5MQ7MQ8MQ135
    LPG200-5000   
    CH4 methaan5000-20000   
    C3H8 propaan200-5000  
    C4H10 butaan300-5000  
    C2H6O ethanol (alcohol)100-2000 10-300
    H2 waterstof300-5000 100-10000
    CO koolmonoxide 20-2000  
    RookX
    NH3  10-300
    Benzeen   10-1000

  • Gebruik
    Deze robot kan op verschillende manieren worden gebruikt, afhankelijk van de locatie:

    • Zonder internet
      Zodra de voeding aangesloten wordt zal Smelly werken. De LED zal rood gaan branden en de LCD zal de waardes van de eerste gassensor laten zien. Door op de gele knop te drukken krijgt u de waardes van de volgende gassensor te zien. Als u bij de laatste gassensor op de gele knop drukt zult u weer de waardes van de eerste gassensor te zien krijgen. De gele knop en LCD kunt u altijd gebruiken, onafhankelijk van het gebruik van internet of niet.

    • Smelly als zelfstandige webserver
      In dit geval kunt u de waardes van de sensoren ook aflezen door rechtstreeks het IP adres in te voeren in bijvoorbeeld uw telefoon. U krijgt niet meer informatie dan dat u het LCD schermpje op de robot bekijkt. Het voordeel is echter dat u nu de waardes op enige afstand van de robot kunt ontvangen. Dit draagt zover als dat uw telefoon in staat is om een WIFI verbinding te houden met de robot. Denk hierbij aan een afstand van ongeveer 10 meter.

    • Smelly ingelogd in ons LAN
      Dit is de meest ideale werkwijze, maar enkel mogelijk binnen het WIFI bereik van on thuis LAN. Zodra de voeding wordt aangesloten op de robot zal Smelly zichzelf automatisch inloggen in ons LAN. Vervolgens zal de server binnen ons LAN in regelmatige intervallen (typisch om de 5 minuten) de waarde van de gassensors afvragen via WIFI. Deze waardes worden vervolgens in een database worden opgeslagen. Het voordeel is dat de actuele waardes overal ter wereld kunnen worden afgevraagd door naar het dashboard te gaan. Omdat de waardes in een database zijn opgeslagen kunt u daar bovendien statistische grafieken aanvragen.

  • Voeding
    Dit type sensors heeft een hoog energieverbruik omdat iedere sensor een verwarmingselement bevat. Om nauwkeurige metingen te krijgen moet al het vocht door de verwarmingselementen uit de sensor worden verwijderd. Dit zal enkele dagen duren! Dit vereist een externe voeding want een Arduino of een USB aansluiting kan dit soort vermogens niet leveren.

"); echo (""); echo (""); //*** SHOW PARTS IN STORED SEQUENCE ($parts_list) --------------------------- while(isset($lijst[$cntrlp])){ $partkey = $lijst[$cntrlp]; $qrylp=("SELECT tblsystext.txtname , onderdelen.prt_icon_link , onderdelen.prijseurinclbtw , onderdelen.idsrtodd , onderdelen.lanid FROM onderdelen INNER JOIN tblsystext ON onderdelen.partid = tblsystext.recordid WHERE tblsystext.lanid = onderdelen.lanid AND tblsystext.txlid = 19 AND onderdelen.partid = $partkey ;"); $resultlp = pg_query($con1, $qrylp); $rowlp = pg_fetch_array($resultlp); if ($rowlp[4] == 1) {$imgname = "nederland.gif";} if ($rowlp[4] == 2) {$imgname = "deutschland.gif";} if ($rowlp[4] == 3) {$imgname = "uk.gif";} if ($rowlp[4] == 4) {$imgname = "france.gif";} //*** SHOW RECORD echo (""); echo (""); echo (""); echo (""); //End of show group if ($koekje[3]=="1") { //If this user wants to translate then //echo (""); echo (""); } echo (""); $bedrag = $bedrag + $rowlp[2]; //Calculate total robot price $cntrlp++; } //End of while displaying this mother part AND childparts echo ("
"); echo ("Onderdelen van deze robot:"); echo ("
"); echo ("$rowlp[1]"); echo ("$rowlp[0]"); //Show group $prtsrttxt = get_prtsrt_name2($con1, $koekje[2], $rowlp[3]); echo (""); echo ("$prtsrttxt "); //echo ("flag.gif"); //echo (""); echo (""); echo (" "); if ($cntrlp==0){ echo (" "); }else{ echo (""); echo (" "); } if ($cntrlp == $aantal){ echo (" "); }else{ echo (""); echo (""); } echo ("
"); if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates $bedrag_formatted = number_format($bedrag / 100, 0, ',', '.'); echo ("

Project costs: € $bedrag_formatted"); } } //End of if ($part_list) ----------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// function get_prtsrt_name2($conid, $lan, $recid){ $qry = ("SELECT * FROM tblsystext WHERE txlid = 26 AND lanid = $lan AND recordid = $recid ;"); $result = pg_query($conid, $qry); $row = pg_fetch_array($result); return ("$row[1]"); } ?>

"); $folder = $arr1[0]; $countertmp = 0; foreach (scandir($folder, 1) as $filename) { if ($filename<>"." AND $filename <>".."){ if ($countertmp == 0){ $countertmp++; echo (""); } //End of if ($countertmp == 0) $tmp = "/"; $dir = substr($folder, 14) ."/"; $link = $tmp .$dir .$filename; $showname = substr($filename, 0 ,-4); echo ""; } //End of if ($filename<>"." AND $filename <>".."){ } //End of foreach (scandir($folder, 1) as $filename) echo ("
Software voor deze robot"); echo ("
$showname
"); } //End of if (isset($arr1[0])) ?> 0 and $koekje[3]>0){ //User is logged in and translates echo ("

"); echo (""); $qryap=("SELECT tblsystext.txtname , tblsystext.recordid FROM onderdelen INNER JOIN tblsystext ON onderdelen.partid = tblsystext.recordid WHERE txlid = 19 AND tblsystext.lanid = onderdelen.lanid AND selectable = 0 AND '$part_list' NOT LIKE '% ' || tblsystext.recordid || ' %' ORDER BY tblsystext.txtname ;"); $resultap = pg_query($con1, $qryap); echo ("
Add a part to this robot "); echo ("
"); echo ("  "); echo ("==>   Add"); echo ('
'); } //End of if ($koekje[0]>0) End of only for logged in users 0 and $koekje[3]>0){ //User is logged in and translates $qrydb=("SELECT farmbotversie.* FROM farmbotversie WHERE id = $idbot ;"); $resultdb = pg_query($con1, $qrydb); while($row = pg_fetch_array($resultdb)){ //Fields accesible by their name foreach( $row AS $key => $val ){ $$key = stripslashes( $val ); } } $jaar = substr($changeddate,0,4); $maand = substr($changeddate,5,2); $dag = substr($changeddate,8,2); $last_stamp = ("$dag $maand $jaar"); $jaar = substr($createddate,0,4); $maand = substr($createddate,5,2); $dag = substr($createddate,8,2); $create_stamp = ("$dag $maand $jaar"); echo ("

"); echo (""); echo (""); //*** LAST CHANGE MADE TO THIS ROBOT ---------------------------------------- echo (""); //*** RECORD CREATED DATE --------------------------------------------------- echo (""); // *** PART OWNER ----------------------------------------------------------- echo (""); // *** VERSIENAAM ----------------------------------------------------------- echo (""); // *** FLESSENHALS ----------------------------------------------------------- echo (""); // *** RECORD STATUS -------------------------------------------------------- echo (""); if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates $tmp = get_txt($con1, 9, $koekje[2], 3918); //Fieldname at screen LANGUAGE if ($lanid == 1) {$imgname = "nederland.png";} if ($lanid == 2) {$imgname = "deutschland.png";} if ($lanid == 3) {$imgname = "uk.png";} if ($lanid == 4) {$imgname = "france.png";} echo (""); } echo ("
"); echo ("General information "); echo ("("); echo ("edit)"); echo ("
Laatste wijziging  "); echo("$last_stamp
Aangemaakt  "); echo("$create_stamp
Eigenaar  "); //Needs botmaster from the file, tblsysuser.usrid $name = get_person_name($con1, $bot_master, $koekje[2]); echo("$name
Versienaam:  "); echo("$versienaam
Flessenhals:  "); echo("$flessenhals
Record status  "); $statTxt = getStatTxt($con1, $status, $koekje[2]); echo("$statTxt"); echo ("
$tmp"); echo ("flag.gif"); echo ("
"); } //End of if ($koekje[0]>0)