Ich habe irgendwo gelesen, dass dies eine Standard C/C++ Funktion ist
und man nur einen Kompiler installieren muss... ich arbeite mit Windows
10 und weiß nicht so recht was man da braucht...
=> kann mir da jemand weiterhelfen?
viele grüße
mimi
Das ist eine C++ Klasse der C++ Standard Bibliothek. Der AVR-GCC, der
von Arduino genutzt wird, liefert die nicht mit. Die müsste man erst
portieren (aufwendig), oder eine komplett andere Klasse benutzen. Die
ist ohnehin nicht besonders für kleine Mikrocontroller geeignet, da sie
eine dynamische Speicherverwaltung benötigt. Daher besser mal überlegen,
ob das nicht ganz anders geht...
Hallo,
in Arduino/libraries gibt es mormalerweise keine SocketIoClient.
Wenn sie selbst installiert wurde, gehört sie dort nicht hin sondern
nach sketchbook/libraries.
In SocketIoClient.h:5:15 gibt es in den ersten 28 Zeilen nur Kommentar
und auch sonst kein #include <map>.
#include <map> ergibt auch keinen Sinn, includiert werden normalerweise
Headerdateien und die heißen hint .h
Was ist also das wirkliche Problem und sein Zustandekommen?
Gruß aus Berlin
Michael
Hallo Michael,
dann hast du eine andere SocketIoClient.h als ich...
ich habe meine über die Bordverwaltung bezogen und diese wurde genau
hier hininstalliert und ist auch meinerseits unverändert
ich hab die Version 0.3.0 von Vincent Wyszynski
Michael U. schrieb:> #include <map> ergibt auch keinen Sinn, includiert werden normalerweise> Headerdateien und die heißen hint .h
Die C++ Standard Header haben kein .h . Lediglich zur Kompatibilität
mit alten Implementationen kann man teilweise auch das .h anhängen.
Hallo, -
Die Library findest Du in
https://github.com/timum-viw/socket.io-client
Dort findest Du auch ein Readme-File, die Dir beschreibt wie
Du das Ding benutzt (stdc++ hinzulinken).
Hast Du die Platform.txt auf Deiner Maschine angepasst (wie
in dem Readme beschrieben?)
Gruesse
Th.
Hallo,
mimi schrieb:> dann hast du eine andere SocketIoClient.h als ich...
ok, ich war bei der falschen, vergiß meinen Post...
Inzwischen gab es ja zum Glück bessere Hinweise.
Gruß aus Berlin
Michael
tom schrieb:> Hallo, ->> Die Library findest Du in> https://github.com/timum-viw/socket.io-client>> Dort findest Du auch ein Readme-File, die Dir beschreibt wie> Du das Ding benutzt (stdc++ hinzulinken).>> Hast Du die Platform.txt auf Deiner Maschine angepasst (wie> in dem Readme beschrieben?)>> Gruesse>> Th.
Diese Lib ist für ESP8266, dessen GCC-Port sicher auch stdc++ enthält.
Falls die Zielplattform tatsächlich ein (Ur-)AVR-Arduino ist, dann fehlt
stdc++.
In der library,json steht zwar 'plattforms "*"', das würde ich aber
nicht so ernst nehmen. <map> geht OutOfTheBox eher nur mit 32-Bit MCUs.
library.properties ist übrigens expliziter:
sentence=socket.io Client for ESP8266 and Arduino
und! nicht oder, beides muß zutreffen
Hi,
hm, ich bin am verzweifeln. Kann mir jemand einen Microcontroller
empfehlen, welcher Ethernet (kabelgebunden) hat und mit nodejs (bzw.
socket.io) arbeiten kann.
Ich habe bereits einen node.js server und darauf ist express und
socket.io, der dienst läuft schon seit jahren und ist in diversen
Smart-Home Projekten eingebunden...
Jetzt möchte ich das ganze mit "eigenen" Hardware-Tools erweitern.
Allerdings weiß ich nicht so richtig wo ich ansetze... Ich habe mir
jetzt nen Arduino mit W5500 geholt
(https://www.ebay.de/itm/183198518482), klingt eigentlich
vielversprechend. Leider bekomme ich es nicht hin mich zu verbinden.
PS. der Server hat eine Verschlüsselte SSL Verbindung.
freue mich über jeden Tipp
danke
mimi
Für TCP/IP über Ethernet sind die 8-bit-Controller nicht wirklich
geeignet - das, was es gibt (wie z.B. dein W5500), sind Pfuschlösungen.
Bei SSL ist dann erst recht Sense.
Ich denke, du bist mit nem Linux-Board besser bedient. Z.B. nen
Raspberry Pi oder was von Olimex mit direkt angebundenem Ethernet, z.B.
Lime oder RT5350F-EVB.
mimi schrieb:> Hi,>> hm, ich bin am verzweifeln. Kann mir jemand einen Microcontroller> empfehlen, welcher Ethernet (kabelgebunden) hat und mit nodejs (bzw.> socket.io) arbeiten kann.
Da gibt es doch etliche. Haufenweise STM32 (Cortex M) oder z.B. ESP32.
> Jetzt möchte ich das ganze mit "eigenen" Hardware-Tools erweitern.> Allerdings weiß ich nicht so richtig wo ich ansetze... Ich habe mir> jetzt nen Arduino mit W5500 geholt> (https://www.ebay.de/itm/183198518482), klingt eigentlich> vielversprechend. Leider bekomme ich es nicht hin mich zu verbinden.
Wenn Du den schon hast, dann solltest Du besser Deine Probleme damit
lösen.
Hier im Forum gibt es doch genug, die damit schon gearbeitet haben.
Beschreib doch einfach, was Du bisher gemacht hast und an welcher Stelle
es hakt. Dann wird sich die Ursache Deines Problems sicher schnell
finden.
foobar schrieb:> Für TCP/IP über Ethernet sind die 8-bit-Controller nicht wirklich> geeignet - das, was es gibt (wie z.B. dein W5500), sind Pfuschlösungen.> Bei SSL ist dann erst recht Sense.
Das ist doch Bullshit.
1. ist der W5500 genau für solche kleinen Controller gemacht und
2. kann man mit dem W5500 SSL/TLS1.2 einsetzen. Gibt ja
OpenSource-Bibliotheken dafür.
> Ich denke, du bist mit nem Linux-Board besser bedient. Z.B. nen> Raspberry Pi oder was von Olimex mit direkt angebundenem Ethernet, z.B.> Lime oder RT5350F-EVB.
Warum nicht gleich ein HPC-Cluster mit ein paar Millionen GPUs?
mimi schrieb:> Ich habe bereits einen node.js server und darauf ist express und> socket.io, der dienst läuft schon seit jahren und ist in diversen> Smart-Home Projekten eingebunden...
Mein Lösungsweg wäre:
Schreib ein zweites node.js-Programm für deinen Server. Das verbindet
einmal per Websocket nach localhost und stellt zum zweiten ein
µC-taugliches Protokoll zur Verfügung. Plain-Text over Plain-TCP,
Weiterleitung an einen MQTT-Server o.Ä.
Websocket auf kleinen µCs ist nicht so einfach. Json-Payload erfordert
viel dynamische Strukturen im RAM, entweder große pre-allozierte Buffer
oder malloc&co.
Oder steig auf was "dickeres" um, ESP8266, ESP32. Kannst du auch in
Arduino programmieren, also keine große Umstellung für dich wenn du die
nicht willst.
mimi schrieb:> Kann mir jemand einen Microcontroller> empfehlen, welcher Ethernet (kabelgebunden) hat und mit nodejs (bzw.> socket.io) arbeiten kann.
Wie wäre es mit dem ESP32? Der kann auch Ethernet (wenn man ihm einen
PHY spendiert), und es gibt von Olimex auch fertige Boards mit ihm, dem
PHY und einer RJ45-Buchse.
man muss sich da wohl etwas durch die Doku/Quellen hangeln. In Socket.io
steht das die Websockets von M. Sattler benutzt werden:
https://github.com/Links2004/arduinoWebSockets
Darin wird darauf hingewiesen das die Version 2 wegen der fehlenden C++
Stdlib auf AVR nicht benutzt werden kann und man den Branch ATMega
benutzen muss. Also zumindest die Websockets ohne socket.io könnte auf
dem AVR+Ethernetshield laufen.
socket.io hat keinen anderen Branch, das scheint also nur für den
ESP8266 gebaut zu sein. Aber das sagt der Titel des Repo auch schon:
'A socket.io-client implementation for ESP8266 and Arduino '
Hi zusammen,
ich versuch mich mal in den Thread mit einzuschieben...
ich habe einen ESP32. Leider bekomm ich es nicht gebacken mich mit einem
SSL socket.io Server zu verbinden.
Gibt es Bibliotheken, welche Ihr empfehlen könnt. Sind irgendwelche
Beispiele online einsehbar?
Es geht eigentlich um einfache Steuerungsmöglichkeiten... wie bei mimi
ist bereits ein nods.js Server vorhanden über welchen z.B. meine Heizung
läuft... nun soll noch etwas "Elektrik" dazu kommen (also einfache
Relaisschaltungen und Strommessungen).
Mosquitto ist für mich eine Alternative zu welcher ich "in der letzten"
Instanz greifen würde. Ich hoffe aber die vorhandene Infrastruktur
einbinden zu können und nicht mit "2 Servern" rumhandeln muss (nicht als
Hardware, sondern Software)…
- Leo