raspThermoPrint

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo
    ich habe heute bei großen weiten internet durchstöbern was interessantes gefunden was mich auch schon einmal durch den Kopf ging allerdings fehlt es mir am Fachwissen, habe mit mühe und not den Webserver ( der für meine Anwendung voll reicht ) installiert.

    Und zwar .... http://tobiscorner.floery.net/raspberry-pi/r…hermal-printer/

    Zwar habe ich mir schon so nen paar Gedanken gemacht.

    Soll alles über eine webapp laufen und mit Raspberry Pi als Webserver - DNS Update (no-ip.com) via noip2

    Auf der es nur eine Hand voll sachen gibt.

    1. Aktuelle Einkaufsliste
    2. fertige Einkaufslisten ( Rezepte ggf. mit Kochanleitung )

    Es soll einmal direkt aus der webapp gedruckt werden ( ob das geht??? )

    Und einmal soll ein Knopf auf dem Drucker sein, nach dem drucken (egal ob per Knopf am Drucker oder über die webapp ) wird die Einkaufsliste gelöscht ( Natürlich nur die aktuelle nicht die fertige Einkaufslisten.

    Hat jemand eine Idee zur software und Hardware??

    LG
    eknap

    Einmal editiert, zuletzt von ps915 (15. September 2012 um 18:26)

    • Offizieller Beitrag

    Die PHP Webapp kann ich gerne für dich schreiben! Eine Webserver hast du ja schon aufgesetzte! =)

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

    • Offizieller Beitrag

    Also in PHP kannst du so gut wie jeden Befehl ausführen.
    Ich programmiere selber gerade an einem Webinterface für meine RPis.

    Hier ein kleiner Ausschnitt. Mit diesem Code kann ich sogar sudo Befehle ausführen, wenn ich vorher dem www-data User dazu berechtigt habe.
    [code=php]if(isset($_GET['kill'])){
    $pid = $_GET['kill'];

    if( is_numeric($pid) == true ){

    $kill_string ="sudo kill -9 ".$pid;
    exec($kill_string);
    echo "Der Prozess mit der ID <b>$pid</b> wurde beendet!";

    }else{

    echo "Das ist keine gültige Prozess ID";

    }//is_numeric
    }//GET CHECK
    [/php]
    Du kannst mit PHP Programme starten, beenden und so weiter. Alles was du in der Konsole machen kannst, kann man auch mit PHP ansteuern. Wenn der Drucker also per Konsole drucken kann, dürfte alles weitere nur eine Frage des Aufwandes werden. ;)

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

  • Sehr interessant was ihr da vor habt. An sich sollte es mit PHP kein Problem sein, einen Drucker anzusprechen, solange das OS einen Treiber dafür laden konnte.

    @ps915
    Ich würde den Webserver/PHP nicht erlauben im exec ein sudo auszuführen. Eventuell solltest du einen PHP Daemon im Hintergrund laufen lassen, welcher dann für dich die entsprechenden Befehle ausführt. Pear bietet dir dafür die ein oder andere Klasse an.

    Besonders wenn jemand auf die Idee kommt etwa folgendes auf deine URL zu hetzen:
    [code=php]<!--?php
    $i =0;
    while(true){
    $http->url('deineip?kill='.$i);
    $http->sent();
    $i++;
    }[/php]


    Gruß,

    NooK

    Einmal editiert, zuletzt von nook (19. September 2012 um 13:41)

    • Offizieller Beitrag

    nook

    Ja, mir ist bewusst dass es sehr unsicher ist sudo-Befehle auszuführen. Es ist im Moment auch eher zu Testzwecken und im Heimnetzwerk erreichbar und Passwortgeschützt. Werde demnächst diverse Möglichkeiten ausprobieren um es abzusichern!

    Hältst du diese Variante für sicher?

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

    Einmal editiert, zuletzt von ps915 (19. September 2012 um 16:05)

  • Naja ob du jetzt exec oder nicht benutzt macht ja ansich keinen Unterscheid. Wenn du das ganze einmal auf der CLI ausführst, bekommst du ja das selbe Ergebnis:

    Code
    nook$ echo "Hallo Welt" | sudo whoami
    Password:
    root
    nook$


    Wenn du das ganze nur im Heimnetzwerk betreibst ist es ja eigentlich eh "egal". Ich würde wie gesagt einen Deamon schreiben, welcher auch gleich prüft ob die PID, welche du killen möchtest, auch vom Prozessnamen her zu dem Prozess passt, den du Beenden möchtest. Das ganze kann man dann ja noch mit einer SessionId usw weiter sichern.

    Gruß,

    NooK

    Einmal editiert, zuletzt von nook (19. September 2012 um 21:09)

  • Python kannst du soweit ich weiß in PHP nur über die Schellfunktionen ausführen, also einen Kommandozeilenbefehl dessen Ausgabe dann in PHP weiter verarbeitet werden kann.

    [code=php]
    var_dump(exec('python /pfad/zum/python/script/script.py'));
    [/php]

    Das Konstukt führt auf der Kommandozeile das Python-Script aus und übergibt das Ergebnis wieder an das PHP-Script welches den rückgabe Wert einfach in die Standartausgabe schreibt.

  • Guten abend,

    meine RPI's sind immernoch nicht da :(

    Aber der rest.

    Habe erstmal nen neues Debian aufgesetzt http://www.linuxsystems.it/2012/06/raspbi…-minimal-image/

    Update gemacht und "apt-get install python-serial"

    Nun habe ich mir ein verzeichniss erstellt und versucht was zu drucken.

    Script:
    import serial
    ser = serial.Serial('/dev/ttyAMA0', 19200)
    for i in range(100):
    ser.write('HELLO WORLD!')
    ser.flush

    leider = 0 funktion

    Ich werde mich morgen nochmal damit beschäftigen es ist spät und mein Arbeitgeber will plötzlich das ich ne Stunde ehr anfangen soll -.-

    Naja wenn jemand eine idee hat immer her damit.

    Ich berichte morgen oder übermorgen nocheinmal.

    LG
    eknap


  • Hängt bei dir der Drucker denn wirklich an /dev/ttyAMA0?


    Viel mehr serielle Schnittstellen hat der Pi nicht ;)

    Zitat


    Python via PHP kannst du mit

    PHP
    exec('deine.py', $output, $returncode); print_r($output);[/php] ausführen...
    [/quote]
    Warum unbedingt Python für die Serielle? Das kann PHP doch alleine
    [code]
    $string = "Hallo Drucker!\n\r";
    $pointer = fopen("/dev/ttyAMA0","w");
    fwrite ($pointer, $string);
    fclose($pointer);

    Ach, btw, der Pi hat unter Raspian eine Console und den kgdb auf der ttyAMA0 laufen.
    Die solltest Du in der /boot/cmdline.txt noch löschen.

    Einmal editiert, zuletzt von orb (30. September 2012 um 20:35)

  • Hallo
    ich musste Arbeitstechnisch kurz ins Ausland.

    Werde heute wieder nach Hause fliegen und mich morgen nochmal dran setzen.

    orb
    mir war nicht bekannt das man direkt über php die serielle Schnittstelle ansprechen kann.

    Darum habe ich mich für Python entschiden wenn natürlich php das kann fällt die wahl natürlich auf PHP.

    Meinst du in deinem Beitrag vom 30.09.2012 ich sollte die komplette /boot/cmdline.txt löschen?

    LG und bis morgen

  • Hallo miteinander,

    hatte heute mal ein wenig zeit mich damit auseinander zu setzen.

    Danke erstmal für eure tips.

    Nun hab heute mal versucht einfach nur eine Testseite zu drucken.

    Knopf drücken und strom einschalten.

    Leider kommt keine Test Seite. sondern nur nen paar punkte.

    Vill habe ich den Drucken ja schon gekillt :( Aber das glaube ich nicht.

    Ich habe dem onlineshop mal mein problem erläutert mal sehen was die dazu sagen, wenn sie was dazu sagen.

    Er müsste ja zumindest ne Testseite ausspucken.

    Ich habe noch zwei von denen hier rum fliegen http://www.ebay.de/itm/Thermodruc…#ht_2179wt_1216

    Mal gucken ob ich den vielleicht angeschlossen kriege.

    lg
    eknap

  • Guten morgen.

    So 50% der Hardware sind jetzt Kaputt.

    Ich habe einfach nochmal ein anderes Netzteil probiert und siehe da es klappt alles hervorragen.

    Solange ich das über den script mache und starte.

    ----------------------------------------------------

    #!/usr/bin/python
    import serial
    ser = serial.Serial('/dev/ttyAMA0', 19200)
    for i in range(100):
    ser.write('HELLO WORLD!')
    ser.flush

    ----------------------------------------------------

    Aufrufen über php bekomme ich nicht hin meine test Seite dazu

    ----------------------------------------------------
    <h1>Test</h1>
    <?php
    $string = "Hallo Drucker!\n\r";
    $pointer = fopen("/dev/ttyAMA0","w");
    fwrite ($pointer, $string);
    fclose($pointer);
    ?>

    <hr>
    <?php
    var_dump(exec('python /var/http://www.test.py'));
    ?>
    ----------------------------------------------------

    Heute ist echt ein guter Tag.

    Ausnahmsweise Frei und dann kriege ich den Drucker dazu was auszudrucken..

    :D

  • Aufrufen über php bekomme ich nicht hin meine test Seite dazu

    Ich vermute mal ein Rechteproblem beim Zugriff auf die /dev/ttyAMA0.
    Entweder Du packst den Benutzer unter dem Dein Webserver läuft mit in die Gruppe 'tty' oder erlaubst den Zugriff für jeden

    Code
    sudo chmod 666 /dev/ttyAMA0
  • orb natürlich war es ein rechte problem.

    Funktioniert auch.. Manchmal :(

    Hier mal ein Foto
    e3ac9e-1349639884.jpg

    PHP Code dazu
    $kill = "\n\r";
    $top = "Einkaufsliste\n\r";
    $main = "Hallo Drucker!\n\r";

    $bottom = "\n\r";

    $string = $kill.$top.$main.$bottom;

    $pointer = fopen("/dev/ttyAMA0","w");
    fwrite ($pointer, $string);

    fclose($pointer);

    Warum auch immer nur eine variabel richtig gedruckt wird. :)

    Nunja das grundgerüst steht

    Jetzt folgt nurnoch das alles korrekt gedruckt wird

    FETT Unterstrichen

    Vill auch bilder hab ich aber noch keine vorstellung von wie ich das anstellen soll :D

    So aber nun erstmal wieder Arbeiten.

    Schönen abend heute noch

    Einmal editiert, zuletzt von eknap (7. Oktober 2012 um 22:01)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!