Maduino Zero SIM800C
Maduino Zero SIM800C is a one-stop solution for IoT (Internet of Things) projects, it integrates a micro Controller SAMD21G18A-AU, GRRS/GSM module SIM800C, on-board power management, and storage, to make the Maduino Zero SIM800C ready for real project for IoT projects such as smart-home, outdoor monitoring, shared bicycle, etc. The GRPS/GSM module A6 support quad-band 850/900/1800/1900MHz, that covers any GSM network, after inserting a SIM card, then you will able to use the SMS/GPRS service of Cellular connectivity.
The Maduino Zero SIM800C based on the Arduino, users can program it with Arduino IDE, which is very easy especially suit for the none-programmers. There are also detailed guides for users to learn how to create the first IoT project with Maduino Zero SIM800C board, with which the starters can learn the hardware and programming skills quickly.
- Powered by lithium battery 3.4-4.2V or USB(5V)
- SAMD21G18A: 32-bit ARM® Cortex®-M0 up to 48MHz, 256KB flash, 32KB SRAM, LQFP48
- Integrated Power Control System
- Quad-band: 850/900/1800/1900Mz
- Interface: I2C/SPI/UART/ADC/DAC/I2S/38*GPIO
- Arduino Compatible
- Working Temperature: -20 ~ +85℃
- Default baud rate: 115200bps
- Size: 40*55mm
①PWR: Power Indicator
②CHG: Charge Status Indicator
③VBAT: Lipo Battery Connector
④CHG: 5V power Input Connector, connect to the solar panel to charge the battery.
⑤Micro USB: 5V Power Input, USB to serial Communication
⑥RESET: Reset Button for SAMD21G18A-AU
⑦Serial Port Select:
D0&D1: Hardware serial port;
⑧A6 Serial Port for Firmware Updates
⑨GSM: Antenna IPX Connector
①Micro SIM Card Holder
②Micro SD Card Holder
Pins usage on Arduino
- D0 – RX from SIM800C (Hardware Serial Communication Selected)
- D1 – TX to SIM800C (Hardware Serial Communication Selected)
- D2 - Unused
- D3 - Unused
- D4 - SD Card CS PIN(active Low)
- D5 - connect to SIM800C UART1_DTR
- D6 - Unused
- D7 - Unused
- D8 - Unused
- D9 - Power ON Control of SIM800C (active High)
- D10 - Unused
- D11 - Unused
- D12 - Unused
- D13 - Unused
- D14(A0) - Unused
- D15(A1) - Unused
- D16(A2) - Unused
- D17(A3) - Unused
- D18(A4) - Unused
- D19(A5) – Unused
SIM800C is a GPRS/GSM Quad-band module,and the update version support Bluetooth 3.0 EDR(some functions of SPP, OPP, HFP/HSP ), so The Maduino Zero SIM800C can be capable of the GPRS connectivity for Internet, to upload/download data with internet. With this board, we can use it as a data acquisition, remote control and a lot of IOT project or smart home project. Such as we want to know the temperature and humidity of home/office/storage cabinet/ or other some place at anytime, anywhere that have a network.
So, this tutorial is for the beginners to learn how to get temperature and humidity remotely by using Maduino Zero SIM800C with detailed guide, it is for the starters to create a simple IOT project with a few time of learning.
Step 1: Set Up Arduino IDE
1.1. Follow the guide to setup Arduino IDE for Maduino Zero SIM800C.
Select board -> Arduino/Genuino Zero(Native USB Port). And the correct Port.
If you not find it, you can click -> Boards Manager as the screen snap below. Nest search “arduino zero” and install Arduino SAMD Boards(32-bit ARM Cortex-M0+).
1.2 install dependent library
Click Sketh->Include Library->Manage Library… Nest search “dht sensor library” install “DHT sensor library by Adafruit” like the image below.
Step2: Hardware Connection
2.1.Insert a Micro SIM cardc
The Maduino Zero SIM800C board uses the micro SIM card that is widely used in Android phone, install the Micro SIM card to the holder as below picture.
Note that some fee maybe needed for each SMS depends on your local GSM Operator, make sure that the SIM Card is active and enough money left for this application.
2.2. Connect the Sensor
First you need to find a DHT11 sensor or purchase one from https://www.makerfabs.com/dht11-temperature-humidity-module.html
Sensor's GND -> Board's GND(Black line)
Sensor's DATA -> Board's D3(White line)
Sensor's Vcc -> Board's 3V(Grey line)
Note:We should ensure that the input voltage never drop below 3.0V even when current consumption rises to 2A in the transmit burst. That's the reason why we need a battery rather than just supply power via micro USB cable.
Step3.Programming and Downloading
3.1 Sign up an account in https://thingspeak.com/ . If you already have one, sign in directly.
3.2 Click New Channel to create a new ThingSpeak channel.
3.3 Input name, Description, Select Field 1 and Field 2. Then save channel on the bottom.
3.4 Copy the API Key, we will use it in the program
The Codes for this application is very simple, define the SIM800C Power control pins:
//define the power control pin of SIM808: int POWER_KEY=9; //D9: power on/off
Connect to GPRS/GSM network
sendData("AT+CGATT=1", 1000, DEBUG);
Initialize HTTP Service
sendData("AT+HTTPINIT", 1000, DEBUG);
Set HTTP parameters value
sendData("AT+HTTPPARA=\"URL\",\"http://api.thingspeak.com/update?api_key=OTI5YUPI0PALJR3F&field1=25.6&field2=78.5\"", 1000, DEBUG);
POST the data that set in command "AT+HTTPPARA"
sendData("AT+HTTPACTION=1", 1000, DEBUG);//HTTP POST success if get responce: +HTTPACTION: 1,200,0
Download the *POST Temperature&Humidity Demo, select the right port and Arduino board: Arduino Zero(Native USB Port) to upload the firmware to Maduino Zero SIM808 GPS board
Of course you can open the link: https://thingspeak.com/channels/825092 it will show the data:
Note: AT Command:
AT+SAPBR=3,1,"CONTYPE","GPRS" // AT+SAPBR=3,1,"APN","CMNET" AT+SAPBR=1,1 AT+HTTPINIT AT+HTTPPARA="URL","http://api.thingspeak.com/update?api_key=OTI5YUPI0PALJR3F&field1=22.6&field2=73.8" AT+HTTPACTION=1 AT+HTTPREAD AT+HTTPTERM //Terminal the HTTP
More details you can refer to the document SIM800 Series_AT Command Manual.pdf.
Cell ID Location test
You can use *Maduino Zero SIM800C AT Commands Demo to send AT commands via Serial Monitor or other serial tools, such as we can use AT+CENG=3 and AT+CENG? to get MCC,MNC,LAC and CI.
Then we can show a rough location via GSM Cell ID shown as below image.
You can list you question here or contact with firstname.lastname@example.org for technology support.