Senin, 11 Mei 2020

cara merubah baudrate modul SIM900/SIM900A



muncul sharing ini berawal dari sebuah kasus sim900 konek ke server blynk cannot init dan kadang konek kadang diskonek

kali ini saya menggunakan arduino mega sebagai mikrokontrollernya

modul sim900nya konek ke serial1

sediakan power supply minim 12V 3A kemudian d step downkan menjadi 5v






langkah pertama cek dahulu baudratenya menggunakan example dari library tinyGSM yaitu AT_debug

  • /
  • // Select your modem:
  • #define TINY_GSM_MODEM_SIM800
  • // #define TINY_GSM_MODEM_SIM900
  • // #define TINY_GSM_MODEM_SIM808
  • // #define TINY_GSM_MODEM_SIM868
  • // #define TINY_GSM_MODEM_UBLOX
  • // #define TINY_GSM_MODEM_M95
  • // #define TINY_GSM_MODEM_BG96
  • // #define TINY_GSM_MODEM_A6
  • // #define TINY_GSM_MODEM_A7
  • // #define TINY_GSM_MODEM_M590
  • // #define TINY_GSM_MODEM_MC60
  • // #define TINY_GSM_MODEM_MC60E
  • // #define TINY_GSM_MODEM_ESP8266
  • // #define TINY_GSM_MODEM_XBEE
  • // Set serial for debug console (to the Serial Monitor, speed 115200)
  • #define SerialMon Serial
  • // Set serial for AT commands (to the module)
  • // Use Hardware Serial on Mega, Leonardo, Micro
  • #define SerialAT Serial1
  • // or Software Serial on Uno, Nano
  • //#include <SoftwareSerial.h>
  • //SoftwareSerial SerialAT(2, 3); // RX, TX
  • #define TINY_GSM_DEBUG SerialMon
  • #include <TinyGsmClient.h>
  • // Module baud rate
  • uint32_t rate = 0; // Set to 0 for Auto-Detect

  • void setup() {
  •   // Set console baud rate
  •   SerialMon.begin(115200);
  •   delay(3000);
  • }

  • void loop() {
  •   if (!rate) {
  •     rate = TinyGsmAutoBaud(SerialAT);
  •   }

  •   if (!rate) {
  •     SerialMon.println(F("***********************************************************"));
  •     SerialMon.println(F(" Module ora ngeRespon "));
  •     SerialMon.println(F("   Check wiringanmu. wes bener opo durung"));
  •     SerialMon.println(F("   Check power supplyne ojo sampe kurang arus e. soale arus e butuh guede"));
  •     SerialMon.println(F("***********************************************************"));
  •     delay(30000L);
  •     return;
  •   }

  •   SerialAT.begin(rate);

  •   // Access AT commands from Serial Monitor
  •   SerialMon.println(F("***********************************************************"));
  •   SerialMon.println(F(" awakmu wes iso kirim  AT commands, "));
  •   SerialMon.println(F(" ketik AT+CSQ lalu enter, untuk cek signal"));
  •   SerialMon.println(F(" select \"Both NL & CR\" in Serial Monitor"));
  •   SerialMon.println(F("***********************************************************"));

  •   while(true) {
  •     if (SerialAT.available()) {
  •       SerialMon.write(SerialAT.read());
  •     }
  •     if (SerialMon.available()) {
  •       SerialAT.write(SerialMon.read());
  •     }
  •     delay(0);
  •   }
  • }
cek d serial monitor mana baudrate yang replay

contoh hasil serial monitor yang sim900 tidak merespon:

kemungkinan kabel salah wiring atau power kurang joss



contoh hasil serial monitor yang sim900 merespon sesuai baudratenya


setelah diketahui...

contoh baudratenya 57600

dan mau dirubah ke 9600

maka upload koding selanjutnya
  • unsigned long cur_time, old_time;

  • void setup() {
  •   // put your setup code here, to run once:
  •   delay(2000);
  •   Serial.begin(115200);
  •   Serial1.begin(57600);
  •  
  •   delay(1000);
  •   Serial1.println("AT+IPR=9600");delay(100);
  •   wRespon(2000);
  •   Serial1.begin(9600);
  •   Serial1.println("AT&W");
  •   wRespon(2000); 
  • }

  • void loop() {
  •   // put your main code here, to run repeatedly:
  •   Serial.println("AT");
  •   Serial1.println("AT+IPR?");
  •   wRespon(1000);
  •   delay(1000);
  • }
  • void wRespon(long waktu){
  •   cur_time = millis();
  •   old_time = cur_time;
  •   while(cur_time - old_time < waktu ){
  •     cur_time = millis();
  •     while(Serial1.available()>0){
  •     Serial.print(Serial1.readString());
  •     } 
  •   }
  • }
sekian tutorial malam ini..
hasil belajar dengan bang jimmi kardo sitepu

Salam
SIMOR

1 komentar:

Uji sensor ultrasonic waterproof A01NYUB dengan ESP32

  apa itu sensor ultrasonic ?? Sensor jarak ultrasonik menentukan jarak ke target dengan mengukur selang waktu antara pengiriman dan penerim...