Gå til innhold

RaspberryPi nettside med knapp som spiller musikk


Anbefalte innlegg

Hei, jeg lurte bare på en sak. Jeg har lyst til å gjøre bare et veldig enkelt prosjekt på min raspberry pi B+, og det er å opprette en hjemme server, (noe som jeg allerede har gjort), og lage en nettside på hjemmeserveren med en knapp eller noe sånt også hvis man klikker på den knappen så skal jeg liksom få til å spille av en (.wav) filtype av på raspberry pi'en. Hvis du lurte så har jeg bare en music angel tilkoblet til den, så jeg kan enkelt spille av en (.wav) fil i terminal vinduet med "aplay (navnet).wav". Greia er at dette høres ut som et veldig enkelt prosjekt, men det er faktisk vankeligere en jeg hadde trodd :p 

 

<html>
<head>
<meta charset="UTF-8" />
<title>Example document</title>
</head>
 
 
<?php
if (isset($_POST['LeftOPEN']))
{
exec("sudo python /home/pi/messenger.py");
}
?>
<form method="post">
<button name="LeftOPEN">Play</button>
 
 
 
</form>
 
Dette er veldig grunnleggende php koding og som du ser bare starter jeg en python fil etter å ha klikket på knappen. (PS: Ikke spør of "LeftOpen", det var bare noe shit jeg kom på i farta).
 
også får å spille av en fil brukte jeg denne koden i python :
 
import pygame
pygame
.init()

pygame.mixer.music.load("(navnet).wav")
pygame.mixer.music.play()
pygame.event.wait()
 
jeg bare kopierte den fra internet, fordi jeg ikke kan noe python koding i det hele tatt, jeg vet omtrent hvordan jeg starter en python fil! Kommer til å sette meg inn i det, men har bare for mye å gjøre med skolen til å gidde å sette meg ned med akkurat python :p Hvertfall dette skal liksom få en musikk fil til å spille av igjen. Så når jeg klikker på knappen på nettsiden på hjemmeserveren så vil det starte en python kode til å kjøre også videre vil python koden få (.wav) filen til å spille av på raspberry pi'en. Dette er hvertfall teorien, og faktisk siden jeg ikke engang har satt meg inn i python så vet jeg egentlig ikke om at python koden funker. Så plis rett hvis du har en ide om det er helt hemma python kode eller ikke :p (Bra ord forhold, ikke sant?, lol). Hvertfall dette funker ikke, og har dere noen ide om hvordan man kan fikse det så hadde det vært veldig bra!
 
Jeg har et spørsmål til : (dette trengs ikke å svare på, men kan ha noe å si om hva som er galt eller ikke)
 
(På raspberry pien min hvis jeg for eksempel : la meg ta et dårlig eksempel ;
<?php
$noe = "noe hemma";
$handlingen = fopen("Tekstdokument.txt","a");
fwrite($handlingen, $noe);
fclose($handlingen);
?>
(som du ser veldig dårlig eksempel, men du forstår), på raspberry pi'en så funker det ikke å skrive eller bruke (FWRITE) kommandoen i php, men hvis dette hadde vært på en hjemmeserver på pc-en min, for eksempel (wamp server) eller xampp server, ville dette funket helt okei! Men tydeligvis av en eller annen mystisk hensikt gjør ikke en akkurat presis samme kode det, på raspberry pi'en. Vet noen svaret?
 
(Jeg beklager virkelig hvis det er over 100 tusen skrivefeil, men det var så sent at jeg ikke hadde tid til å se gjennom alle feilene og se om jeg har formulert meg riktig, så dette er tross alt skrivt spontant uten stopp)
 
PS: Vær så snill å kommenter hvis du har svaret på første spørsmål, men hvis du i tillegg eller bare vet andre spørsmål så hadde det vært fint om du hadde hjulpet meg med å løse denne såkalte raspberry pi gåten!
Lenke til kommentar
Videoannonse
Annonse

Hvem er "du" som du referer til Enthroner? Synes 1EDA70 skriver ganske utfyllende.

 

"(Jeg beklager virkelig hvis det er over 100 tusen skrivefeil, men det var så sent at jeg ikke hadde tid til å se gjennom alle feilene og se om jeg har formulert meg riktig, så dette er tross alt skrivt spontant uten stopp)" Jeg må si meg enig i at det var en del feil og tunge setninger. Det er bedre etikette å bruke fem ekstra minutter på spørsmålet for å gjøre det så lett som mulig for folk å svare. Er dog enig i at det absolutt ikke er det værste jeg har sett her heller :)

 

Eksempelvis tar det kortere tid for TS å bytte LeftOPEN med f.eks PlaySong enn å bruke tid på å skrive "(PS: Ikke spør of "LeftOpen", det var bare noe shit jeg kom på i farta).". 

 

Forøvrig så er både klassen Dan-Levi og forslaget til Gavekort noe jeg stiller meg bak som muliig løsning.

Lenke til kommentar

 

Hvem er "du" som du referer til Enthroner? Synes 1EDA70 skriver ganske utfyllende.

 

"(Jeg beklager virkelig hvis det er over 100 tusen skrivefeil, men det var så sent at jeg ikke hadde tid til å se gjennom alle feilene og se om jeg har formulert meg riktig, så dette er tross alt skrivt spontant uten stopp)" Jeg må si meg enig i at det var en del feil og tunge setninger. Det er bedre etikette å bruke fem ekstra minutter på spørsmålet for å gjøre det så lett som mulig for folk å svare. Er dog enig i at det absolutt ikke er det værste jeg har sett her heller :)

 

Eksempelvis tar det kortere tid for TS å bytte LeftOPEN med f.eks PlaySong enn å bruke tid på å skrive "(PS: Ikke spør of "LeftOpen", det var bare noe shit jeg kom på i farta).". 

 

Forøvrig så er både klassen Dan-Levi og forslaget til Gavekort noe jeg stiller meg bak som muliig løsning.

 

Står nok LeftOPEN fordi han ikke har skrevet PHP koden selv, men har hentet det fra et Raspberry pi garasjeport åpner prosjekt  :wee:

 

Har brukt akkurat samme php koden selv for å "web enable" porten min med en Raspberry pi, så kjente det fort igjen.

Lenke til kommentar

 

 

Hvem er "du" som du referer til Enthroner? Synes 1EDA70 skriver ganske utfyllende.

 

"(Jeg beklager virkelig hvis det er over 100 tusen skrivefeil, men det var så sent at jeg ikke hadde tid til å se gjennom alle feilene og se om jeg har formulert meg riktig, så dette er tross alt skrivt spontant uten stopp)" Jeg må si meg enig i at det var en del feil og tunge setninger. Det er bedre etikette å bruke fem ekstra minutter på spørsmålet for å gjøre det så lett som mulig for folk å svare. Er dog enig i at det absolutt ikke er det værste jeg har sett her heller :)

 

Eksempelvis tar det kortere tid for TS å bytte LeftOPEN med f.eks PlaySong enn å bruke tid på å skrive "(PS: Ikke spør of "LeftOpen", det var bare noe shit jeg kom på i farta).". 

 

Forøvrig så er både klassen Dan-Levi og forslaget til Gavekort noe jeg stiller meg bak som muliig løsning.

 

Står nok LeftOPEN fordi han ikke har skrevet PHP koden selv, men har hentet det fra et Raspberry pi garasjeport åpner prosjekt  :wee:

 

Har brukt akkurat samme php koden selv for å "web enable" porten min med en Raspberry pi, så kjente det fort igjen.

 

Haha, Forresten konstruktiv tilbakemelding er alltid bra og blir tatt med både alvor og et smil, men det er helt riktig MR A, det er faktisk en garasje port åpner, så det jeg egentlig gjorde var bare å kopiere scriptet fra den artikkelen og lime det inn her for å lansere et eksempel :D 

Lenke til kommentar
Dropp PHP og bruk Flask istedet, så blir ting litt lettere ihvertfall.

Enig der.

Hvertfall dette skal liksom få en musikk fil til å spille av igjen. Så når jeg klikker på knappen på nettsiden på hjemmeserveren så vil det starte en python kode til å kjøre også videre vil python koden få (.wav) filen til å spille av på raspberry pi'en.

Hadde brukt Flask(servere) HTML 5 audio player og lastet filer med JavaScript for og spille av musikk.

Kan skrive en demo med Pygame,så slipper du det litt stygge exec() kallet fra PHP til Python.

Flask

Server:

from flask import Flask, render_template, request
from werkzeug import secure_filename
import pygame.mixer

app = Flask(__name__)
@app.route('/upload')
def upload_file():
   return render_template('upload.html')

@app.route('/uploader', methods=['GET', 'POST'])
def upload():
    if request.method == 'POST':
        f = request.files['file']
        pygame.mixer.init()
        pygame.mixer.music.load(f.filename)
        pygame.mixer.music.play()
    return "Playing..."

if __name__ == '__main__':
   app.run(debug=True)

upload.html:

<!doctype html>
<html>
  <body>   
    <form action = "http://localhost:5000/uploader" method="POST" 
       enctype="multipart/form-data">
       <input type="file" name="file" />
       <input type="Submit" value="Play"/>
    </form>      
  </body>
</html>

Server virker som en mainloop for Pygame.

Fungere noenlunde greit,krasjer noen ganger og liker ikke alle filetyper "mp3" går fint.

Valg av filer kan droppes,viss du skal trykke på en knapp og samme fil skal spilles hver gang.

og faktisk siden jeg ikke engang har satt meg inn i python så vet jeg egentlig ikke om at python koden funker

 

Du får gjøre en liten innsats på og lære litt,

klipp og lim er litt lotto og når du raspberry pi er Python greit og kjøre.

 

 

Lenke til kommentar

Hadde tenkt til å poste et innlegg her med et node.js socket.io eksempel med bootsrap frontend, men så innlegget fra snippsatt angående Flask, som var ganske elegant.

 

Skulle det likevel være interessant er det ikke skrotet, men er ikke vits å overforsvømme tråden med kode om løsningen allerede er på plass, og mitt oppsett er en god del linjer lenger.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...