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
Grondvochtigheid Jan"); echo ("  "); } ?>  "); /* echo (""); echo (" "); //Show pencil as button */ ?> alt  

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 ---------------------- ?>

Tweede testserie 2018
  • Inleiding
    /robotigs/documentatie/plaatjes/20180804_moisturetest002_small.png Hier worden metingen gedaan met 2 types sondes (Banggoodsonde en de Sonde van Jan) op de spanningsdeler methode over een langere periode. Dit zijn laagfrequente metingen. De software bestaat uit het robotgedeelte (ino) en een servergedeelte (py). Het aantal metingen wordt in het programma teruggebracht met een teller. Verder wordt als waarde teruggegeven het gemiddelde van het maximum en het minimum gemeten in een serie. Zodra de meetgegevens afgevraagd zijn via Wifi worden de minimum en maximum waarde gereset.

  • Afstand tussen de sensors.
    /robotigs/documentatie/plaatjes/Screenshot_2018-08-07SensorVerwijdering_small.png Conclusie: Zet nooit meerdere sensors bij elkaar in 1 pot. Der meetresultaten zullen dan onbetrouwbaar zijn. Ook in het veld zal de tussenafstand niet te klein mogen worden gekozen om foute meetresultaten tegen te gaan. De beide sensors werden op dezelfde manier afgevraagd door de software en ze moeten het liefst dezelfde grondvochtigheid beoordelen. Samen in dezelfde pot blijkt geen goed idee. Ze beïnvloeden elkaar ernstig blijkt. In het plaatje van de grafiek is te zien wat er gebeurt met de meetwaardes van de Banggoodsonde zodra de Sonde van Jan verwijderd worden uit de pot. Het vervolg van de proefjes vindt dan ook plaats in verschillende potten. Voor het onderzoeksgemak bestaan er live grafiekjes van de laatste verrichtingen van de Banggoodsonde en de Sonde van Jan.

  • De waardes van de weerstanden.
    /robotigs/icons/DelerBanggoodSensorCropped.pngOftewel de optimalisering van de spanningsdeler om zo optimaal mogelijk gebruik te maken van de Arduino. Wat meet ik nou eigenlijk? Beide weerstandjes zijn 10kΩ. Verder zijn er nu nog geen stroombegrenzende weerstanden gemonteerd. Dit leidt tot weinig meetbare verschillen. Verlaagd naar 2k2Ω is er nog steeds geen relatie te zien. De stromen zijn waarschijnlijk dusdanig klein, dat de interne pullup een grote rol speelt. Uitzetten als hij aanstaat. Tja stond niet aan. Probeer eens een lagere weerstand. Tja was al slechts 2k2Ω. Volgende stap is het verlengen van de plus tijd tot 10ms. Dus dat is langer de pin hoog trekken voordat de meting wordt gedaan. Je zou dus meer 5Vdc verwachten en dus een hogere meetwaarde, maar dat is niet zo. De meetwaarde is een stuk lager zelfs.

Inleiding
Deze sondes zijn gemaakt door neef Jan. Hij heeft ze 3D-geprint. Zij zijn van RVS en PVC? en bedoeld om de vochtigheid van de grond te meten. Dat kan op vele manieren. Bekijk daarom eerst eens een beetje theorie.

Gips in sondes
Sommige sensors zijn van gips gemaakt. Hierbij worden de kathode en anode gescheiden door niet nader omschreven gips. Men gaat er van uit dat het gips een evenredige hoeveelheid water opneemt ten aanzien van zijn directe omgeving (de grond). Het voordeel zou moeten zijn dat de in de grondvochtigheid opgeloste zouten een nog kleinere invloed op de meetresultaten zouden hebben.

In use since 1978, the patented WATERMARK sensor is a solid state electrical resistance sensing device that is used to measure soil water tension. As the tension changes with water content the resistance changes as well. That resistance can be measured using the WATERMARK Sensor. The sensor consists of a pair of highly corrosion resistant electrodes that are embedded within a granular matrix. A current is applied to the WATERMARK to obtain a resistance value. The WATERMARK Meter or WATERMARK Monitor correlates the resistance to Centibars (kilopascals) of soil water tension.The WATERMARK is designed to be a permanent sensor, placed in the soil to be monitored and “read” as often as necessary with a portable or stationary device. Internally installed gypsum provides some buffering for the effect of salinity levels normally found in irrigated agricultural crops and landscapes.

De Watermark® grondvochtsensor is een indirecte, geijkte methode voor het meten van bodemvocht. Het is een elektrische weerstand type sensor. Het grondvocht/temperatuur station converteert de elektrische weerstand van de sensor in een geijkte lezing van centibars van de zuigkracht van bodemwater met een bereik van 0 (natste) tot 200 (droogste) centibars. De Watermark bodemvochtigheidssensor is een product van de Irrometer Company, Inc.

Legacy
Dit project is een doorontwikkeling op een vochtigheidssensor van gardenbot.org voor wat betreft de probes. De software is hetzelfde als de software van de Banggood sensor. Beide sensoren werken dan ook volledig volgens hetzelfde principe: de weerstand van de aarde tussen de 2 probes wordt gemeten. Hierbij wordt aangenomen dat de weerstand lager zal zijn bij een hogere grondvochtigheid. Een Arduino kan geen weerstand meten maar wel spanning. De meting gebeurt dus via een omweg. Het originele programma bevat ook nog andere (overbodige) sensoren, zoals bijvoorbeeld temperatuur en afstand. Daarom hier een gestripte versie van het programma voor het betere begrip. Hieruit blijkt dat er 2 output pinnen (VoltageFlipPin1 & VoltageFlipPin2) en 1 input pin (sensorPin) gebruikt worden om de grondvochtigheid te meten.


$val ){ $$key = stripslashes( $val ); } $jaar = substr($changeddate,0,4); $maand = substr($changeddate,5,2); $dag = substr($changeddate,8,2); $lastupdate = ("$jaar $maand $dag"); $prtsrttxt = get_txt($con1, 26, 1, $idsrtodd); $jaar = substr($createddate,0,4); $maand = substr($createddate,5,2); $dag = substr($createddate,8,2); $create_stamp = ("$dag $maand $jaar"); //GENERAL INFO FOR EVERY USER ************************************************** echo ("

"); echo (""); if ($codetext) { //Code like KY-026 or NA-41 echo (""); } //End of if ($codetext) $tmp = get_txt($con1, 9, $koekje[2], 3741); //Fieldname at screen if ($prijseurinclbtw > 0){ //Show price indication $prijs_formatted = number_format($prijseurinclbtw / 100, 2, ',', '.'); echo (""); echo (""); } //End of if ($prijseurinclbtw > 0) if ($sketchtext) { //Link to OWN SOFTWARE $tmp = get_txt($con1, 9, $koekje[2], 3738); //Fieldname at screen echo (""); } //End of if ($sketchtext) $tmp = get_txt($con1, 9, $koekje[2], 3744); //Fieldname at screen if ($pinouttext) { //Pinout echo (""); } $tmp = get_txt($con1, 9, 1, 3735); //Fieldname at screen $tmp2 = get_txt($con1, 26, 1, $row4[16]); //Group name in its language 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 ($row4[26] == 1) {$imgname = "nederland.png";} if ($row4[26] == 2) {$imgname = "deutschland.png";} if ($row4[26] == 3) {$imgname = "uk.png";} if ($row4[26] == 4) {$imgname = "france.png";} echo (""); $tmp = get_txt($con1, 9, $row4[27], 3919); //Fieldname at screen $statuskey = get_status_key($con1, $status); $tmp2 = get_txt($con1, 61, $koekje[2], $statuskey); //Fieldname at screen echo (""); } $tmp = get_txt($con1, 9, 1, 3966); //Fieldname at screen echo (""); echo ("
"); //Header $tmp = get_txt($con1, 9, $koekje[2], 3923); //Fieldname at screen if ($koekje[3]=="1") { //If this user wants to translate then echo ("$tmp"); //If desired }else{ echo ("$tmp"); } //Else just show if no need to translate if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates echo (" (edit)"); } echo ("Algemene informatie test
"); $tmp = get_txt($con1, 9, $koekje[2], 3739); //Fieldname at screen if ($koekje[3]=="1") { //If this user wants to translate then echo ("$tmp"); //Class for colour }else{ //So you are not allowed to translate echo $tmp; //Show screenname of this field in user language } //End of If you want to translate this fieldname at screen echo (" "); if ($codelink) { echo ("$codetext"); }else{ echo ("$codetext"); } //End of if ($pinoutlink) echo ("
$tmp  "); if ($urlprijs){ echo ("€  $prijs_formatted"); }else{ echo ("€  $prijs_formatted"); } //End of if ($urlprijs > "") echo ("
$tmp  "); if ($sketchlink) { echo ("$sketchtext"); }else{ echo ("$sketchtext"); } //End of if ($sketchlink) echo ("
$tmp  "); if ($pinoutlink) { echo ("$pinouttext"); }else{ echo ("$pinouttext"); } //End of if ($pinoutlink) echo ("
$tmp  "); //MENU GROUP echo (""); echo ("$tmp2
$tmp"); echo ("flag.gif"); echo ("
$tmp  "); //STATUS echo ("$status $tmp2
$tmp  "); //LAST CHANGED $tmp = substr($changeddate, 0, 10); echo ("$tmp

"); return; //////////////////////////////////////////////////////////////////////////////// function get_status_key($con, $num){ $qry = ("SELECT id FROM status WHERE nr = $num ;"); $result = pg_query($con, $qry); $row = pg_fetch_array($result); return ("$row[0]"); } 0 AND software.rstid = 2 AND tblsystext.lanid = $koekje[2] AND tblsystext.txlid = 19 ORDER BY sftname ASC , controller ASC ;"); $result = pg_query($con1, $qry2); if (pg_num_rows($result)>0) { //Only if at least 1 program exists echo ('

'); echo (""); while($col = pg_fetch_array($result)){ $col[0] = ("$col[0]"); echo (""); echo (""); echo (""); if ($koekje[0] > 0 and $koekje[3]>0){ //User is logged in and translates echo (""); } echo (''); } echo ('
"); //Header $tmp = get_txt($con1, 9, $koekje[2], 3922); //Fieldname at screen if ($koekje[3]=="1") { //If this user wants to translate then echo ("$tmp"); //If desired }else{ echo ("$tmp"); } //Else just show if no need to translate echo ("
$col[2]  $col[0]"); echo ("(Edit)
'); } ?> 0){ if ($header == 0) { echo ("

"); echo (""); $header++; } //End of if ($header == 0) echo (""); echo (""); } } if ($header > 0){ echo ("
"); //Header $tmp = get_txt($con1, 9, $koekje[2], 3879); //Fieldname at screen if ($koekje[3]=="1") { //If this user wants to translate then echo ("$tmp"); //If desired }else{ echo ("$tmp"); } //Else just show if no need to translate echo ("
$colbpp[2]"); //Show software van deze bot $qry=("SELECT software_basedir FROM farmbotversie WHERE id = $colbpp[0];"); $result = pg_query($con1, $qry); $col = pg_fetch_array ($result ,0); $dir1 = "/var/www/html/robotigs/software/$col[0]"; $arr1 = glob($dir1, GLOB_ONLYDIR); if (isset($arr1[0])){ $folder = $arr1[0]; $countertmp = 0; echo ("
    "); foreach (scandir($folder, 1) as $filename) { if ($filename<>"." AND $filename <>".."){ if ($countertmp == 0){ $countertmp++; } //End of if ($countertmp == 0) $tmp = "/"; $dir = substr($folder, 14) ."/"; $link = $tmp .$dir .$filename; $showname = substr($filename, 0 ,-4); echo ("
  • "); echo "$showname"; echo ("
  • "); } //End of if ($filename<>"." AND $filename <>".."){ } //End of foreach (scandir($folder, 1) as $filename) echo ("
      "); } //End of if (isset($arr1[0])) echo ("
"); } ?>
Warning: include(/var/www/html/robotigs/includes/wishlistperpart.php): Failed to open stream: No such file or directory in /var/www/html/robotigs/includes/parts_header.php on line 128

Warning: include(): Failed opening '/var/www/html/robotigs/includes/wishlistperpart.php' for inclusion (include_path='.:/usr/share/php') in /var/www/html/robotigs/includes/parts_header.php on line 128