Sming als Alternative zu Arduino

Begonnen von Pf@nne, 25 März 2016, 20:01:47

Vorheriges Thema - Nächstes Thema

Bapt. Reverend Magersuppe

#15
Das sind aber unterschiedliche Sachen.
Während das VisualMicro nur eine verbesserte IDE für Arduino ist, ist sming eine andere Basis. Das "was hinten rauskommt" ist also ein anderes Ergebnis. Und da soll sming wohl den stabileren Code erzeugen können weil es direkt auf der Espressif-Umgebung aufsetzt.
Wenn ich nur mal in der Lage wäre es komplett zu installieren. Auf 2 PCs und einer virtuellen Maschine versucht, irgendwas ging immer schief. Grumpf. Ist doch eigentlich nicht so kompliziert.

--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

mrpj

Zitat von: Bapt. Reverend Magersuppe am 14 April 2016, 08:13:00
Und da soll sming wohl den stabileren Code erzeugen können weil es direkt auf der Espressif-Umgebung aufsetzt.

Beides Arduino und Sming setzen auf dem espressif SDK auf - aber der Arduino ESP8266 Layer forciert  das Arduino Prinzip (alle Bearbeitung findet in loop() statt) - das erforderte scheinbar Eingriffe (loop ist an den WifiTimer vom SDK gebunden  :o) die vieles andere inkompatibel machen.

Sming arbeitet näher mit den SDK funktionen und verändert das verhalten des sdks nicht. Es ist eine Bibliothek, die verschiedene höhere Funktionen (webserver, tcpverbinden) mit vereinfachtem Funktionsaufrufen bereit stellt (und dabei das Verhalten des SDKs nutzt (event basiert) nutzt und nicht verändert.)

Auch z.b. statt die sdk aufrufe zum verbinden nutzen zu müssen


wifi_station_disconnect();
bool cfgreaded = wifi_station_get_config(&config);
if (!cfgreaded) debugf("Can't read station configuration!");

memset(config.ssid, 0, sizeof(config.ssid));
memset(config.password, 0, sizeof(config.password));
config.bssid_set = false;
strcpy((char*)config.ssid, ssid.c_str());
strcpy((char*)config.password, password.c_str());



kann man einfach sagen


WifiStation.confg("ssid", "password")


Was die Einfachheit der Installation angeht - es ist wirklich kein hexenwerk - das wichtigste ist, dass entweder in den windows umgebungs variablen die richtigen pfade gesetzt sind, oder dann eben im SMING Projekt.

Aber es gibt noch eine erfreuliche Nachricht - im SmingTeam wird gerade darüber geredet, wie man platform.io nutzen kann, damit es noch einfacher wird

Bapt. Reverend Magersuppe

Wenn ich das richtig verstanden habe, kann man doch unter Sming auch die Arduino-Libs verwenden für den ESP. Oder würde man sich dadurch hinten rum wieder was einfangen?
Hochkomplex sind die Programme ja eigentlich nicht.

--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

mrpj

Im Prinzip ja - der Teufel steckt hier nur im detail:

- wenn die Bibliothek AVR spezifische Instruktionen nutzt, wird es nicht gehen (aber dann auch nicht mit dem Arduino ESP )
- wenn die Bibliothek speziell auf Funktionen vom Arduino ESP SDk zurückgreift, dann ist es auch nicht möglich (Das ist per se auch keine Arduino Bibliothek, sondern eine Arduino ESP Bibliothek)

Eine Vielzahl von Bibliotheken die Anpassungen wegen Hardware oder Arduino ESP gebraucht haben, kommt mit Sming mit

Ich bin im Moment etwas mehr mit Sming involviert - da ich aus dem RGBWW Projekt heraus einen Bugs entdeckt hatte bzw. auch am Funktionsumfang etwas vermisst habe. Dadurch habe ich auch mehr Einblicke gewonnen und finde das Prinzip hinter Sming besser/flexibler für einen Entwickler, als Arduino SDK.
Viele der zur Verfügung gestellten Klassen/Methoden erlauben es, davon Ableitungen zu treffen und Funktionen zu überschreiben.
Somit kann die sehr generell gehaltene HttpClient Klasse einfach zu einem HttpRestClient erweitert werden.


Bapt. Reverend Magersuppe

Ich hab Eclipse und Sming jetzt immerhin soweit in einer virtuellen Maschine laufen, dass ich das Blink-Beispiel öffnen und kompilieren kann. Vermutlich hat bei den ersten Versuchen der Avira hinten rum beim Installieren einige Ming-Dateien ungefragt gelöscht oder die Installation nicht zugelassen.
Die Verbindung mit HTerm geht auch. Leider werden immer noch keine BIN-Dateien erzeugt die man dann flashen könnte. Grmpf. Mühseelige Sache.
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

Pf@nne

Das Flashen sollte auch über die serielle Anbindung gehen....
Dazu musst du den COM-Port im user MakeFile anpassen.
FHEM auf: DS415+ (Master), Raspberry Pi 2

Bapt. Reverend Magersuppe

Das Flashen würde glaub ich funktionieren, aber es werden im out/firmware-Verzeichnis keine *.bin-Dateien erzeugt die geflasht werden können.
Tzefix.

Was unter anderem unklar ist:
Das esptool welches man selber kompiliert, das kopiert man dann um, soll das dann esptool.exe oder esptool2.exe heissen?
--
If I was born in 1453, Leonardo da Vinci would be jealous of me.
Reverend Paul Egon Magersuppe
Aus versicherungstechnischen Gründen sind sämtliche Beiträge von mir rein spekulativer und theoretischer Natur und sollten nicht in die Tat umgesetzt werden!
Bin hier selten DRIN. AUS GRÜNDEN!

Omega-5

Zitat von: Bapt. Reverend Magersuppe am 19 April 2016, 10:31:37
Das Flashen würde glaub ich funktionieren, aber es werden im out/firmware-Verzeichnis keine *.bin-Dateien erzeugt die geflasht werden können.
Tzefix.

Ich habe auch mal versucht Sming mit Eclipse nach der Anleitung von Pf@nne zu installieren (Windows 7). So richtig funktioniert es von der IDE aus noch nicht, aber von der Konsole geht es. Allerdings fehlte zum Erstellen der bin-Dateien, esptool2.exe. Nach dem ich es nirgendwo auf der Platte gefunden habe, habe ich es aus den Quellen (C:\Espressif\examples\rboot\esptool2) kompiliert und nach C:\tools\mingw64\mysys\1.0\bin\esptool2.exe kopiert. Wenn man SPIFFS (spiffy.exe) benutzt, gilt das gleiche. Jetzt läuft bei mir wenigstens das Kompilieren des Basic_Blink Sample von der Konsole ohne Fehlermeldung.

Gruß Friedrich
RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),

Pf@nne

Die esptool2.exe ist bei mir im c:\espressif\utils
Damit die gefunden wird muss sie aber noch im Projekt als Umgebungsvariable angelegt werden.

Was meckert Eclipse denn?
FHEM auf: DS415+ (Master), Raspberry Pi 2

Omega-5

#24
Zitat von: Pf@nne am 19 April 2016, 13:47:40
Die esptool2.exe ist bei mir im c:\espressif\utils
Damit die gefunden wird muss sie aber noch im Projekt als Umgebungsvariable angelegt werden.

Was meckert Eclipse denn?
Bei mir war nur ein esptool.exe im angegebenen Pfad.  >:(

Wegen der diversen Warnings und Errors muss ich erst noch mal selber sehen. Im Moment ist das Wetter zu gut für den Bastelkeller.  ;)
Nur kurz, wenn ich bei den Projekten unter "Sming Examples" erst ein Project -> Clean (all projects) mit Start a build immediatyely mache, werden ein oder zwei Projekte nicht kompiliert. Und bei jeder Wiederholung immer wieder andere Projekte, also nicht reproduzierbar. Im Moment z.B.:
"Invalid project path: Include path not found (C:\tools\sming\Sming\Library).   Basic_SmartConfig      pathentry   Path Entry Problem".
Woher kommt der Pfad?, den gibt es ja wirklich nicht. Bei allen anderen Projekten steht dort  "C:\tools\sming\Sming\Libraries".

Gruß Friedrich

PS: Übrigens, wer es nicht erkannt hat, mein Avatar zeigt einen Kletterer. (Lasst euch nicht hängen.) ;)
RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),

Pf@nne

Moin Friedrich,

es ist immer schwer aus der Ferne da zu unterstützen.
Zumal ich auch nicht zu 100% der Spezie dafür bin.
Ich staune selber wie das alles so klappt.

Wenn nichts mehr hilft, kann ich ja mal über TeamViewer reinsehen.
FHEM auf: DS415+ (Master), Raspberry Pi 2

mrpj

Zitat von: Omega-5 am 20 April 2016, 15:08:08
Bei mir war nur ein esptool.exe im angegebenen Pfad.  >:(

Wegen der diversen Warnings und Errors muss ich erst noch mal selber sehen. Im Moment ist das Wetter zu gut für den Bastelkeller.  ;)
Nur kurz, wenn ich bei den Projekten unter "Sming Examples" erst ein Project -> Clean (all projects) mit Start a build immediatyely mache, werden ein oder zwei Projekte nicht kompiliert. Und bei jeder Wiederholung immer wieder andere Projekte, also nicht reproduzierbar. Im Moment z.B.:
"Invalid project path: Include path not found (C:\tools\sming\Sming\Library).   Basic_SmartConfig      pathentry   Path Entry Problem".
Woher kommt der Pfad?, den gibt es ja wirklich nicht. Bei allen anderen Projekten steht dort  "C:\tools\sming\Sming\Libraries".

Gruß Friedrich

PS: Übrigens, wer es nicht erkannt hat, mein Avatar zeigt einen Kletterer. (Lasst euch nicht hängen.) ;)

Ich bin mir sehr sicher, dass es auch hier an der falschen Konfiguration der Pfad variablen liegt.
Die Examples kompilieren alle bei mir reibungslos, und sie kompilieren vor allem auch im CI vom Projekt.

Es gibt hier einen guten Eintrag im Sming Wiki zum Thema Windows Troubleshooting:
https://github.com/SmingHub/Sming/wiki/Troubleshooting-Windows

Poste doch mal die ganzen variablen aus dem command hier, damit man nachschauen kann wie das bei dir eingestellt ist

Omega-5

#27
Danke für euere Hilfsangebote. Ich weiß das meine Installationen nicht so ganz einfach zu händeln sind, da ich neben Eclipse/Sming auch noch Atmel Studio 4, 6 und 7, so wie WinAVR-20100110 und Arduino-IDE_1.6.5 installiert habe. Die Einträge im Sming Wiki zum Thema Windows Troubleshooting habe ich durch probiert, alles i.O., einzig "where make" findet drei Einträge.
C:\Users\fbleikamp>where make
C:\tools\mingw64\msys\1.0\bin\make.exe
C:\Program Files\WinAVR-20100110\utils\bin\make.exe
C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\bin\make.exe


Der Pfad ist natürlich auch sehr umfangreich, sollte aber kein Problem sein.
C:\tools\mingw64\bin;C:\tools\mingw64\msys\1.0\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\PC Connectivity Solution\;C:\Program Files\WinAVR-20100110\bin;C:\Program Files\WinAVR-20100110\utils\bin;C:\Program Files (x86)\KOBIL Systems\KOBIL ZKA-Sig-API;C:\Program Files (x86)\KOBIL Systems\KOBIL ZKA-Sig-API;C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\bin;c:\Program Files(x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Samsung\Samsung PC Studio 3\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Eclipse Foundation\4.4.2\eclipse;C:\Program Files (x86)\Atmel\Flip 3.4.7\bin;C:\ProgramData\chocolatey\bin;

Aber wie schon mal gesagt, es ist kein Wetter für den Bastelkeller. Also erst mal "Füße still halten". Bis demnächst.

Gruß Friedrich
RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),

PeMue

Hallo Friedrich,

Zitat von: Omega-5 am 22 April 2016, 15:25:16
Ich weiß das meine Installationen nicht so ganz einfach zu händeln sind, da ich neben Eclipse/Sming auch noch Atmel Studio 4, 6 und 7, so wie WinAVR-20100110 und Arduino-IDE_1.6.5 installiert habe.
ich habe WinAVR und die Arduino IDEs portabel installiert, d.h. WinAVR starte ich per Batch Skript und die Arduino IDE braucht sowieso keinen Pfad. Ob das mit dem Atmel Studio auch geht, weiß ich nicht.

Zitat von: Omega-5 am 22 April 2016, 15:25:16
Aber wie schon mal gesagt, es ist kein Wetter für den Bastelkeller. Also erst mal "Füße still halten". Bis demnächst.
Schön für Dich, bei uns regnet es (ein Schwabe würde es etwas deftiger ausdrücken).

Viele Grüße

Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser