- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: AVR als MySQL-Server?

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009

    AVR als MySQL-Server?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Moin.

    Es gibt ja schon einige Projekte, in denen ein AVR als normaler HTTP-Server arbeitet und z.B. per SD-Karte eine Webseite zur Verfügung stellt.

    Kennt jemand so ein Projekt, in dem der AVR die Funktion eines MySQL-Servers übernimmt? Also Datenbanken auf ner SD-Karte speichern, mit PHPMyAdmin verwalten und dann von "irgendwo" auf Port 3306 zugreifen und die Daten holen?

    Wäre auf Dauer stromsparender als ein direkter Rechner, der nix anderes zu tun hat, als nur die Datenbank zur Verfüfung zu stellen.

    mfG
    #ifndef MfG
    #define MfG

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.10.2006
    Ort
    Bayern
    Alter
    36
    Beiträge
    313
    Blog-Einträge
    1
    Hi Jaecko,

    ich fürchte fast, dass ein Datenbankserver etwas zu viel ist für nen normalen AVR. Vieleicht mit nem ARM (von Atmel oder sonstwem). Auf jeden Fall behaupte ich jetzt hier in die Runde rein, dass Datenbankserver UND Webserver Und PHP (phpMyAdmin) für nen AVR sicher zuviel ist.

    Als Alternative kann ich dir aber folgendes Vorschlagen:

    1.) Ein Rechner, der dauerhaft läuft und mit VMWare Server mehrere andere Rechner (MySQL, Webserver, Fileserver, Printserver, Mailserver was dir sonst noch so einfällt) virtualisiert...

    2.) Ein Alixboard zum Beispiel das Alix2c1. Genauere Infos direkt beim Hersteller: http://www.pcengines.ch/alix.htm

    Ich verwende so ein Alix board übrigens als Router mit IPCop drauf, funktioniert super...

    Mfg.
    Lemon

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    27.11.2004
    Beiträge
    21
    Eventuell kannst du dir auch einen einfachen DSL - Router besorgen und openWrt o.ä. drauf installieren.

    Als Speicher könntest du dann ggf einen USB Stick nutzen (müsste eingentlich funktionieren)

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.06.2008
    Ort
    Rösrath
    Alter
    39
    Beiträge
    332
    Ein normaler AVR scheitert allein schon am Arbeitsspeicher.. Und die Performance wäre wohl auch nicht tragbar.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    15.11.2008
    Beiträge
    18
    schau mal hier

    www.ulrichradig.de

    edit: geht! schau mal unter AVR , da sind 2 webserver beschrieben

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    n PHP Parser auf AVR ... hmmm ... nicht unmöglich
    aber kaum realistisch.
    Wenn dann müsstest Du den quasi zu Fuß proggen
    und das wär schon ne ziemlich heftige Geschichte.
    Das liefe dann in etwa auf nen Apache Server hinaus,
    ohne OS, nicht wirklich.
    Such mal nach dem kleinst möglichen System für n
    Linux OS, dann haste vermutlich Dein System.
    ARM9 oder AVR32 halte ich für realistisch.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    Thx für die Anregungen/Hinweise.
    Also so wie's aussieht, wirds mit dem AVR wohl nichts. Diese Alix schauen so aufs erste nicht schlecht aus. Mal umsehen, wo's die so gibt.

    HTTP/PHP muss hier garnicht sein, das kann alles extern ablaufen (bzw. läuft auch extern ab). Es würde nur um die reine Datenbankverwaltung gehen.

    Per VMWare wärs zwar machbar, aber das löst das eigentliche "Problem" nicht, dass ja dazu kein "grosser" PC mehr verwendet werden soll.
    #ifndef MfG
    #define MfG

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    Bei der Datenbankverwaltung geht es ja gerade
    um die Benutzeroberfläche. Ne MySQL Datenbank
    hat die nämlich direkt nicht, dafür gibts dann
    phpMyAdmin und das ist eben PHP-Script.
    php Files sind im Prinzip HTML Files mit
    eingebetteten php Scripten, die beim Aufruf der
    Datei interpretiert werden. Natürlich serverseitig.
    Daher brauchts nen Webserver, z.B. Apache
    der das dann erkennt und dem php Parser zuschiebt.
    Je nach Servereinstellungen können Dateiendungen
    für php-files sein:
    .php
    .php3
    .php4
    .phtml
    .phtm
    manchmal auch
    .htm
    .html
    aber das macht man nicht so gern, weil dann auch
    normale websites immer durch den Parser laufen, was
    den Server dann mehr belastet.

    ne normale php Seite ist in etwa so aufgebaut:
    <html>
    <head>
    <title> xyz </title>
    </head>
    <body>
    <?php
    echo 'hallo Welt';
    ?>
    </body>
    </html>

    Das ist dann ne ganz normale html Seite, nur der Teil zwischen
    den php-Tags wird interpretiert. Dort stehen dann auch die
    Sachen von der Datenbankanbindung, Datenbankaktionen usw.
    drinne.

    Hier hab ich mal nen Auszug aus nem Script, bei dem ich per
    php n java-script erstelle ...

    <script>
    // (C) 2000 www.CodeLifter.com
    // http://www.codelifter.com
    // Free for all users, but leave in this header
    // NS4-6,IE4-6
    // Fade effect only in IE; degrades gracefully

    // =======================================
    // set the following variables
    // =======================================

    // Set slideShowSpeed (milliseconds)
    var slideShowSpeed = 3000

    // Duration of crossfade (seconds)
    var crossFadeDuration = 3

    // Specify the image files
    var Com = new Array()
    var Pic = new Array() // don't touch this
    // to add more images, just continue
    // the pattern, adding to the array below

    <?php

    $pfad=$_SERVER['REQUEST_URI'];
    //echo $pfad;
    $teilpfad = explode("?", $pfad);
    $Files=array();
    $verz=opendir(".");

    while ($Datei=readdir($verz)){
    array_push($Files,$Datei);
    }

    if (is_file("comment.txt") && $Datei= file("comment.txt")){
    $Zaehler=0;
    foreach ($Datei as $Zeile){
    $Zeilegeteilt= explode(";",$Zeile);
    //$filename[$Zaehler]=$Zeilegeteilt[0];
    $comment[trim($Zeilegeteilt[0])]=trim($Zeilegeteilt[1]);
    //$Zaehler++;
    }
    }
    else {
    $filename[0]="";
    $comment[0]="";
    }
    sort($Files);
    reset($Files);

    //if (isset($HTTP_GET_VARS["Slide"])){
    $bildzaehler=0;
    //print_r($Files);
    while(list($index,$Datei) = each($Files)){
    if (is_file($Datei)){
    $Dateierweiterung=pathinfo($Datei);
    $Dateierweiterung=$Dateierweiterung["extension"];
    if (strlen($Datei)>3 && $Datei<>"Thumbs.db"){
    if ($Dateierweiterung=="jpg" or $Dateierweiterung=="JPG"){
    if (is_file("$Datei")){
    echo "Pic[$bildzaehler] = 'http://www.weingut-hoerner.de".$teilpfad[0].$Datei."'\r\n";

    if (array_key_exists($Datei, $comment)){
    echo "Com[$bildzaehler] = '".$comment[$Datei]."
    '\r\n";
    }
    else {
    echo "Com[$bildzaehler] = '
    '\r\n";
    }
    $bildzaehler++;
    }
    }
    }
    }
    }
    //}
    ?>


    // =======================================
    // do not edit anything below this line
    // =======================================

    var t
    var j = 0
    var p = Pic.length

    var preLoad = new Array()
    for (i = 0; i < p; i++){
    preLoad[i] = new Image()
    preLoad[i].src = Pic[i]
    }

    function runSlideShow(){
    if (document.all){
    document.images.SlideShow.style.filter="blendTrans (duration=2)"
    document.images.SlideShow.style.filter="blendTrans (duration=crossFadeDuration)"
    document.images.SlideShow.filters.blendTrans.Apply ()
    }
    document.images.SlideShow.src = preLoad[j].src
    document.getElementById('comment').innerHTML = Com[j]
    //document.getElementById('comment').text=Com[j]
    if (document.all){
    document.images.SlideShow.filters.blendTrans.Play( )
    }
    j = j + 1
    if (j > (p-1)) j=0
    t = setTimeout('runSlideShow()', slideShowSpeed)
    }
    </script>

    das könnte im prinzip auch in C oder Bascom funktionieren
    mit etwas umbau versteht sich.

    Was Du auf nem AVR machen kannst wär ne
    Clientseitige verarbeitung z.B. per Java-Script.
    Oder Java Applet. Sprich Du schickst Deinen gesamten
    Datenbestand, der auch z.B. in ner csv-Datei liegt
    mit Rüber zum Client, der führt dann die gewünschten
    Operationen durch und schickt die neue Datenbank
    als csv an den Server zurück, der sie dann wieder
    auf der SD-Karte speichert ... der Haken ist nur, dass
    Quasi immer nur ein Client das machen kann.
    Und es gibt halt etwas mehr Traffic.
    Und natürlich ist der gesamte Datenbestand für den
    Client ersichtlich.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    Also den Aufbau mit PHP & Co kenn ich schon.
    Zur Zeit ist es so,dass ein Server A die ganze Oberfläche bietet, also Webseite, PHP etc. Server B (der, der ausgetauscht werden soll) beinhaltet nur die Datenbank und ist auch nur über Port 3306 erreichbar. Fällt der aus, läuft zumindest die Webseite noch und alle php-Daten, die keinen Datenbankzugriff brauchen.
    Die .php greifen also nicht kalssisch per "localhost" drauf zu.

    aber das mit dem eigenen "Protokoll" wär wohl das einfachste. Geändert sind die phps ja gleich.
    #ifndef MfG
    #define MfG

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    ach so, jetzt versteh ich ... praktisch
    den AVR als Fileserver nutzen ...
    ja, das könnte gehen.
    Kommt halt auch auf die Datenmenge an.
    bei $_POST auf den AVR weiß ich nicht
    bescheid, da muss ich passen.
    Über Get kleine Datenpakete im x Byte Bereich
    könnte man vermutlich zusammenstricken
    aber x Kilobyte, da wirds RAMmäßig halt eng.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen