Hallo Zusammen,
anbei präsentiere ich mein aktuelles Projekt und dessen Problematik. Gründe für die Problematiken werden wahrscheinlich sein, dass ich in diesen Gebieten ein blutiger Anfänger bin und hoffe mir daher etwas erfahrene Unterstützung.
Bei meinem Projekt handelt es sich um eine Steuerungsapp, welche den Neigungssensor meines Smartphone oder Tablets ausliest und diese Werte anschließend an ein Raspberry Pi sendet. Hierbei aggiert dieser als Hotspot und somit als Server, welche die Daten später auf einer Webseite darstellt.
Problematik:
Meine Probleme zur Zeit sind aber bei der Datenübertragung vorhanden. Ich habe eine App erstellt, welche erfolgreich die Sensordaten ausliest. Nun stehe ich vor dem Rätsel wie ich diese Daten am besten über eine Socketverbindung zum Raspberry sende. Ich habe schon viel Zeit aufgewendet im Internet nach Möglichkeiten zu suchen, die zu meinem Projekt passen könnten. Leider war ich noch nicht so erfolgreich, was sicherlich auch daran liegen kann, dass ich vor lauter Wald die Bäume nicht mehr sehe. :roll:
Was vielleicht noch zu erwähnen wäre, wobei ich nicht weiß ob es wichtig ist. die App wurde ursprünglich mit Processing erstellt und nach Android Studio importiert.
Hier könnt ihr mal meinen aktuellen Programmiercode sehen:
Ich fände es natürlich super, wenn ein paar von euch euer Wissen mit mir teilen könnten.
anbei präsentiere ich mein aktuelles Projekt und dessen Problematik. Gründe für die Problematiken werden wahrscheinlich sein, dass ich in diesen Gebieten ein blutiger Anfänger bin und hoffe mir daher etwas erfahrene Unterstützung.
Bei meinem Projekt handelt es sich um eine Steuerungsapp, welche den Neigungssensor meines Smartphone oder Tablets ausliest und diese Werte anschließend an ein Raspberry Pi sendet. Hierbei aggiert dieser als Hotspot und somit als Server, welche die Daten später auf einer Webseite darstellt.
Problematik:
Meine Probleme zur Zeit sind aber bei der Datenübertragung vorhanden. Ich habe eine App erstellt, welche erfolgreich die Sensordaten ausliest. Nun stehe ich vor dem Rätsel wie ich diese Daten am besten über eine Socketverbindung zum Raspberry sende. Ich habe schon viel Zeit aufgewendet im Internet nach Möglichkeiten zu suchen, die zu meinem Projekt passen könnten. Leider war ich noch nicht so erfolgreich, was sicherlich auch daran liegen kann, dass ich vor lauter Wald die Bäume nicht mehr sehe. :roll:
Was vielleicht noch zu erwähnen wäre, wobei ich nicht weiß ob es wichtig ist. die App wurde ursprünglich mit Processing erstellt und nach Android Studio importiert.
Hier könnt ihr mal meinen aktuellen Programmiercode sehen:
Java:
package processing.test.sensorkipp_pde;
import ketai.sensors.KetaiSensor;
import processing.core.PApplet;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.lang.*;
import java.io.*;
public class Sensorkipp_pde extends PApplet {
private static class Client {
private Socket socket = null;
private BufferedReader reader = null;
private BufferedWriter writer = null;
public Client(InetAddress address, int port) throws IOException {
socket = new Socket(address, port);
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
}
public void send(String msg) throws IOException
{
writer.write(msg, 0, msg.length());
writer.flush();
}
public String recv() throws IOException {
return reader.readLine();
}
public static void main(String[] args) {
try {
InetAddress host = InetAddress.getByName("192.168.42.1");
Client client = new Client(host, 9000);
client.send("Verbindung zum Server steht!!!!");
String response = client.recv();
System.out.println("Client received: " + response);
}
catch (IOException e) {
System.out.println("Caught Exception: " + e.toString());
}
}
}
KetaiSensor sensor;
//In folgenden Variablen werden die X-, Y- und Z-Beschleunigungswerte eingetragen
float beschleunigungX, beschleunigungY, beschleunigungZ;
public void setup()
{
sensor=new KetaiSensor(this);
sensor.start();
orientation (LANDSCAPE);
textAlign(CENTER, CENTER);
textSize(36);
}
public void draw ()
{
//Variablen für die X- und Y-Positionen des Kreises
int x=0, y=0;
//Variablen für Kippwinkel der X- oder Y-Achse
int kippWinkelY=0, kippWinkelX=0;
background (0, 255, 0);
//Fadenkreuz in der Mitte des Anzeigegerätes
strokeWeight(2);
line(300, 20, 300, 530);
line(20, 300, 570, 300);
//Berechnung der trigometrischen Berechnung der Kippwinkel In Grad (Int)
// Wandelt von float in Int
//Nach Rechts kippen ergibt ein positiven Winkel
kippWinkelX= (int) (atan (beschleunigungY/beschleunigungZ) *180/PI);
//Zum Benutzer kippen ergibt ein positiven Winkel
kippWinkelY= (int) (atan (beschleunigungX/beschleunigungZ) *180/PI);
//Umrechnung der Kippwinkel in dsa xy-Koordinatenpositionen
x=(int)map(kippWinkelX, -90, 90, 0, 600);
y=(int)map(kippWinkelY, -90, 90, 0, 600);
// Kreis wird an gewünschter Koordinatenposition gezeichnet
fill (255, 255, 255);
ellipse(x, y, 50, 50);
fill (0, 0 , 0);
//Gibt Kippwinkel als Text aus
text("Kippwinkel (\u00b0) : \n" + //(3)
"X-Achse: " + kippWinkelX + "\n" +
"Y-Achse: " + kippWinkelY + "\n", width/2, height/2);
}
public void onAccelerometerEvent (float x, float y, float z)
{
//Folgende Methoden werden automatisch aufgerufen bei Sensorwertänderung
beschleunigungX=-x;
beschleunigungY=-y;
beschleunigungZ=-z;
}
public int sketchWidth() { return 600; }
public int sketchHeight() { return 600; }
}
Ich fände es natürlich super, wenn ein paar von euch euer Wissen mit mir teilen könnten.