muncul sharing ini berawal dari sebuah kasus sim900 konek ke server blynk cannot init dan kadang konek kadang diskonek
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
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
Mantab om Fuad sharing ilmunya...
BalasHapus