Arduino-Projekt: Datenübertragung aus abgelegenen Gebieten per IOT SIM Karte

Das Arduino MKR NB 1500 ist ein Microcontroller-Board aus der MKR-Familie von Arduino, das speziell für IoT-Anwendungen mit geringer Leistung und großer Reichweite (“Low Power Wide Area”, LPWA) entwickelt wurde. Es unterstützt NB-IoT und LTE-M (Cat M1) als Mobilfunkstandards. Wobei zu unterscheiden ist zwischen NB-IoT = langsam, sparsam, stationär, tief im Gebäude und LTE-M = schneller, mobil, bewegliche Geräte und sogar Sprache möglich.
In diesem Betrag soll es um NB-IoT gehen, soll heißen, es geht um Datenübertragung in geringer Menge, in abgelegenen Gebieten, in denen keine Internetverbindung oder Stromversorgung verfügbar ist, über ein Mobilfunknetz zu übermitteln. (Wenn LoRa im Umkreis von wenigen Kilometer nicht eingesetzt werden kann)
Wie zum Beispiel „Objekt ist noch trocken“, „Backup-Batterie ist noch voll“ oder etwa „Kein GAS gemessen“. Also für stationäre IoT-Anwendungen.

Tutorial: Effizienter NB-IoT-Feuchtigkeitssensor mit 1NCE IOT SIM Card

1. Hardware-Einkaufsliste

KomponenteEmpfehlung/BeispielPreis (ca.)
Mikrocontroller-BoardArduino MKR NB 1500 (ABX00019)85–95 €
IoT SIM-Karte1NCE IoT SIM (NB-IoT oder LTE-M)Siehe unten
Feuchtigkeitssensorkapazitiver Sensor (analog, z.B. YL-69 oder v2.0)3–15 €
Antenne (NB-IoT)2dB im Board-Kit enthalten
5V Netzteil mit USB-KabelmicroUSB~10 €
Steckbrett / Jumperkabel (Optional)für Entwicklungsumgebung
Li-Po Single Cell, 3.7V (Optional)1500mAh Minimum8 €

2. Schaltplan (Verdrahtung)

  • Sensor AOA0 am Arduino
  • Sensor VCC5V
  • Sensor GNDGND
  • Antenne an vorgesehenen NB-IoT-Port am Board
  • IoT SIM einstecken

3. Arduino / Software-Setup

3.1. IDE und Board einrichten

3.2. Minimaler UDP Sketch für 1nce Karten

#include <MKRNB.h>
#include <ArduinoLowPower.h>

NB netzZugang;
NBUDP udpSocket;

const int sensorPin = A0;                        // Analogeingang für Sensor
const unsigned long sendeIntervallMs = 3600000;  // 60 Minuten (in ms)
const char* zielIp = "udp.os.1nce.com";          // Ziel-IP im 1NCE NAT-Backbone
const int zielPort = 4445;                       // Ziel-Port im Backend
const char* apn = "iot.1nce.net";                // APN für 1NCE

unsigned long zeitLetzteSendung = 0;             // Zeitpunkt der letzten Sendung

// Hilfsfunktion: Verbindung aufbauen
bool verbindeNetz() {
  Serial.print("Stelle Mobilfunkverbindung her (APN: ");
  Serial.print(apn);
  Serial.print(") ... ");

  if (netzZugang.begin(apn) != NB_READY) {
    Serial.println("Fehler!");
    return false;
  }

  Serial.println("OK, Mobilfunk verbunden.");
  return true;
}

void setup() {
  Serial.begin(9600);
  while (!Serial); // Warten auf Serial Monitor

  Serial.println("NB-IoT UDP-Sensor startet...");

  // Erste Netzverbindung versuchen
  while (!verbindeNetz()) {
    Serial.println("Neuer Versuch in 30 Sekunden...");
    delay(30000);
  }

  udpSocket.begin(zielPort);

  // Sofort beim ersten loop() senden
  zeitLetzteSendung = millis() - sendeIntervallMs;
}

void loop() {
  // Prüfen, ob es Zeit für eine Sendung ist
  if (millis() - zeitLetzteSendung >= sendeIntervallMs) {
    int sensorsignal = analogRead(sensorPin);
    uint8_t messwertByte = sensorsignal / 4;

    Serial.print("Sende Sensorwert: ");
    Serial.print(messwertByte);
    Serial.print(" (ADC: ");
    Serial.print(sensorsignal);
    Serial.println(") über UDP...");

    // UDP-Paket senden
    if (!udpSocket.beginPacket(zielIp, zielPort)) {
      Serial.println("Fehler beim Öffnen des UDP-Pakets. Versuche Reconnect...");
      if (!verbindeNetz()) {
        Serial.println("Netz nicht verfügbar – überspringe diesen Zyklus.");
        return; // Nicht senden, nächster Versuch im nächsten Zyklus
      }
    }

    udpSocket.write(&messwertByte, 1);
    if (udpSocket.endPacket() == 1) {
      Serial.println("UDP-Versand erfolgreich.");
    } else {
      Serial.println("UDP-Versand fehlgeschlagen!");
    }

    // Zeitstempel für nächste Sendung merken
    zeitLetzteSendung = millis();

    // ⚡ Strom sparen: für das Intervall in Sleep gehen
    Serial.println("Gehe in Sleep-Modus...");
    LowPower.sleep(sendeIntervallMs);
    Serial.println("Aufgewacht.");
  }

  delay(200); // kleine Entlastung
}

4. 1NCE Portal Einstellungen

4.1. SIM freischalten/registrieren

  • Im 1NCE-Kundenportal unter https://portal.1nce.com anmelden
  • SIM/ICCID aktivieren & unter „SIM-Management“ freischalten (APN muss iot.1nce.net lauten)
  • Netz erstmalig bei Empfang sichtbar: Status „Online“ = erfolgreich verbunden

4.2. Device Integrator

  • In den „1NCE OS“- oder „Device Integrator“-Bereich wechseln
  • Gerät aktivieren/anlegen: Die IMSI der aktiven SIM als neues Gerät hinzufügen (Button: Aktivieren/Hinzufügen)
  • UDP-Integration aktivieren: Integrationstyp „UDP“ auswählen und als Ziel udp://udp.os.1nce.com:4445 wählen
  • Nach dem ersten UDP-Paket zeigt der Inspector RAW/Monitoring die gesendeten Werte (im Base64-Format, z. B. /w== für 255, jA== für 140 usw.)

5. Interpretation der Werte im Portal

  • Im Device Inspector erscheinen die Werte als Base64 (z. B. „9Q==“).
  • Mit jedem gesendeten UDP-Paket siehst du den Wert, konvertierbar z. B. mit Python:

import base64
print(base64.b64decode(„9Q==“)[0])  # ergibt z.B. 245

  • Werte lassen sich einfach exportieren/visualisieren.

6. Typische Fehlerquellen & Lösung

ProblemMögliche Lösung
UDP-Werte erscheinen nicht im PortalZiel-IP/Port im Sketch prüfen, UDP-Integration aktivieren, Gerät im Integrator anlegen
Base64 sieht „komisch“ ausImmer 1-Byte binär (0–255) wird als z.B. „/w==“ im RAW angezeigt
Kein NetzSIM aktiv? Empfang? APN korrekt? Antenne dran?
Zu häufiges SendenIntervall nicht zu kurz setzen (Netzrestriktionen)!
Fehlermeldung: Kein UDP-RAW im InspectorIntegration und Geräte-Zuweisung im 1NCE OS prüfen

7. Hinweise zur Effizienz

  • Eine UDP-Nachricht mit 1 Byte alle 60 Minuten ist maximal sparsam (praktisch keine Datenlast).
  • Diese SIM einmalig 10 € – Damit habe ich Jahre Datenbetrieb (500 MB Lifetime)!
  • Vorab prüfen ob in der gewünschten Region NB-IoT unterstützt wird

8. IOT SIM Card Anbieter

Es gibt zahlreiche andere Anbieter von IoT-SIM-Karten.
Die Wahl hängt von deinem Projekt, gewünschter Netzabdeckung, Support für NB-IoT/LTE-M/2G, Datenvolumen und Preismodell ab.

Hier ein kleiner Überblick mit Fokus auf DIY- und Maker-taugliche Anbieter in Deutschland/Europa (Stand 2025):


Alternativen zu 1NCE für IoT-SIM-Karten

AnbieterNetz(e)BesonderheitenPreismodellWebseite/Hinweis
Things Mobileglobal (Telekom, Vodafone, …)NB-IoT, LTE-M, 2G/3G/Fallback, Daten- & SMS-Tarifeab ca. 10€ pro Karte + Pay-per-use, Paket-Tarifethingsmobile.com
Telekom Business Smart ConnectTelekom (D), Roaming EUDeutsche Qualität, Selfcare-Portal, LTE-M/NB-IoT, SIM-ManagementStarterpakete ab ca. 5–10 € / Monat, Verschiedene Bundlesiot.telekom.com
TruphoneGlobal, Multi-NetworkeSIM, Multi-Netz, 2G-LTE-M, API, flexibles Pay-as-you-goPrepaid (ab 9,99 €), keine Grundgebührtruphone.com/iot
SoracomEuropa/Global, Multi-NetzDeveloper-tauglich, API, LTE-M, global FallbackStarter-Pakete ab 5 €, Pay-per-usesoracom.io
NetmoreEuropaHotspot-tauglich, ENISA-Ready, Multi-NetzePakete & Lifetime-Optionennetmoregroup.com
Vodafone IoTD+EU, MultiroamingGünstige Pakete, NB-IoT, API, eigene VisualisierungVerschiedene Starterpakete, ab ca. 1€/Mon.iot.vodafone.com
O₂ Telefónica IoTD+EUGuter Netzausbau LTE-M/NB-IoT, Business-Fokusnach Wunsch (i.d.R. >10 SIMS), Kontakt über Vertriebiot.telefonica.de
OnomondoGlobalWeltweite NB-IoT/LTE-M, sehr flexibel, REST APIAuf Anfrage (ab ca. 10 €/SIM, Volumenbasiert)onomondo.com
EmnifyGlobalAPI, Cloud/MQTT-Backend, Transparent, EntwicklerfreundlichVerschiedene Pay-as-you-go Pläneemnify.com

Worauf achten?

  • Technologie: Brauchst du neben NB-IoT auch LTE-M, 2G oder globales Roaming?
  • Tarifmodell: Bezahle ich monatlich, pro MB, pro SIM oder „Einmalig“?
  • Netzabdeckung: Sind alle Netze/Standorte relevant abgedeckt?
  • APN/Funktionen: Eigene feste IP, VPN, SMS-Optionen, REST-Mgmt/API?
  • Self-Service: Portal, SIM-Management, Realtime-Monitoring?
  • Verfügbarkeit für Einzelabnehmer: Viele bieten auch einzelne SIM-Karten für Maker an (etwa Things Mobile, Truphone, Soracom, Netmore, Emnify).

Fazit:

Ja, 1NCE ist effizient, aber nur für Geschäftskunden.
Für Experimentierer, Maker und Profis gibt es viele Alternativen – oft sogar mit globaler Abdeckung und tollen Entwickler-Tools. Vorab aber immer prüfen, ob in der gewünschten Region NB‑IoT unterstützt wird!
Jeder Anbieter hat eigene Stärken (Preis, Netz, API, Features); ein Vergleich lohnt vor dem projektweiten Rollout!

Tipp: Für schnelle Tests und weltweite NB-IoT/Maker-Projekte sind besonders Things Mobile, Soracom, Truphone oder Netmore beliebt. In DE/AT/CH eignen sich Telekom Business, Vodafone und O₂ Telefónica insbesondere für professionelle und größere Szenarien.

Datenquellen:

Pinout: Belegungsplan Arduino MKR NB1500

Entwicklungsboard MKR NB 1500

https://docs.arduino.cc/hardware/mkr-nb-1500

https://docs.arduino.cc/tutorials/mkr-nb-1500/nb-send-sms

Der Gas Sensor MQ-02 für Methan, Propan und Butan

Youtube-Video:


, ,
Datenschutz-Übersicht

Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzerkomfort bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie das Wiedererkennen von dir, wenn du auf unsere Website zurückkehrst und hilft uns zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.