Sming vs Arduino

 


 

Was ist der Unterschied zwischen Arduino und Sming?

 

Die Programmierung des ESP8266 unter der ArduinoIDE basiert auf diesem Arduino/ESP8266 Core:

https://github.com/esp8266/Arduino

 

In Verbindung mit der ArduinoIDE steht so schon eine Leistungsstarke und einfach zu bedienende Umgebung zur Verfügung.
Weitere Komponenten sind nicht erforderlich.

 

Ein möglicher Nachteil könnte hier die komplett eigenständige Umsetzung auf die Hardware des ESP8266 sein.
Veränderungen in der Hardware müssen hier immer erkannt und berücksichtigt werden.

 

Der Hersteller des ESP8266 bietet für die Entwicklung eigener Firmware ein Software Development Kit (SDK) an.
Leider bleibt hier für nicht "Vollzeitprogrammierer" die Einfachheit der ArduinoIDE auf der Strecke.

Was das Hello World Beispiel des SDKs zeigt:

 

/*
    The hello world demo
*/

#include <ets_sys.h>
#include <osapi.h>
#include <os_type.h>
#include <gpio.h>
#include "driver/uart.h"

#define DELAY 1000 /* milliseconds */

LOCAL os_timer_t hello_timer;
extern int ets_uart_printf(const char *fmt, ...);

LOCAL void ICACHE_FLASH_ATTR hello_cb(void *arg)
{
    ets_uart_printf("Hello World!\r\n");
}
void user_rf_pre_init(void)
{

}void user_init(void)
{
    // Configure the UART
    uart_init(BIT_RATE_115200, BIT_RATE_115200);
    // Set up a timer to send the message
    // os_timer_disarm(ETSTimer *ptimer)
    os_timer_disarm(&hello_timer);
    // os_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void *parg)
    os_timer_setfn(&hello_timer, (os_timer_func_t *)hello_cb, (void *)0);
    // void os_timer_arm(ETSTimer *ptimer,uint32_t milliseconds, bool repeat_flag)
    os_timer_arm(&hello_timer, DELAY, 1);
}

 

Hier kommt jetzt Sming ins Spiel.
Sming stellt einen eigenen ESP8266-Core zur verfügung der wiederum auf dem SDK des Herstellers Espressif aufsetzt und quasi als Interface fungiert.
Sming setzt hier vollständig auf die Arduino übliche Schreibweise auf.

 

Serial.begin(9600);
Serial.println("Hello Sming! Let's do smart things.");

 

Warum sollte man jetzt wechseln wollen?

Der o.g. Arduino-Core hat in einigen Punkten noch leichte Probleme mit der ESP-Hardware, bekannte Probleme sind hier z.B PWM, Interrupts und die Resetbehandlung.
Diese Probleme sollen bei der Nutzung des Espressif-/ Sming-Cores nicht mehr auftreten.

Zusätzlich nutzt man als Programmierumgebung Eclipse.
Eclipse ist um einiges mächtiger als die ArduinoIDE, aber natürlich auch um einiges aufwändiger in der Handhabung.

 


 

Sming PRO / CONTRA

 

PRO

CONTRA

  • Bessere Adaption an die Hardware durch die Nutzung
    des Herstellereigenen SDKs
  • Gleicher Sprachgebrauch wie Arduino
  • Volle Kompatibilität zu den Arduino Libraries
  • Nutzung der Eclipse Entwicklungsumgebung
    • erweitertes Debugging
    • unfangreichere Verwaltungsmöglichkeiten
      bei größeren Projekten
    • Autoverfolständigung
  • Diverse Funktionen sind bereits integriert
    • Fast & user friendly development
    • Work with GPIO in Arduino style
    • High effective in perfomance and memory usage (this is native firmware!)
    • Compatible with standard Arduino libraries - use any popular hardware in few lines of code
    • rBoot OTA firmware updating
    • Built-in file system: spiffs
    • Built-in powerfull network and wireless modules
    • Built-in JSON library: ArduinoJson
    • HTTP, AJAX, WebSockets support
    • MQTT protocol based on libemqtt
    • Networking based on LWIP stack
    • Simple and powerfull hardware API wrappers
    • Based on Espressif NONOS SDK 1.4.0 & 1.5.0
  • Aufwändigere Installation und Verwaltung
    Dieser Teil ist nicht zu unterschätzen!
  • Keine Kompatibilität zu bestehenden Arduino Projekten

 

Wer Lust hat kann sich Sming/Eclipse ja mal probeweise installieren

http://www.s6z.de/cms/index.php/homeautomation-homecontrol/hardwareplattformen/esp8266/136-sming-installation

 

 

Kommentare (1)

Cancel or

  • Thomas Wenzlaff
    Das klingt ja Interessant, muss ich mir mal anschauen! Sming!