INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino simulierte Kaffemaschiene mit Serveranbindung
28.02.2014, 18:41
Beitrag #1
Arduino simulierte Kaffemaschiene mit Serveranbindung
Hallo zusammen

Ich möchte mit einem Arduino, 4 taster, 1 lichtsensor, und einer LED eine Kaffemaschine simulieren. Die Kaffemaschine soll per Ethernet mit einem Server verbunden werden können. Die Serverapplikation soll ein simples Komandozeilenprogramm auf meinem Mac sein. Die Serverapplikation ist da um zu tracken wann welcher kaffe "verkauft" wurde und um gegebenenfalls kafferezepte auf dem arduino zu updaten.

Das Projekt mache ich im Rahmen meiner Ausbildung, ich denke dass ich dabei viel Lernen werden. Die Serverapplikation wird in C (C99) geschrieben und Arduino eben mit diesem Arduino C Dialekt.

Eine erste Frage habe ich schon bevor isch losleg.

Den Arduino programmiere ich mit dem Ardiuno C, auch die client kommuniktion über Ethernet. Kannn ich die Serverapplication normal in C schreiben und normal sockets verwenden?


Viele Grüsse
User17
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.02.2014, 18:48
Beitrag #2
RE: Arduino simulierte Kaffemaschiene mit Serveranbindung
Hi,
ob das mit Sockets geht kann ich Dir nicht wirklich beantworten. Was aber definitiv ganz einfach geht, ist dem Arduino (mit Ethernet Shield oder gleich Arduino Ethernet) per HTTP etwas zu schicken wie...
http://<ip-vom-arduino>/wievelkaffeehastduverkauft
...und der Arduino antwortet einfach mit
5
oder etwas sauberer:
HTTP/1.1 200 OK

5
Es geht wohl auch umgekehrt, dass der Arduino als Client fungiert und regelmäßig einem Server irgendwas schickt, aber das habe ich selbst nicht ausprobiert.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.03.2014, 12:21 (Dieser Beitrag wurde zuletzt bearbeitet: 01.03.2014 12:21 von rkuehle.)
Beitrag #3
RE: Arduino simulierte Kaffemaschiene mit Serveranbindung
Hallo User17,
Zitat:Kannn ich die Serverapplication normal in C schreiben und normal sockets verwenden?
Für die Serverapp. kannst du die Sprache deiner Wahl benutzen, insofern darin Sockets abgebildet / genutzt werden können.
Die vom Arduino genutzte Ethernet-Lib kann max. 4 Sockets parallel bedienen.Dabei ist es egal ob nur Input,Output oder beides.
Allerdings zu bedenken: Auch wenn das Ethernet Shield mit dem Wiznet 5100 Chip mit bis zu 100 MB angebunden werden kann, kann auf Grund der Performance des Aurduino ,speziell des Byte-organisierten Datenaustausches des Ethernet-Shield über den SPI-Bus des Arduino, diese Transferrate lange nicht erreicht werden.
Hier ist der Einsatz eines Shields mit Wiznet 5200 Chip und der entsprechenden Library sinnvoller.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.03.2014, 19:23
Beitrag #4
RE: Arduino simulierte Kaffemaschiene mit Serveranbindung
Danke für die Antworten.

Es ist ein Arduino Ethernet geworden, sollte für meine Zwecke reichen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.03.2014, 09:37 (Dieser Beitrag wurde zuletzt bearbeitet: 25.03.2014 09:55 von User17.)
Beitrag #5
RE: Arduino simulierte Kaffemaschiene mit Serveranbindung
Ich hab mir ein Arduino Ethernet gekauft, die kaffemaschinensymulation funktioniert soweit auch schon. Ich wollte jetzt die Ethernet Kommunikation in einem anderen Tab implementieren, bzw. mittels c header und implementations Dateien. ich hab jetzt schon einige Stunden damit verbracht das zum laufen zu bringen und bin langsam am verzweifeln. Egal welche Kombination ich ausprobiere, es geht nicht.

Am erfolgreichsten war ich bis jetzt damit einen eigene header Datei als neuen Tab anzulegen und dort drin die Libraries mit "" und den Kompleten Pfad einzubinden. Dann diese Header Datei in die hauptdatei.ino auch mit "" einbinden.

was mich besonders erstaunt hat ist das wenn ich keinen zweiten Tab benutze, und die Libraries in der Hauptdatei einbinde, funktioniert es mit include <lib name.h> aber mit include "kompleter Pfad lib name.h" funktioniert es nicht. Ich bekomme zwar keine "xy does not name a type" Fehlermeldung, aber dafür eine "undefined reference to xy"

kann mir jemand weiterhelfen?

Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.03.2014, 13:06
Beitrag #6
RE: Arduino simulierte Kaffemaschiene mit Serveranbindung
so ich hab jetzt noch etwas rumgegooglet und herausgefunden dass es wohl oder über so ist, dass man alle libraries die man in den eigenen libraries braucht, in den main sketch includen muss. Für den compiler irgendwie.

Ich habes jetzt mal geschaft definitionen in eine header datei auszulagern und diese in den main sketch einzubinden. Das Funktioniert soweit aber sobald ich in der zur header gehörenden .cpp file eine Funktion definiere, bekomme ich unsinnige fehlermeldungen wie :
Code:
communication.cpp.o: In function `any_function(int)':
C:\Users\lucasa\AppData\Local\Temp\build7902041112851803674.tmp/communication.cpp:4: multiple definition of `ip'
ChatServer.cpp.o:(.bss.ip+0x0): first defined here
communication.cpp.o: In function `any_function(int)':
C:\Users\lucasa\AppData\Local\Temp\build7902041112851803674.tmp/communication.cpp:4: multiple definition of `gateway'
ChatServer.cpp.o:(.bss.gateway+0x0): first defined here
communication.cpp.o: In function `any_function(int)':
C:\Users\lucasa\AppData\Local\Temp\build7902041112851803674.tmp/communication.cpp:4: multiple definition of `subnet'
ChatServer.cpp.o:(.bss.subnet+0x0): first defined here
communication.cpp.o: In function `any_function(int)':
C:\Users\lucasa\AppData\Local\Temp\build7902041112851803674.tmp/communication.cpp:4: multiple definition of `server'
ChatServer.cpp.o:(.bss.server+0x0): first defined here
communication.cpp.o:(.data.mac+0x0): multiple definition of `mac'
ChatServer.cpp.o:(.data.mac+0x0): first defined here
communication.cpp.o: In function `any_function(int)':
C:\Users\lucasa\AppData\Local\Temp\build7902041112851803674.tmp/communication.cpp:4: multiple definition of `alreadyConnected'
ChatServer.cpp.o:(.bss.alreadyConnected+0x0): first defined here

Hier ist der Code:
ChatClient.ino:
Code:
/*
Chat  Server
Arduino example file
*/

#include <SPI.h>
#include <Ethernet.h>
#include "communication.h"



void setup() {
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
  Serial.begin(9600);
   while (!Serial) {
    int back = any_function( 4 );
  }

  Serial.print("Chat server address:");
  Serial.println(Ethernet.localIP());
}

void loop() {

  EthernetClient client = server.available();

  if (client) {
    if (!alreadyConnected) {
      client.flush();    
      Serial.println("We have a new client");
      client.println("Hello, client!");
      alreadyConnected = true;
    }

    if (client.available() > 0) {
      char thisChar = client.read();
      server.write(thisChar);
      Serial.write(thisChar);
    }
  }
}

communication.h:
Code:
#ifndef COMMUNICATION_H
#define COMMUNICATION_H

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 177);
IPAddress gateway(192,168,1, 1);
IPAddress subnet(255, 255, 0, 0);


// telnet defaults to port 23
EthernetServer server(23);
boolean alreadyConnected = false; // whether or not the client was connected previously

int any_function( int val );

#endif

communication.cpp:
Code:
#include "communication.h"


int any_function( int val ){
  int result = val + val;
  return result;
}

Ich währe wirklich sehr froh wenn mir jemand weiterhelfen könnte.
Kann mir jemand einen beispielcode mit eingebundenen header dateien und cpp dateien schicken?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Neuling: Zugeklappten Laptop mit Arduino aufwecken + Kiste aufklappen? Ikearegal 2 2.515 02.02.2014 07:59
Letzter Beitrag: Ikearegal

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste