Prog ISP merupakan sebuah program atau aplikasi untuk mengupload sebuah Program dari Mikrokontroller. Aplikasi ini mendukung Mikrokontroler keluarga ATMEL MCS8051 (AT89S51, dll), keluarga AVR (ATMEGA32, ATMEGA328, ATMEGA8, dll), dan keluarga ATTINY (ATTINY85, dll). Aplikasi support hanya di windows, saya pribadi sering menggunakanya untuk keperluar mengupload program mikrokontroler dalam bentuk file .HEX atau .BIN. Serta saya gunakan untuk mengunci program agar tidak dapat dibaca orang lain. Tampilan ProgISP dapat dilihat dicover artikel ini di atas. Perangkat yang biasa digunakan dan support menggunakan Programmer USBASP atau USBISP Downlaoder. Berikut ini tampilan dari USBASP atau USBISP.
USBasp & USBisp Programmer
Sekarang ini sudah susah dicari sumber dan versi terbaru dari aplikasi ini. Saya pribadi tidak tau pembuat resmi dari aplikasi ini, dan sepengalaman saya aplikasi ini aman digunakan. Untuk mendownload aplikasi nya dapat gunakan link di bawah ini:
Download pada link berikut:
- https://drive.fanselectronics.com/index.php/s/7n9Rya7Dq8QJ37x
Video Tutorial
Dalam Proses
Oke itu dia aplikasi Prog ISP V1.72, semoga link download ini membantu kalian, apabila ada yang mengetahui sumber resmi dari aplikasi ini saya akan lampirkan dalam artikel ini. Terima kasih.
Belajar Arduino Fungsi | Design by FansElectronics.com
Fungsi pada arduino sudah disiapkan diawal secara default yakni void setup() dan void loop(). Fungsi setup(), akan menjalankan program sekali setelah Arduino pertama kali hudup atau restart. Sedangkan Fungsi loop(), akan dijalankan berulang (looping) terus menerus selama Arduino menyala.
Apa itu void? merupakan type data yang yang digunakan untuk mendeklarasikan sebuah fungsi tanpa mengembalikan sebuah nilai. Kita juga dapat membuat sebuah fungsi baru dengan type data lain, misalnya int, byte, boolean, String, char, char* (array). Untuk mengembalikan nilai data ke dalam fungsi dapat menggunakan perintah return.
Manfaat fungsi apa sih? tentu saja dengan menggunakan fungsi, apa bila kalian memiliki sebuah perintah yang sering digunakan berulang-ulang, menggunakan fungsi jauh lebih baik karena dapat menghemat waktu penulisan kita dalam membuat sebuah program.
Nah pada artikel ini akan Belajar Arduino! Apa Itu Fungsi (Void Setup, Loop). Langsung aja kita masuk ke materinya.
Contoh Fungsi LCD
Dengan menggunakan fungsi, kita dapat menggunakan perintah dalam satu baris saja untuk melakukan print lcd. Berikut contoh program fungsi LCD dalam satu baris.
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
// Print LCD tanpa Fungsi
lcd.setCursor(0, 0);
lcd.print("BELAJAR ARDUINO");
// Print LCD dengan FUngsi
lcdPrint(0, 1, "FansElectronics");
}
void loop() {
}
// Print LCD dengan type msg char*
void lcdPrint(uint8_t x, uint8_t y, char* msg) {
lcd.setCursor(x, y);
lcd.print(msg);
}
// Print LCD dengan type msg char
void lcdPrint(uint8_t x, uint8_t y, char msg) {
lcd.setCursor(x, y);
lcd.print(msg);
}
// Print LCD dengan type msg String
void lcdPrint(uint8_t x, uint8_t y, String msg) {
lcd.setCursor(x, y);
lcd.print(msg);
}
// Print LCD dengan type msg int
void lcdPrint(uint8_t x, uint8_t y, int msg) {
lcd.setCursor(x, y);
lcd.print(msg);
}
// Print LCD dengan type msg uint8_t
void lcdPrint(uint8_t x, uint8_t y, uint8_t msg) {
lcd.setCursor(x, y);
lcd.print(msg);
}
// Print LCD dengan type msg float
void lcdPrint(uint8_t x, uint8_t y, float msg) {
lcd.setCursor(x, y);
lcd.print(msg);
}
// bisa tambahkan type data lain dengan nama fungsi sama tidak masalah
Contoh Fungsi Matematika
Untuk melakukan kalkulasi yang terperinci, misal perhitungan sensor, perhitungan matematika lainnya. Kalian dapat gunakan sebuah fungsi untuk mempermudahnya. Berikut contohnya.
void setup() {
Serial.begin(9600);
Serial.println(penjumlahan(1, 1)); // 1 + 1
Serial.println(pengurangan(5, 1)); // 5 - 1
Serial.println(perkalian(5, 2)); // 5 x 2
Serial.println(pembagian(10, 2)); // 10 / 2
}
void loop() {
}
// penjumlahan
int penjumlahan(int val1, int val2) {
return val1 + val2; // kembalikan nilai
}
// pengurangan
int pengurangan(int val1, int val2) {
return val1 - val2; // kembalikan nilai
}
// perkalian
int perkalian(int val1, int val2) {
return val1 * val2; // kembalikan nilai
}
// pembagian
float pembagian(int val1, int val2) {
return val1 / val2; // kembalikan nilai
}
Fungsi Baca Tombol
Fungsi untuk menyederhankan bahasa pada tombol agar mudah dipahami. Kalian juga dapat memanfaatkan fungsi untuk memudahkan bahasa dalam sebuah perintah agar lebih berbahasa manusia.
// PIN
#define BTN A0
#define LED 13
// Logika
#define ON HIGH
#define OFF LOW
void setup() {
pinMode(BTN, INPUT_PULLUP);
pinMode(LED, OUTPUT);
}
void loop() {
if (bacaTombol()) {
// Program lain ketika tombol ditekan
// Misal nyalakan LED
digitalWrite(LED, ON);
}
}
// baca tombol, agak mudah dipahami
bool bacaTombol(uint8_t pin) {
// Jika ditekan = LOW, karena pullup
if (digitalRead(pin) == LOW) {
return true; // jika ditekan = true
}
return false; // jika tidak = false
}
Gimana menurut kalian mudah kan? Nah sekian dulu pembahasan Belajar Arduino! Apa Itu Fungsi (Void Setup, Loop) semoga bermanfaat untuk kalian. Apabila ada pertanyaan mari berdiskusi di kolom komentar di bawah. Bye Bye dan Salam Elektronik
Fuel Injector Tester | Design by FansElectronics.com
Fuel Injector merupakan sebuah komponen dari kendaraan bermotor yang digunakan untuk menyemprotkan bahan bakar ke dapur. Secara prinsip kerja Fuel Injector ini mirip sekali dengan Solenoid. Di dalam terdapat sebuah coil yang apabila dialiri Arus listrik, maka coil akan menarik Plunger kebelakang sehingga bahan bakar dalam tekanan tinggi akan keluar. Berikut ilustrasi cara kerja Fuel Injector.
Fuel Injector | liveabout.com
Untuk mengatur kecepatan dari buka dan tutup Injector, umumnya dalam kendaraan bermotor, terdapat ECU yang mengirimkan sinyal berdasarkan siklur dan posisi dari Piston. Saat kalian melakukan perawatan kendaraan, umumnya perlu dilakukan testing pada Injector untuk mengecek dari jumlah bahan bakar dalam RPM mesin tertentu. Oleh karena itu dibutuhkan sebuah alat untuk melakukan pengetesan pada komponen ini.
Pada pembahasan kali ini, kita akan belajar membuat sebuah Project Arduino Fuel Injector Tester. Semoga project ini dapat membantu kalian untuk melakukan testing pada Injector Kendaraan kalian.
Skematik Rangkaian
Berikut komponen yang perlu kalian siapkan dan perlu kalian rakit sesuai dengan skematik di bawah ini.
Skematik Fuel Injector Tester | Design by FansElectronics.com
Penggunaan driver Mosfet IRFZ44 digunakan untuk driver dari Arduino dengan Injector. Karena tegangan kerja dari Injector umumnya adalah 12V. Apakah bisa ganti mosfet lain selaian IRFZ44? Bisa gunakan Mosfet Type N lain, karena berdasarkan spesifikasinya disini kita butuh mosfet yang mampu menghandle sebagai driver dengan Frequency tinggi.
Program Project
Sebelum upload program di bawah jangan lupa download dulu Library yang dibutuhkan:
//--------------------------------------------------------------
#include "LiquidCrystal_I2C.h"
#include "PWM.h"
#define PWM 9 // PIN PWM
#define BUP A3 // PIN TOMBOL UP
#define BDN A2 // PIN TOMBOL DOWN
#define MAX_RPM 12000 // 200 RPM MAKS
char lcdBuff[17]; // Buffer Sprintf
int frequency = 50; // Nilai FQ
int rpm = 0; // Nilai RPM
int last_rpm; // Nilai terakhir RPM
LiquidCrystal_I2C lcd(0x27, 16, 2);
//--------------------------------------------------------------
void setup() {
Serial.begin(9600); // Serial ke PC
lcd.begin(); // LCD Int
pinMode(PWM, OUTPUT); // PWM OUTPUT
pinMode(BUP, INPUT_PULLUP); // TOMBOL INPUT INTERNAL
pinMode(BDN, INPUT_PULLUP); // TOMBOL INPUT INTERNAL
// Initialisasi kecuali TIMER0
// keperluan delay(), dan millis()
InitTimersSafe();
SetPinFrequencySafe(PWM, frequency);
}
//--------------------------------------------------------------
void loop() {
// Tombol
if (digitalRead(BUP) == LOW) { // TOMBOL UP DITEKAN
delay(10);
rpm = rpm + 10;
if (rpm > 12000) rpm = 12000;
}
//
else if (digitalRead(BDN) == LOW) { // TOMBOL DOWN DITEKAN
delay(10);
rpm = rpm - 10;
if (rpm < 0) rpm = 0;
}
if (rpm != last_rpm) {
frequency = map(rpm, 0, MAX_RPM, 0, MAX_RPM / 60);
SetPinFrequencySafe(PWM, frequency); // SET FQ
last_rpm = rpm; // Update Last_RPM
// DEBUG SERIAL
Serial.print(F("RPM: "));
Serial.print(rpm);
Serial.print(F(", FREQUENCY: "));
Serial.println(frequency);
}
// SET Duty Cycle 50% agar sinyal kotak
if (rpm == 0) pwmWrite(PWM, 0); // Jika RPM 0 = OFF
else pwmWrite(PWM, 127); // 50% DC
// Print LCD
lcd.setCursor(0, 0);
lcd.print("INJECTOR TESTER!");
sprintf(lcdBuff, " %05i RPM ", rpm);
lcd.setCursor(0, 1);
lcd.print(lcdBuff);
}
//--------------------------------------------------------------
Hasil Pengujian Frequency
Sebelum lanjut ke pengetesan, kita belajar dulu untuk mensimulasikan alat ini menjadi seperti kendaraan aslinya. Di mana kita perlu merubah nilai Frequency sama dengan nilai RPM dari kendaraan. Disini saya kurang paham jumlah pulsa setiap putaran koil dari setiap motor, untuk sederhananya saya menggunakan tool kalkulator berikut agar mempermudah perhitungan jumlah RPM ke Hz.
Pengujian Alat | Photo by FansElectronics.comPWM 50 Hz | Photo by FansElectronics.com
Dari contoh di atas, didapatkan padah frequency 1Hz = 60 RPM sehingga ketika kita test dengan 50Hz maka didapatkan nilai 3000 RPM. Untuk lebih jelas bisa tonton video di bawah ini.
Video Simulasi Testing
Sekian dulu dari saya, semoga jelas dan dapat dimanfaatkan dengan baik ilmunya. Jangan lupa komentar jika ada pertanyaan dan join ke website kita dan channel Youtube kita. Semoga bermanfaat, terima kasih dan Salam Elektronik.
Banyak sebelumnya temen-temen yang request terkait LCD menu dengan menggunakan tombol. Dengan menggunakan LCD dan Tombol kita semua juga dapat membuat sebuah menu untuk dibuat di project kita. Untuk mempermudah pembahasannya saya buatkan dalam bentuk Video dengan 6 Part. Namun sebelum lanjut, siapkan dulu komponen sesuai dengan skematik berikut.
Skematik Arduino Menu LCD Tombol | Design by FansElectronics.com
Playlist Video
Berikut keseluruan Playlist dibagi menjadi 1 s/d 6 part video. Yuk langsung saja silahkan disimak baik-baik dan siapkan kopi kalian, hehe.
Oke sekian Tutorial kali ini semoga bermanfaat, mampir juga ke Channel Youtube kita ya, untuk pertanyaan bisa tuliskan di kolom komentar di bawah atau di video tersebut. Semoga bermanfaat. Salam Elektronik.
Setting PWM Frequency Arduino | Design by FansElectronics.com
PWM atau Pulse Width Modulation yang dalam Bahasa disebut Modulasi Lebar Pulsa, merupakan suatu teknik modulasi yang mengubah lebar pulsa (pulse width) dengan nilai frekuensi dan amplitudo yang tetap. Umumnya pada Arduino kita sering menggunakan teknik ini untuk mengatur kecerahan sebuah LED, kecepatan sebuah Motor, dll. PWM juga memiliki istilah Duty Cycle yaitu ration antara sinyal dalam kondisi ON atau OFF. Aga mudah dipaham berikut ilustrasi Duty Cycle.
Duty Cycle | learn.sparkfun.com
Semoga dari ilustrasi ini kalian bisa paham. Sedangkan Frequency yaitu jumlah pulsa dalam satuan waktu (detik). Namun secara default PWM Arduino memiliki Frequency yang sudah diset kisaran 900Hz. Nah pada artikel ini kita akan belajar Tutorial Setting Frequency PWM Arduino dan Duty Cycle.
Skematik
Dalam simulasinya tentunya temen perlu memiliki Oscilloscope, namun disini kita juga bisa menggunakan outputan berupa led seperti berikut.
Arduino LED | docs.arduino.cc
Program PWM Tanpa Library
Disini saya akan coba memberikan tutorial program untuk akses PWM dengan menggunakan perintah analogWrite(PIN, DUTY CYCLE);. Pin PWM pada Arduino Uno terdapat tanda ~ pada kaki pinya. Sebagai contoh kita gunakan Pin 9. Bawaan Arduino hanya dapat mengatur nilai Duty Cycle saja dimana nilainya antara 0 s/d 25. Berikut ini program untuk akses PWM bawaan Arduino.
Berikut hasil pengukuran yang saya dengan Oscilloscope. Terlihat nilai Frequency dan Duty Cycle.
PWM analogWrite() | Photo by FansElectronics.com
Program PWM dengan Library Frequency
Dengan library ini sepengalaman saya hanya berfungsi pada pin Pin 9 dan 10 (berdasarkan testing). Sebelum lanjut silahkan download librarynya dilink berikut:
#include <PWM.h>
#define PIN_PWM 9
int frequency = 50; // 50Hz
void setup() {
// Initialisasi kecuali TIMER0
// keperluan delay(), dan millis()
InitTimersSafe();
SetPinFrequencySafe(PIN_PWM, frequency);
// Set Duty Cycle 50%
pwmWrite(PIN_PWM, 127);
}
void loop() {
}
Berikut ini hasil pengukuran Frequency dan Duty Cycle yang saya ukur dengan settingan Duty Cycle 50% atau 127 dalam desimal dan Frequency 50Hz.
PWM 50 Hz | Photo by FansElectronics.com
Pemanfaat Pengaturan Frequency
Dengan menggunakan library ini, kalian dapat membuat sebuah project untuk membuat pulsa generator yang dapat diatur. Sebagai contoh saya gunakan sebagai alat tester Injetor Bensin kendaraan bermotor. Gimana menurut kalian? mari diskusikan di kolom komentar dibawah. Semoga bermanfaat, salam Elektronik.
Skema SIM800L Arduino Uni 1 | Design by FansElectronics.com
Sebelumnya di channel youtube kita sudah bahas cara akses Telegram BOT dengan menggunakan ESP8266. Ada sedikit kekurangan untuk beberapa project yang membutuhkan koneksi internet tanpa jaringan WIFI. Sekarang kita akan bahas bagaimana cara pemprogram akses dengan memanfaatkan komunikasi SIM800OL agar dapat mengakses internet tanpa harus menggunakan WIFI dan hanya menggunakan kartu Perdana Telekomunikasi dengan menggunakan Paket Data.
SIM800L disini yang akan saya gunakan adalah SIM800L V2, dimana secara kestabilan dan berdasarkan pengalaman menggunakan SIM800L yang kecil merah sangat tidak saya rekomendasikan, karena susahnya dapat sinyal dan kendal-kendala aneh lain. Berikut perbedaan SIM800L V1 dan V2:
Skematik
Silahkan kalian rakit rangkaian berikut untuk melakukan komunikasi dengan Arduino Uno dan SIM800L berlaku juga dengan V1, sesuaikan saja konfirgurasi Pinnya.
Skema SIM800L Arduino Uni 1 | Design by FansElectronics.com
Menggunkan module LM2596 sebagai stepdown untuk mendapatkan arus lebih dari 2A bisa menggunakan versi ini atau Arduino bisa menggunkan jalur supply regulator yang terpisah
Skema SIM800L Arduino Uni 1 | Design by FansElectronics.com
Daftar Telegram BOT
Karena cara daftar telegram bot sudah pernah saya jelaskan di video saya di youtube. Kalian bisa tonton dulu cara daftarnya di video bawah ini:
Program AT Command
Untuk cek koneksi ke SIM800l dan cek kondisi module apakah aman, kalian bisa menggunakan program dibawah ini untuk memastikanya:
AT Command GPRS
Berikut daftar AT Command untuk melakukan koneksi GPRS dengan SIM800L
// Set Koneksi
AT+SAPBR=3,1,"CONTYPE","GPRS"
// Set APN, cari sendiri jenis APN perdana kalian, saya pakai XL
AT+SAPBR=3,1,"APN","internet"
// Set Settingan Diatas
AT+SAPBR=1,1
// Initialisasi ke HTPP
AT+HTTPINIT
AT+HTTPPARA="CID",1
// Karea
AT+HTTPPARA="URL","http://tryiot.online/telegram.php?token=BOT_TOKEN_KALIAN&chat_id=CHAT_ID)KALIAN&text=FansElectronics"
AT+HTTPACTION=0
AT+HTTPREAD
AT+HTTPTERM
AT+SAPBR=0,1
Dengan menggunakan program di atas kalian dapat mengirim perintah AT Command secara langsung melalui Serial Monitoring ARDUINO IDE.
Program PHP
Karena SIM800L terkadang terkendala koneksi SSL dan TSL 1.0 biasanya saya jembatanin menggunakan website pribadi saya untuk konekasinya:
Berikut ini program Kirim dan Baca pesan Telegram tanpa delay disetiap AT Commandnya, agak tidak menggangu alur kerja program lain juga.
//---------------------------------------------------------------------------
#include <ArduinoJson.h>
#include <SoftwareSerial.h>
// Define PIN
#define LED 13
// Define LOGIKA
#define ON 1
#define OFF 0
//---------------------------------------------------------------------------
const String bot_token = "BOT_TOKEN";
const String chat_id = "CHAT_ID";
//---------------------------------------------------------------------------
String response, json, message, send_message;
long offset;
int step_cmd;
bool send_telegram, response_cmd;
unsigned long response_timeout;
StaticJsonDocument<1000> doc;
SoftwareSerial SIM(8,9);
//---------------------------------------------------------------------------
void setup() {
Serial.begin(9600); // Serial KE PC
SIM.begin(9600); // Serial ke SIM
}
//---------------------------------------------------------------------------
void loop() {
if (send_telegram) sendTelegram(); // Jika saat Kirim Pesan, akan dibaca
else readTelegram(); // Jika Tidak ada kirim pesan, baca pesan masuk
//
if (message == "!LEDON") { // Pesan Masuk !RLYON
Serial.println("LED ON");
sendMessage("LED ON");
digitalWrite(LED, ON);
message = "";
} else if (message == "!LEDOFF") { // Pesan Masuk !RLYOFF
Serial.println("LED OFF");
sendMessage("LED OFF");
digitalWrite(LED, OFF);
message = "";
}
// LANJUT PROGRAM UTAMA KALIAN, TANPA DELAY, TETEP LOOPING
}
//---------------------------------------------------------------------------
//-------------------------------------------------------------------------------
void sendMessage(String msg) {
step_cmd = 1;
send_message = msg;
send_telegram = true;
}
//-------------------------------------------------------------------------------
void sendCommand(String cmd) {
SIM.println(cmd);
response_cmd = true;
response_timeout = millis();
}
//-------------------------------------------------------------------------------
void sendTelegram() {
if (step_cmd == 1 && !response_cmd) sendCommand("AT+HTTPTERM");
if (step_cmd == 2 && !response_cmd) sendCommand("AT+SAPBR=0,1");
else if (step_cmd == 3 && !response_cmd) sendCommand("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
else if (step_cmd == 4 && !response_cmd) sendCommand("AT+SAPBR=3,1,\"APN\",\"internet\"");
else if (step_cmd == 5 && !response_cmd) sendCommand("AT+SAPBR=1,1");
else if (step_cmd == 6 && !response_cmd) sendCommand("AT+HTTPINIT");
else if (step_cmd == 7 && !response_cmd) sendCommand("AT+HTTPPARA=\"CID\",1");
else if (step_cmd == 8 && !response_cmd) sendCommand("AT+HTTPPARA=\"URL\",\"http://tryiot.online/telegram.php?token=" + bot_token + "&chat_id=" + chat_id + "&text=" + send_message + "\"");
else if (step_cmd == 9 && !response_cmd) sendCommand("AT+HTTPACTION=0");
else if (step_cmd == 10 && !response_cmd) sendCommand("AT+HTTPTERM");
else if (step_cmd == 11 && !response_cmd) sendCommand("AT+SAPBR=0,1");
// SETELAH COMMAND DIKIRIN, TUNGGU RESPONSE
if (response_cmd) { // WAITING RESPON
if (SIM.available() > 0) { // Tunggu Serial Masuk
response = SIM.readString(); // Baca Semua Response
if (response.indexOf("OK") or response.indexOf("ER")) { // Jika Response OK
Serial.println(response); // Jika Response OK
response_cmd = false; //
step_cmd++; //
} //
} //
// Waktu Tunggu
if (millis() - response_timeout > 3000) { // TIMEOUT REPONSE
response_cmd = false; //
step_cmd++; //
} //
} //
// Jika Step selesai
if (step_cmd > 11) {
step_cmd = 1;
send_telegram = false;
response_cmd = false;
}
}
//-------------------------------------------------------------------------------
void readTelegram() {
if (step_cmd == 1 && !response_cmd) sendCommand("AT+SAPBR=0,1");
else if (step_cmd == 2 && !response_cmd) sendCommand("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
else if (step_cmd == 3 && !response_cmd) sendCommand("AT+SAPBR=3,1,\"APN\",\"internet\"");
else if (step_cmd == 4 && !response_cmd) sendCommand("AT+SAPBR=1,1");
else if (step_cmd == 5 && !response_cmd) sendCommand("AT+HTTPINIT");
else if (step_cmd == 6 && !response_cmd) sendCommand("AT+HTTPPARA=\"CID\",1");
else if (step_cmd == 7 && !response_cmd) sendCommand("AT+HTTPPARA=\"URL\",\"http://box-paket.online/telegram.php?token=" + bot_token + "&limit=1&offset=" + String(offset) + "\"");
else if (step_cmd == 8 && !response_cmd) sendCommand("AT+HTTPACTION=0");
else if (step_cmd == 9 && !response_cmd) sendCommand("AT+HTTPREAD");
else if (step_cmd == 10 && !response_cmd) sendCommand("AT+HTTPTERM");
else if (step_cmd == 11 && !response_cmd) sendCommand("AT+SAPBR=0,1");
// SETELAH COMMAND DIKIRIN, TUNGGU RESPONSE
if (response_cmd) { // WAITING RESPON
if (SIM.available() > 0) { // Tunggu Serial Masuk
response = SIM.readString(); // Baca Semua Response
if (response.indexOf("OK") or response.indexOf("ER")) { // Jika Response OK
Serial.println(response); // Jika Response OK
if (step_cmd == 9) { //
json = parsingJSON(response); //
Serial.print("JSON: "); //
Serial.println(json); // Jika Response OK
DeserializationError error = deserializeJson(doc, json); //
if (!error) { // Jika JSON BENAR
Serial.println(F("JSON PARSING BERHASIL")); //
if (doc["ok"] == true) { // JSON OK true
Serial.println(F("BERHASIL PARSING JSON")); //
String update_id = doc["result"][0]["update_id"]; // UPDATE ID
String msg = doc["result"][0]["message"]["text"]; //
if (update_id != "null") { //
offset = update_id.toInt() + 1; //
message = msg; //
Serial.println("UPDATE ID: " + update_id); //
Serial.println("OFFSET ID: " + String(offset)); //
Serial.println("MESSAGET : " + message); //
} //
} //
} else { //
Serial.println(F("JSON PARSING GAGAL")); //
Serial.print(F("deserializeJson() failed: ")); //
Serial.println(error.f_str()); //
} //
} //
if (step_cmd != 8) { //
response_cmd = false; //
step_cmd++; //
} //
} //
} //
// Waktu Tunggu
if (millis() - response_timeout > 10000) { // TIMEOUT REPONSE
response_cmd = false; //
step_cmd++; //
} //
} //
// Jika Step selesai
if (step_cmd > 11) {
step_cmd = 1;
send_telegram = false;
response_cmd = false;
}
}
//-------------------------------------------------------------------------------
// Parsing JSON agar bersih full JSON saja
String parsingJSON(String data) {
String payload = "";
int len = data.length();
bool start = false;
for (int i = 0; i < len; i++) {
if (!start) {
if (data[i] == '{') {
start = true;
payload = payload + data[i];
}
} else {
if (data[i] == '@') break;
else if (data[i] == '\n') continue;
else payload = payload + data[i];
}
}
return payload;
}
Video Tutorial Lengkap
Gimana menurut kalian? gampang dan mudah kan, adapun beberapa kendala yang kalian alami, join ke website ini dan tinggalkan komentar di bawah mari berdiskusi dengan sehat. Terma kasih semoga bermanfaaat tutorial ini. Salam Elektronik.
Tutorial Sensor NTC Arduino | Photo by FansElectronics.com
Halo Salam Elektronika, pada tutorial kali ini saya akan membahas tentang sensor Thermistor atau NTC dengan nilai 10K yang digunakan disini. Sebelum lebih jauh alangkah baiknya kita kenalan dulu dengan Sensor Thermistor ini.
Thermistor merupakan sebauh Resistor yang perubahan nilai hambatanya terpengarui dengan perubahan suhu sekitarnya. Thermistor memiliki 2 jenis NTC dan PTC (Negatif Temperature Coefficient atau Positif Temperature Coefficient). Yang artinya untuk NTC semakin tinggi suhu semakin mengecil nilai Hambatanya dan sebaliknya PTC semakin tingg suhu semakin tinggi nilai hambatanya. Sampai disini paham ya 😀
Skematik Rangkaian ke Arduino
Oke sebelum masuk ke pemrograman, silahkan rakit Arduino kalian sesuai dengan skematik di bawah ini.
Skematik NTC | electronicwings.com
Source Code
Pada program NTC ini tidak dibutuhkan library apapun, silahkan kalian install saja Arduino IDE dan kemudian upload program berikut:
Untuk Tutorial Instalasi Arduino silahkan baca artikel berikut:
Instalasi Arduino IDE | Design by FansElectronics.com
Arduino IDE (Integrated Development Environment) merupakan program yang digunakan untuk membuat sebuah kode program untuk perangkat Arduino. Disebut sebagai IDE karena banyak sekali fasilitas yang sudah ditanamkan di dalam satu aplikasi ini. Mulai dari Kode Editor, Serial Monitoring, Serial Plotter, Debuging, Programmer, dll. Oleh karena itu Arduino IDE sangat enak digunakan bagi awam, karena tidak perlu memperlajari aplikasi-aplikasi lain dalam mengembangkan project-project Arduino.
Download Arduino IDE
Untuk mendownload Arduino IDE versi 1.X atau 2.X dapat download di situs resminya secara langsung di:
Dalam tutorial ini saya anggap kalian download versi installer (.exe). Silahkan buka dan install aja seperti biasa. Centang semua Driver seperti berikut:
Checklist Driver | docs.arduino.cc
Pilih lokasi instalasi, sesuaikan dengan kebutuhan kalian:
Path Location Installasi | docs.arduino.cc
Tunggu proses installasi selesai
Proses Installasi | docs.arduino.cc
Buka Arduino IDE, dan berikut tampilan dari Arduino IDE versi 1.X.
Instalasi Arduino | Screenshot by FansElectronics.com
Tutorial Install Arduino IDE 2.X
Download dan buka Installer Arduino IDE 2.X.
Arduino IDE V2 Installer | docs.arduino.cc
Ikuti Step by Step Instalasi berikut:
Step by Step Instalasi Arduino IDE 2 | docs.arduino.cc
Berikut ini adalah tampilan dari Arduino IDE 2.0.3, saat artikel ini dibuat:
Arduino IDE 2.0.3 | docs.arduino.cc
Untuk lebih jelasnya dan mudah dipahami, kalian bisa tonton video berikut ini untuk pengalaman yang lebih baik.
Oke sekian dulu tutorial ini semoga bermanfaat, jangan lupa tinggalkan komentar dan join kita di website ini. Salam Elektronik.
Arduino terkenal dikarenakan banyaknya pustaka, atau library yang sangat memudahkan kita dalam membuat sebuah project elektronika yang khususnya menggunakan mikrokontroler. Dengan adanya Library kita dapat mempersingkat waktu kita dalam membuat mengakses atau menjalankan perintah dari sebuah module-module yang ada, karena segala sesuaitunya sudah disediakan di dalam Library tersebut.
Untuk kalian yang tidak paham sebenarnya apasih library pada Arduino itu. Library Arduino merupakan sekumpulan fungsi-fungsi yang dalam kita panggil untuk menjalankan sebuah perintah yang sering kita ulang. Sebagai contoh kita akan membuat sebuah program sederhana yang agar memudahkan untuk dipahami. Berikut contoh program sederhana
// Fungsi Setup, dijalankan sekali
void setup() {
Serial.begin(9600);
Serial.println(penjumlahan(1, 2)); // 1+2 = 3
}
// Fungsi Looping, dijalankan sampai restart
void loop() {
}
// Fungsi penjumlahan 2 variable
int penjumlahan(int a, int b) {
return a + b;
}
Dari perintah diatas, terdapat fungsi penjumlahan(), dimana dapat melakukan perintah penjumlahan dengan cara kita memasukan variable yang ingin kita jumlahkan. Sehingga menghemat waktu dan apabila fungsi ini sering digunakan juga akan menghemat memory dari program yang kita tulis.
Nah dari sini setidaknya kalian sedikit paham tentang library bukan? Sesuai judul artikel ini. Disini Fans Electronics akan membagikan kumpulan libary-library yang sering kita gunakan, dan kita mengumpulkannya dalam satu repository agar lebih mudah sebagai backup pribadi. Semua library tersebut tentunya bukan buatan kita pribadi. Namun apabila kalian mengetahui Repository resminya silahkan download langsung disana. Namun disini saya gunakan untuk kalian agar tidak repot kedepannya dalam mengikuti seluru pelajaran yang ada di Blog ini. Berikut ini link Downloadnnya:
Pengenalan Arduino | Design by FansElectronics.com
Apa itu Arduino? Untuk kalian yang belajar dan berkarir dibidang elektronika, tentu saja sudah mengenal apa itu Arduino. Namun disini saya akan jelaskan secara sederhana saja, karena diharapkan dapat dipahami juga oleh awam.
Dikutip dari situs remisnya, Arduino adalah peramhlat elektronik dengan sumber terbuka (open source) berdasarkan perangkat keras dan perangkat lunak yang mudah digunakan. Perangkat Arduino dapat membaca input – cahaya pada sensor, jari pada tombol, atau pesan Twitter – dan mengubahnya menjadi output – mengaktifkan motor, menyalakan LED, menerbitkan sesuatu secara online. Anda dapat memberi tahu papan Anda apa yang harus dilakukan dengan mengirimkan serangkaian instruksi ke mikrokontroler di papan rangkainya. Untuk melakukannya Anda menggunakan bahasa pemrograman Arduino (berdasarkan pengkabelan), dan Perangkat Lunak Arduino (IDE), berdasarkan pemrosesan.
Mengapa Harus Arduino?
Arduino sebenarnya merupakan sebuah minimum sistem yang didalamnya sudah terintergariskan komponen pendukung dari sebuah Mikrokontroler. Dulu kita perlu membuat sebuah rangkaian dari minimum sistem namun dengan adanya Arduino, proses tersebut lebih dimudahkan lagi, karena kita tidak perlu lagi membutuhkan seperti Regulator tegangan, USB serial programmer, dll. Intinya colok siap pakai :D. Adapun keuntungan menggunakan Arduino antara lain:
Murah: Arduino relatif murah dibandingkan dengan platform mikrokontroler lainnya. Versi paling murah dari modul Arduino dapat dirakit dengan tangan, dan bahkan modul Arduino pra-rakitan harganya kurang dari $50 versi originalnya. Terlebih lagi dengan adana clone dari China, tentu saja sangat banyak beredar Arduino yang jauh lebih murah lagi terkadang kurang dari $3 / Rp. 50,000 an.
Cross-platform: Arduino Software (IDE) berjalan pada sistem operasi Windows, Macintosh OSX, dan Linux. Sebagian besar sistem mikrokontroler terbatas pada Windows. Namun sekarang juga terdapat versi Android yang dibuat oleh komunitas, seperti ArduinoDroid.
Lingkungan pemrograman yang sederhana dan jelas: Perangkat Lunak Arduino (IDE) mudah digunakan untuk awam, namun cukup fleksibel untuk dimanfaatkan oleh pengguna profesional. Untuk pembelajaran, sangat mudah untuk diajarkan untuk melakukan pemrosesan data, sehingga siswa yang belajar memprogram akan terbiasa dengan cara kerja Arduino IDE yang sangat mudah.
Perangkat lunak sumber terbuka dan dapat diperluas: Perangkat lunak Arduino diterbitkan sebagai alat sumber terbuka (Open Source), tersedia untuk ekstensi oleh pemrogram tingkat lanjut (seperi bahasa asembly). Bahasa ini dapat diperluas melalui library menggunakan C++, dan orang yang ingin memahami detail teknis dapat membuat lompatan dari Arduino ke bahasa pemrograman AVR C yang menjadi dasarnya. Demikian pula, Anda dapat menambahkan kode AVR-C langsung ke program Arduino Anda jika Anda mau.
Sumber terbuka dan perangkat keras yang dapat diperluas: Desain Perangkat Arduino diterbitkan di bawah lisensi Creative Commons, sehingga desainer sirkuit yang berpengalaman dapat membuat modul versi mereka sendiri, memperluas dan memperbaikinya. Bahkan pengguna yang relatif tidak berpengalaman pun dapat membuat modul versi perangkatnya sendiri. Namun dilarang menggunakan brand Arduino jika ingin menjual belikan kembali.
Kesimpulan diatas, Arduino jauh lebih mudah dan cepat untuk siapapun yang ingin membuat sebuah alat elektronika. Karena dengan banyaknya library yang tersedia memudahkan kita dalam membangun project-project kita, sekaligus menghemat waktu.
Hardware Arduino
Arduino Hardware
Banyak sekali pilihan Perangkat dari Arduino, yang dapat kalian sesuaikan dengan kebutuhan kalian, dimana kalian perlu memperhatian kebutuhan seperti, kecepatan CPU, Kapasitas RAM, Memory Flash, Jumlah pin Input dan Output, dll. Berikut beberapa jenis Arduino yang ada dipasaran:
Video berikut mungkin dapat memudahkan kalian dalam memperlajari apa itu Arduino? jangan lupa ditonton juga ya.
Oke itu dulu pengenalan Arduino kali ini, kedepannya kita akan bahas satu persatu, mulau dari dasar-dasar hingga ke pengujian setiap module dan pemrograman arduino. Semoga bermanfaat jangan lupa mampir ke sosial media kita. Salam Elektronik.