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
Flora laboalt  

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

Floralabo is ook een robot voor de aansturing van een couveuse maar deze is in breadboard vorm. Daardoor kan hij ook voor allerlei experimenten worden gebruikt zoals grondvochtigheid. Floralabo wordt gestuurd door een robot.
  • Bewatering
  • De irrigatie van de couveuses kan gemakkelijker met de hand worden uitgevoerd. Er verdampt namelijk bijna geen water doordat de zaaikasjes een deksel hebben. Bovendien heb ik nog geen betrouwbare manier gevonden om de grondvochtigheid te meten (Grondvochtigheid 2018).

  • Software
    • Couveuse1-01
    • Wifi snelheid opvoeren en 2 manieren van gebruik:
      • Handy rechtstreeks, indien couveuse1 niet via wifi of met een kabel op het netwerk is aangesloten. Als je met je mobiel in de buurt bent dan kan je de data updaten.
      • Inloggen op router. Couveuse1 bevindt zich in het gebied van een Wifirouter. In dat geval zal het systeem moeten kunnen inloggen. Als het systeem niet kan inloggen springt het vanzelf in bovenstaande modus.
    • Couveuse1_2560_03_relayDS1892
    • De onderstaande configuratie wordt uitgebreid met 1 dubbel relais bedoeld voor de schakeling van de verlichting en de verwarming. Verder een DS1802 thermometer toegevoegd om de temperatuur te kunnen schakelen.
    • Couveuse1_2560_02_lanSDwifiClock
    • De onderstaande configuratie wordt uitgebreid met Wifi en TWI. De klok I²C heeft geen optrekweerstanden nodig. De snelste bibliotheek voor wifi moet nog worden uitgezocht.
    • Couveuse1_2560_01_lanSDtest
      • SD + Ethernet beiden op SPI
      • Testen of de software met de CS-pin werkt. Dit blijkt te werken. Nog een keer testen op een 2560. Werkt ieder met aparte software. Het grote probleem is het geheugen van de Uno. Het dynamische geheugen is slechts 2k en de global variables eisen al meer. Overstappen op een 2560 geeft ook voordelen als er nog een Wifi kaart met een seriele verbinding moet worden opgenomen. 2560 werkt als een zonnetje. En heerlijk snel ook!
        SCK = blauw = 52 (13)
        MISO = oranje = 50 (12)
        MOSI = geel = 51 (11)
        CS = groen = 53Lan of 49SDcard

  • Opmerkingen
    • Opstarten
    • Indien de LAN connector met werkende internetaansluiting niet is geïnstalleerd dan zal het niet door het opstarten heen te komen. Indien het bordje wel is gemonteerd, maar geen kabel aangesloten dan zal op de monitor na een paar minuten een 0.0.0.0 aansluiting worden getoond. ook als het bordje helemaal niet is geïnstalleerd.
    • Grondvochtigheid
    • Omdat hij toch continu aanstaat en omdat hij toch door de server wordt afgevraagd wordt de couveuse ook gebruikt om vochtigheids-sensors te testen. Nummer1 is rood (connector meest naar het midden van het breadboard). Nummer 2 is de blauwe Capac (aan de middelste connector). Nummer 3 is dan vanzelf groen en zit het meest naar de buitenkant van het breadboard. De groene sensor blikt rare resultaten te geven dus deze heb ik verwijderd. Tijd om weg te gooien denk ik.

  • Hoofdstation vs substations
    1. Geschiedenis
    2. In de allereerste opzet waren alle substations wifi apparaten en werden deze aangesloten via een LAN router op een server (basisstation). Deze server verzorgde dan de interface tussen de besturing (een mobiel) en het flora robot systeem. Hoewel dit makkelijk lijkt bleek al gauw in de praktijk dat de wifi radio frequenties overbezet zijn en dan af en toe ook nog vervuild zijn door extra wifi versterkers bij de buren. Verder zou dit bij een uitrol betekenen dat iedere gebruiker een server zou moeten inrichten om dit systeem te kunnen gebruiken. Dat kan natuurlijk beter.
    3. Verbeterd concept.
    4. Het robotsysteem voor flora services bestaat uit 1 basisstation en (naar keuze) vele substations. De substations kunnen ook zelfstandig werken zonder basisstation. Onder deze link vindt u het plantengedeelte van Flora. De Flora robots zijn allemaal aangesloten op een lokaal netwerk. Daardoor kunnen deze robots op afstand worden bediend met Florabot.
      In dit concept bestaat er 1 hoofdstation en minimaal 1 substation. Er bestaan verschillende soorten substations die allen zelfstandig kunnen werken zonder hoofdstation. U kunt dus al werken met 1 substation naar keuze, zonder hoofdstation.
      • Hoofdstation
      • Een hoofdstation is dus niet noodzakelijk, maar biedt wel een aantal voordelen:
        1. Wereldwijd monitoren en instellen, versus lokaal blue-tooth afstand van het substation.
        2. Alle substations vanaf 1 centrale plaats kunnen monitoren, versus een wandeltocht langs substations.
        3. Communicatie via 433mHz, tot 8 km en geen belasting voor WiFi.
      • Substations
      • Voor alle soorten substations geldt dat alle instellingen die nodig zijn om te kunnen functioneren worden in een eeprom opgeslagen. Daardoor blijven ze jarenlang bewaard, ook als de voeding wordt afgeschakeld. Ieder substation heeft een klok met Lithium accu. De klok blijft 1 jaar lopen zonder voeding. Lokale handbediening als override op ieder substation. 3-standen: Uit(0), Aan(I), Automatisch(II). Bangood
        • Waterklok 4-kanaals
        • Met het waterklok 4-kanaals substation kunnen vier waterkranen worden bediend. De achterliggende gedachte dat een gebied verdeeld in 4 zones bewaterd kan worden. Afhankelijk van de temperatuur en de lichtsterkte krijgt iedere zone een aangepaste hoeveelheid water. In sommige situaties (temperatuur>30) ook 2 keer per dag nodig.

"); 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)