Pengalaman Adalah Guru Terbaik Kehidupan!
Dalam menciptakan sebuah alat di dunia (IoT) tentunya kita nggak mau menghambur-hamburkan uang dengan membeli modul yang kurang efisien, selain itu kita juga harus memperhitungkan untuk apa alat itu dibuat, kalau untuk sekedar hobi tentunya menentukan modul yang biasa saja sudah cukup, namun kalau alat tersebut harus bekerja terus menerus dan masuk kedalam kemasan yang lebih rapi tentunya kita harus memikirkan untuk membeli modul yang lebih efisien.Modul GSM merupakan salah satu perangkat yang mendukung para pemain di dunia , aneka macam modul GSM yang beredar dipasaran, ada yang sangat murah hingga yang paling mahal, semua tergantung daya tahan dan fitur yang ditawarkan.
Bagi IoT developer dan pemula tentunya akan menentukan modul GSM yang mempunyai daya tahan dan fitur paling baik, selain itu juga murah, hehehe. apa ada barang ibarat itu?
Ada tapi nggak murah-murah banget dan cukup handal serta sudah standard untuk keperluan Industri.
SIM7000E merupakan sebuah modul GSM yang dikeluarkan oleh DFRobot, modul ini dilengkapi dengan aneka macam fitur, dapat kalian cek di web resminya DFRobot, berikut yakni rangkuman dari fitur-fiturnya :
1. Quad Band FDD-LTE B3/B8/B20/B28
2. GPRS/EDGE 900/1800 MHz
3. GNSS (GPS, GLONASS, BeiDou, Compass, Galileo, QZSS)
4. BME280 sensor (Suhu, Kelembaban, Tekanan Udara, dan Ketinggian)
5. Support SIM Card NB IoT (Jaringan terbaru untuk IoT)
6. Low Power Consumption pastinya, dapat dilihat di tabel frekuensi pada web resminya, klik disini
7. Cocok dipasang pada hampir semua modul Arduino.
Coba bandingkan dengan produk2 atau modul GSM yang lain, mulai dari SIM900, SIM800, SIM808
Kenapa Simmon kok nyaranin pakai modul GSM ini?
Bukan promosi, alasannya yakni Simmon juga nggak jual produk ini, Simmon cuma sharing pengalaman kepada sesama IoT developer dan yang masih pemula agar tidak sia2 mengeluarkan uang. Simmon sudah menggunakan modul ini cukup lama, dan kesannya sangat memuaskan, dapat kalian lihat di web landingnya di Thingspeak, klik disini.SCRIPT CODE BISA KALIAN LIHAT DI BAWAH INI :
//Arduino Low Power Mode#include <SnoozeLib.h>
//Inisialiasi SIM7000
#include <Wire.h>
#include <DFRobot_SIM7000.h>
#define PIN_TX 7
#define PIN_RX 10
//Link untuk landing Web
#define POSTURL "api.thingspeak.com/update?api_key= GANTI DENGAN APIKEY KALIAN"
SoftwareSerial mySerial(PIN_RX,PIN_TX);
DFRobot_SIM7000 sim7000;
//Inisialiasi Sensor BME280
#include <DFRobot_BME280.h>
#define SEA_LEVEL_PRESSURE 1013.25f
#define BME_CS 10
DFRobot_BME280 bme; //I2C
float temp;
float hum;
float pa;
float alt;
//PERHATIAN----> KALIAN HARUS PUNYA SEMUA LIBRARY DIATAS
void bacasensor(){
temp = bme.temperatureValue();
pa = bme.pressureValue();
hum = bme.humidityValue();
alt = bme.altitudeValue(SEA_LEVEL_PRESSURE);
Serial.print("Temp:");
Serial.print(temp);
Serial.println(" C");
Serial.print("Pa:");
Serial.print(pa);
Serial.println(" Pa");
Serial.print("Hum:");
Serial.print(hum);
Serial.println(" %");
Serial.print("Alt:");
Serial.print(alt);
Serial.println(" m");
Serial.println("------END------");
}
void kirimdata(){
int signalStrength,dataNum;
Serial.begin(115200);
while(!Serial);
sim7000.begin(mySerial);
Serial.println("Turn ON SIM7000......");
if(sim7000.turnON()){ //Turn ON SIM7000
Serial.println("Turn ON !");
}
Serial.println("Set baud rate......");
while(1){
if(sim7000.setBaudRate(19200)){ //Set SIM7000 baud rate from 115200 to 19200 reduce the baud rate to avoid distortion
Serial.println("Set baud rate:19200");
break;
}else{
Serial.println("Faile to set baud rate");
delay(1000);
}
}
Serial.println("Check SIM card......");
if(sim7000.checkSIMStatus()){ //Check SIM card
Serial.println("SIM card READY");
}else{
Serial.println("SIM card ERROR, Check if you have insert SIM card and restart SIM7000");
while(1);
return;
}
Serial.println("Set net mode......");
while(1){
if(sim7000.setNetMode(GPRS)){ //Set net mod GPRS
Serial.println("Set GPRS mode");
break;
}else{
Serial.println("Fail to set mode");
delay(3000);
}
}
delay(1000);
Serial.println("Get signal quality......");
signalStrength=sim7000.checkSignalQuality(); //Check signal quality from (0-30)
Serial.print("signalStrength =");
Serial.println(signalStrength);
delay(500);
Serial.println("Attaching service......");
while(1){
if(sim7000.attacthService()){ //Open the connection
Serial.println("Attach service");
break;
}else{
Serial.println("Fail to Attach service");
delay(1000);
}
return;
}
bacasensor();
Serial.println("Init http......");
while(1){
if(sim7000.httpInit(GPRS)){ //Init http service
Serial.println("HTTP init !");
break;
}else{
Serial.println("Fail to init http");
}
}
Serial.print("POST to ");
Serial.println(POSTURL);
String httpbuff;
httpbuff += "&field1=";
httpbuff += String(temp);
httpbuff += "&field2=";
httpbuff += String(hum);
httpbuff += "&field3=";
httpbuff += String(pa);
httpbuff += "&field4=";
httpbuff += String(alt);
httpbuff += "&field5=";
httpbuff += String(alt);
/*httpbuff += "&id_modul=NBIoTSK1";
httpbuff += "&lokasi_modul=Jl.Anggrek_Garuda_No.49_Kota_Malang";*/
httpbuff += "\"";
while(1){
if(sim7000.httpPost(POSTURL,httpbuff)){ //HTTP POST
Serial.println("Post successed");
Serial.println(httpbuff);
break;
}else{
Serial.println("Fail to post");
Serial.println(httpbuff);
}
}
Serial.println("Disconnect");
sim7000.httpDisconnect(); //Disconnect
Serial.println("Close net work");
sim7000.closeNetwork(); //Close net work
Serial.println("Turn off SIM7000");
sim7000.turnOFF(); //Turn OFF SIM7000
}
void setup(){
if (!bme.begin()) {
Serial.println("No sensor device found, check line or address!");
while (1);
Serial.println("-- BME280 DEMO --");
}
}
void loop() {
delay(1000);
kirimdata();
Serial.println("Snoozing...");
snoozeLib.snooze(60000);//Snooze the CPU
Serial.println("Wake UP!!");
snoozeLib.wakeup(); //WakeUp The CPU
}
Semoga dapat menjadi pertimbangan dalam menentukan modul ya kak, tetap semangat!