Skip to content

Maduino Zero NB-IoT

Introduction

Our Maduino zero NB-IoT is equipped with the SIM7080G module, based on controller ATSAMD21G18, which is Arduino Zero compatible, it has strong extension capability with rich interfaces including I2C/SPI/UART/18*GPIO etc. The Maduino zero NB-IoT is suitable for IoT applications that need low latency and low throughput data communication in various radio propagation conditions, such as smart-home, metering, asset tracking, remote monitoring, E-health etc.

This board support NB-IoT (NarrowBand-Internet of Things), Cat-M (aka eMTC, enhanced Machine Type Communication), and GNSS (Global Navigation Satellite System) modules, it can be used with standard Arduino IDE, It supports multiple NB-IoT frequency band and supports communication protocols like HTTP/MQTT/LWM2M/COAP, etc.

==缺产品图和链接==

Communications Specifications

NB-IoT CAT-M
Band NB-IoT: B1/B2/B3/B4/B5/B8/B12/B13/B18/B19/B20/B25/B26/B28/B66/B71/B85 CAT-M:B1/B2/B3/B4/B5/B8/B12/B13/B14/B18/B19/B20/B25/B26 /B27/B28/B66/B85
Emitting power Class 5 (0.125W@LTE) Class 5 (0.125W@LTE)
Data rate Uplink≤150kbps / Downlink≤136kbps Uplink≤1119Kbps / Downlink≤589Kbps
Supported SIM Card NB-IoT card (1.8V SIM card ONLY) CAT-M card (1.8V SIM card ONLY)
Applicable region Global Global

You can find Frequency bands here: wiki

Here is a referenced LTE band list: List of LTE networks

Features

  • ATSAMD21G18, 32-Bit ARM Cortex M0+
  • Interface: I2C/SPI/UART/18*GPIO
  • Onboard USB interface, to test AT Commands, get GPS positioning data, and so on
  • Supports communication protocols such as TCP/UDP/HTTP/HTTPS/TLS/DTLS/PING/LWM2M/COAP/MQTT.
  • Onboard USB interface, to test AT Commands, get GPS positioning data, and so on.
  • USB supply voltage range: 4.8~5.5V, 5.0V Typically
  • Battery supply voltage range: 3.4~4.2V, 3.7V Typically
  • Arduino Zero platform, Arduino IDE compatible
  • SD card socket
  • Windows and Raspberry Pi support
  • Operating temperature: -40°C ~ 85°C

Special Note: SIM7080G GNSS and network cannot be used simultaneously

image.png

Transferring data to Thingspeak

Hardware

  • Plug the SIM card into the board.

  • Plug the 4G-GSM antennas into the LTE interface.

  • Connect Maduino Zero NB-IoT and DHT11.

QQ截图20240411174343.png

Thingspeak

ThingSpeak Is The Open IoT Platform With MATLAB Analytics.

  • Register and log in to your account image.png

  • Define the parameter you want in the Channel page and save it image.png image.png

  • On the API keys page you can find out the API key used to write the data, and you can see an example of an API request on the right. image.png

  • By accessing the URL of the write channel, you can modify the parameters image.png image.png

Arduino IDE

  • Install the Arduino IDE V1.8.10/V1.8.19

  • Use Type-C USB cable to connect the board and PC, note plug the cable to USB-MCU interface.

  • Open thingspeak_demo.ino

  • Define pins and configure DHT11

#define DEBUG true
#define LTE_RESET_PIN -1
#define LTE_PWRKEY_PIN 5

#define DHTPIN 7      // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
  • Initialize devices so that they work properly
SerialUSB.begin(115200);
Serial1.begin(115200);
dht.begin();
delay(1000);

pinMode(LTE_RESET_PIN, OUTPUT);
digitalWrite(LTE_RESET_PIN, LOW);
pinMode(LTE_PWRKEY_PIN, OUTPUT);
digitalWrite(LTE_RESET_PIN, LOW);
delay(100);
digitalWrite(LTE_PWRKEY_PIN, HIGH);
delay(3000);
digitalWrite(LTE_PWRKEY_PIN, LOW);
  • AT commands sent to the module and information returned by the module can be checked through the serial port.
void loop()
{
    while (Serial1.available() > 0)
    {
        SerialUSB.write(Serial1.read());
        yield();
    }
    while (SerialUSB.available() > 0)
    {
        Serial1.write(SerialUSB.read());
        yield();
    }
}

  • Using the HTTP Get function of SIM7080G
    sendData("AT", 1000, DEBUG);
    sendData("AT+CPIN?", 1000, DEBUG);
    sendData("AT+CCID", 1000, DEBUG);
    sendData("AT+CSQ", 1000, DEBUG);
    sendData("AT+COPS?", 1000, DEBUG);
    sendData("AT+CGATT?", 1000, DEBUG);
    sendData("AT+CNACT=0,1", 1000, DEBUG);
    sendData("AT+CNACT?", 1000, DEBUG);

    sendData("AT+SHCONF=\"URL\",\"http://api.thingspeak.com\"", 1000, DEBUG);
    sendData("AT+SHCONF=\"BODYLEN\",1024", 1000, DEBUG);
    sendData("AT+SHCONF=\"HEADERLEN\",350", 1000, DEBUG);
    sendData("AT+SHCONN", 5000, DEBUG);
    // delay(5000);
    sendData("AT+SHSTATE?", 1000, DEBUG);
    sendData("AT+SHCHEAD", 1000, DEBUG);
    sendData("AT+SHAHEAD=\"User-Agent\",\"curl/7.47.0\"", 1000, DEBUG);
    sendData("AT+SHAHEAD=\"Cache-control\",\"no-cache\"", 1000, DEBUG);
    sendData("AT+SHAHEAD=\"Connection\",\"keep-alive\"", 1000, DEBUG);
    sendData("AT+SHAHEAD=\"Accept\",\"*/*\"", 1000, DEBUG);
    // sendData("AT+SHREQ=\"/update?api_key=5WOQ0JZURMWBTRF4&field1=123\",1", 1000, DEBUG);
    read_dht(msg);
    sendData(msg, 1000, DEBUG);
    sendData("AT+SHREAD=0,386", 1000, DEBUG);
    sendData("AT+SHDISC", 1000, DEBUG);
    sendData("AT+CNACT=0,0", 1000, DEBUG);

More detail you can check SIM7070_SIM7080_SIM7090_Series_HTTP(S)_Application_Note_V1.02.pdf

  • Replace this with your own API key image.png

  • Select "Tool --> Board --> Arduino Zero(Native USB Port)" and the port image.png

Note: Different computers may have different port numbers when connecting to a development board. Please select the correct port number based on the development board you are connecting to.

  • Verify the code and upload.

  • When the module returns 200,1, it means that the URL was accessed successfully. image.png

  • In the Private View screen of Thingspeak you can see the parameter change. image.png

FQA

You can list your question here or contact techsupport@makerfabs.com for technology support. Detailed descriptions of your question will be helped to solve your question.

Resource