Menampilkan Gambar atau ICON pada display LCD OLED SSD1306

10:13 AM Comment

 


Cara menampilkan gambar atau ICON pada display OLED SSD1306


Warna yang dapat ditampilkan pada layar OLED SSD 1306 hanya hitam putih saja, dengan begitu supaya tampilan lebih berkesan keren maka dapat kalian tampilkan gambar atau icon pada display, caranya cukup mudah yaitu yang perlu disiapkan pertama :

  • NodeMCU (bisa juga menggunakan arduino)
  • Modul OLED SSD1306
  • Kabel Jumper
  • Icon yang akan ditampilkan
  • Image to C++

Setelah semua disiapkan selanjutnya pemasangan kabel Node MCU dengan modul OLED SSD 1306

Cara menampilkan gambar atau ICON pada display OLED SSD1306


Berikutnya instal library pada aplikasi Arduino iDE untuk mengakses OLED


Siapkan gambar atau icon yang ingin kalian tampilkan pada OLED 1306

Untuk gambar atau incon yang akan digunakan usahakan berformat .png dan memiliki warna utama putih, kemudian konversi gambar atau icon secara inline di  https://javl.github.io/image2cpp/

Setelah membuka web konversi kalian pilih gambar yang akan di konversi dengan klik pilih gambar kemudian setting canvas untuk ukuran pixel gambar atau icon yang akan ditampilkan pada OLED

Bagian Background color pilih pada opsi black. Lanjut ke bagian scalling  pilih scale to fit, keeping proportions. Setelah melakukan setting, maka akan muncul gambar privew nya

Selanjutnya Pada Code output format pilih Arduino Code. Pada identifier silahkan disesuaikan (disini myBitmap saya ganti menjadi wifiIcon). Terakhir klik tombol generate code dan akan muncul kode dari icondan kode tersebut salin ke project arduino ide kalian




Hasil program pada arduino ide seperti dibawah ini


#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);

const unsigned char wifiIcon [] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x07, 0xff, 0xe0, 0x00, 0x00, 0x7f, 
  0xff, 0xfe, 0x00, 0x01, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 
  0xff, 0xf0, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xfc, 0x00, 0x3f, 0xfe, 0xff, 0xe0, 0x00, 0x07, 
  0xff, 0xff, 0x87, 0xff, 0xe1, 0xff, 0x7f, 0x1f, 0xff, 0xf8, 0xff, 0x7e, 0x7f, 0xff, 0xfe, 0x7e, 
  0x3c, 0xff, 0xff, 0xff, 0x3c, 0x01, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xe7, 0xff, 0xc0, 0x03, 
  0xfe, 0x00, 0x3f, 0xe0, 0x03, 0xf8, 0x7e, 0x1f, 0xc0, 0x01, 0xe3, 0xff, 0xc7, 0x80, 0x00, 0xc7, 
  0xff, 0xe3, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x00, 0x00, 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 
  0xf8, 0x00, 0x00, 0x0f, 0xc3, 0xf0, 0x00, 0x00, 0x07, 0x81, 0xe0, 0x00, 0x00, 0x03, 0x3c, 0xc0, 
  0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
  0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 
  0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

void setup() {
  Serial.begin(9600);

  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { 
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); 
  }
  
  // just intro
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.setCursor(38,20);  display.println(F("ARDUCODING"));
  display.setCursor(39,35);  display.println(F("TEST ICON"));
  display.display(); //tampilkan data
  delay(3000); 
  display.clearDisplay(); //clear sebelum tampilan baru
  display.drawBitmap(44, 15, wifiIcon, 40, 40, WHITE); 
  display.display(); //tampilkan data
}

void loop() {
}

Membuat Sensor Parkir di Garasi Mobil dengan Indikator Led Strip

11:16 AM Comment

 

Membuat Sensor Parkir di Garasi Mobil dengan Indikator Led Strip

Pada artikel kali ini akan membuat sensor parkir pada garasi mobil. Sensor parkir ini menggunakan sensor ultrasonic dan dengan lampu led strip 5v merah sebagai indikator bahwa mobil sudah mendekati tembok, cara membuatnya yaitu cukup mudah, pertama bahan yang disediakan yaitu :

  • Arduino uno
  • Sensor ultrasonic HC-SR04
  • Lampu led strip 5v merah
  • Adaptor 5v

Untuk rangkaiannya dapat kalian lihat dibawah ini

Membuat Sensor Parkir di Garasi Mobil dengan Indikator Led Strip

Keterangan :

  • Pin gnd pada sensor ultrasonic dan salah satu pin untuk led strip gubungkan ke gnd pada arduino
  • Pin VCC pada sensor ultrasonic hubungkan ke pin 5v pada arduino
  • Pin trig hubungkan ke pin 2 arduino
  • Pin echo hubungkan ke pin 3 arduino
  • Salah satu pin untuk led strip hubungkan ke pin 4 arduino
  • Selanjutnya memprogram arduino
  • Copy program dibawah ini dan pastekan ke project arduino ide kalian
[Program]

const int triggerPin = 2;
const int echoPin = 3;
const int LED1 = 4;

long durasi;
int jarak;

void setup() {
pinMode(triggerPin, OUTPUT); 
pinMode(LED1, OUTPUT); 
pinMode(echoPin, INPUT);
  
Serial.begin(9600); 
}

void loop() {
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  durasi = pulseIn(echoPin, HIGH);
  jarak = durasi*0.034/2;
  
  if(jarak <= 20){
    Serial.println("Jarak kurang dari 20cm");
    digitalWrite(LED1, HIGH);
  }else{
    Serial.println("Jarak lebih dari 20cm");
    digitalWrite(LED1, LOW);
  }
}
  • Selanjutnya upload dan ubah jarak yang ada pada program atau yang diberi warna merah sesuai jarak yang kalian inginkan
  • Led akan hidup jika mendeteksi objek dengan jarak kurang dari sama dengan 20cm
  • jarak objek melebihi 20cm led akan mati

Program Cara Kalibrasi Sensor Warna dengan Arduino UNO

10:24 AM Comment

 

Program Cara Kalibrasi Sensor Warna dengan Arduino UNO

Pada artikel kali ini akan membahas tentang kalibrasi sensor warna TCS 3200, sensor warna TCS 3200 terkadang perlu dikalibrasi supaya mendeteksi warna dengan akurat, untuk pemasangan sensor warna ke arduino dapat dilihat pada artikel sebelumnya atau klik disini.

  • Untuk kalibrasi sensor warna kalian copy program dibawah ini dan pastekan ke arduino ide kalian kemudian upload
[program kalibrasi]

int frequency = 0; 
 
void setup() {
  pinMode(S0, OUTPUT); 
  pinMode(S1, OUTPUT); 
  pinMode(S2, OUTPUT); 
  pinMode(S3, OUTPUT); 
  pinMode(sensorOut, INPUT); 

  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  Serial.begin(9600);
}
void loop() {

  //baca merah
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  frequency = pulseIn(sensorOut, LOW);
  Serial.print("M= ");
  Serial.print(frequency);
  Serial.print(" ");
  delay(100);
 

  //baca hijau
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  frequency = pulseIn(sensorOut, LOW);
  Serial.print("H= ");
  Serial.print(frequency);
  Serial.print(" ");
  delay(100);
 
  //baca biru
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  frequency = pulseIn(sensorOut, LOW);
  Serial.print("B= ");
  Serial.print(frequency);
  Serial.println(" ");
  delay(100);
}
  • Pada serial monitor akan muncul nilai dari setiap warna yang terdeteksi
  • Catat seluruh nilai yang terdeteksi kemudian upload program sensor warna dibawah ini
[program sensor warna]

int frequency = 0; 
 
void setup() {
  pinMode(S0, OUTPUT); 
  pinMode(S1, OUTPUT); 
  pinMode(S2, OUTPUT); 
  pinMode(S3, OUTPUT); 
  pinMode(sensorOut, INPUT); 

  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  Serial.begin(9600);
}
void loop() {

  //baca merah
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  frequency = pulseIn(sensorOut, LOW);
  frequency = map(frequency, Nilai_minimal,Nilai_maksimal,255,0);
  Serial.print("M= ");
  Serial.print(frequency);
  Serial.print(" ");
  delay(100);
 

  //baca hijau
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  frequency = pulseIn(sensorOut, LOW);
  frequency = map(frequency, Nilai_minimal,Nilai_maksimal,255,0);
  Serial.print("H= ");
  Serial.print(frequency);
  Serial.print(" ");
  delay(100);
 
  //baca biru
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  frequency = pulseIn(sensorOut, LOW);
  frequency = map(frequency, Nilai_minimal,Nilai_maksimal,255,0);
  Serial.print("B= ");
  Serial.print(frequency);
  Serial.println(" ");
  delay(100);
}
  • Ganti nilai program pada bari void loop > frequency = map (frequency, nilai minimal, nilai maksimal, 255, 0); , atau baris program yang diberi warna merah.
  • Upload program sensor warna dan uji coba dengan mendekatkan warna ke sensor kemudian lihat hasilnya pada serial monitor

Itulah cara mengkalibrasi sensor warna dengan mudah, terimakasih dan selamat mencoba

program lengkap deteksi warna dengan arduino uno

5:50 PM Comment

 

Pada artikel ini akan dibahas bagaimana cara memprogram sensor warna TCS3200 dengan menggunakan arduino uno

Komponen yang disiapkan yaitu :

  • Arduino UNO
  • Sensor warna TCS3200
  • Kabel jumper secukupnya

Pertama rangkai sensor warna dengan arduino seperti dibawh ini

program lengkap deteksi warna dengan arduino uno

Keterangan :

  • Hubungkan pin VCC pada sensor ke pin 5V pada arduino
  • Hubungkan pin GND pada sensor ke pin GND pada arduino
  • Hubungkan pin S0 sensor ke pin 4 arduino
  • Hubungkan pin S1 sensor ke pin 5 arduino
  • Hubungkan pin S2 sensor ke pin 6 arduino
  • Hubungkan pin S3 sensor ke pin 7 arduino
  • Hubungkan pin Out sensor ke pin 8 arduino

Setelah semua sudah terhubung selanjutnya memasukkan program ke board arduino

  • Hubungkan arduino uno dengan kabel usb ke komputer
  • Buka aplikasi arduino ide
  • Pilih menu tools > board > arduino uno
  • Pilih menu tools lagi kemudian port > COM yang aktif
  • Copy program dibawah ini dan upload

[program]

#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define OutputSensor 8

int merah = 0;
int hijau = 0;
int biru = 0;

void setup()
{
  Serial.begin(9600);
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);

  pinMode(OutputSensor, INPUT);

  digitalWrite(S0, HIGH);
  digitalWrite(S1, LOW);
}

void loop()
{
  digitalWrite(S2, LOW);
  digitalWrite(S3, LOW);
  merah = pulseIn(OutputSensor, LOW);
  Serial.print("R = ");
  Serial.println(merah);
  delay(250);

  digitalWrite(S2, HIGH);
  digitalWrite(S3, HIGH);
  hijau = pulseIn(OutputSensor, LOW);
  Serial.print("G = ");
  Serial.println(hijau);
  delay(250);

  digitalWrite(S2, LOW);
  digitalWrite(S3, HIGH);
  biru = pulseIn(OutputSensor, LOW);
  Serial.print("B = ");
  Serial.println(biru);
  delay(250);
}

Setelah selesai terupload buka serial monitor dan uji coba dekatkan warna merah, hijau, dan biru secara bergantian, pada serial monitor akan muncul keterangan warna

 

Cara mengakses Program GPS Dengan NodeMCU

11:57 AM Comment

 

Pada pembahasan kali ini akan dijelaskan cara mengakses modul GPS dengan Node MCU, GPS bisa digunakan untuk mengendalikan drone secara otomatis untuk memantau lokasi. Pertama akan dibahas terlebih dahulu bagaimana cara mengakses modul gps dengan NodeMCU

Komponen yang disiapkan :

  • NodeMCU
  • Modul GPS

Untuk rangkaian dapat dilihat dibawah ini

Cara mengakses GPS dengan NodeMCU

Keterangan :

  • Pin VCC pada modul GPS hubungkan ke pin Vin pada NodeMCU
  • Pin GND pada modul GPS hubungkan ke pin GND pada NodeMCU
  • Pin RX modul GPS hubungkan ke pin D1 NodeMCU
  • Pin TX modul GPS hubungkan ke pin D2 NodeMCU

Setelah semua terhubung selanjutnya upload program ke board NodeMCU

  • Buka aplikasi Arduino IDE
  • Buka pada menu sketch > include library > manage libraries
Cara mengakses Program GPS Dengan NodeMCU
  • Selanjutnya akan muncul tampilan seperti dibawah ini dan cari TinyGPS dan install, tunggu samapi proses instalasi selesai dan close jika selesai di install
Cara mengakses Program GPS Dengan NodeMCU
  • Salin program dibawah ini ke project kalian
  • Pada Arduino IDE pilih menu tools > board > esp8266 > NodeMCU
  • Pilih lagi menu tools > port > COM yang aktif
  • Setelah itu upload program dan tunggu sampai selesai
  • Cek pada serial monitor, akan muncul sejumlah informasi koordinat dari GPS
#include <TinyGPS++.h>
#include <SoftwareSerial.h>

const int RXPin = D1, TXPin = D2;
const uint32_t GPSBaud = 9600; //Default baud of NEO-6M is 9600


TinyGPSPlus gps; // the TinyGPS++ object
SoftwareSerial gpsSerial(RXPin, TXPin); // the serial interface to the GPS device

void setup() {
  Serial.begin(9600);
  gpsSerial.begin(GPSBaud);

  Serial.println(F("Arduino - GPS module"));
}

void loop() {
  if (gpsSerial.available() > 0) {
    if (gps.encode(gpsSerial.read())) {
      if (gps.location.isValid()) {
        Serial.print(F("- latitude: "));
        Serial.println(gps.location.lat());

        Serial.print(F("- longitude: "));
        Serial.println(gps.location.lng());

        Serial.print(F("- altitude: "));
        if (gps.altitude.isValid())
          Serial.println(gps.altitude.meters());
        else
          Serial.println(F("INVALID"));
      } else {
        Serial.println(F("- location: INVALID"));
      }

      Serial.print(F("- speed: "));
      if (gps.speed.isValid()) {
        Serial.print(gps.speed.kmph());
        Serial.println(F(" km/h"));
      } else {
        Serial.println(F("INVALID"));
      }

      Serial.print(F("- GPS date&time: "));
      if (gps.date.isValid() && gps.time.isValid()) {
        Serial.print(gps.date.year());
        Serial.print(F("-"));
        Serial.print(gps.date.month());
        Serial.print(F("-"));
        Serial.print(gps.date.day());
        Serial.print(F(" "));
        Serial.print(gps.time.hour());
        Serial.print(F(":"));
        Serial.print(gps.time.minute());
        Serial.print(F(":"));
        Serial.println(gps.time.second());
      } else {
        Serial.println(F("INVALID"));
      }

      Serial.println();
    }
  }

  if (millis() > 5000 && gps.charsProcessed() < 10)
    Serial.println(F("No GPS data received: check wiring"));
}

Program Sensor Api Dengan Node MCU

12:25 PM Comment

 

Program Sensor Api Dengan Node MCU

Pada artikel ini akan dibahas mengenai cara mengakses sensor api dengan Node MCU dan nanti akan bisa digunakan untuk memonitoring atau menjadi alat deteksi api yang bisa terhubung ke smartphone. Komponen yang dibutuhkan yaitu :

  • Node MCU
  • Kabel USB untuk menghubungkan Node MCU ke Laptop / PC
  • Sensor Api / flame sensor
  • Kabel jumper
  • Laptop / pc yang terinstal Arduino IDE

Ikuti rangkaian seperti pada gambar dibawah ini

Program Sensor Api Dengan Node MCU

Keterangan :

  • Pin VCC sensor api hubungkan ke 3v3 pada Node MCU
  • Pin GND sensor api hubungkan ke pin GND Node MCU
  • Pin A0 sensor api hubungkan ke pin A0 pada Node MCU

Setelah semua terhubung selanjutnya mengupload program ke board node mcu

  • Hubungkan board node mcu dengan kabel usb ke laptop / pc
  • Buka aplikasi Arduino IDE
  • Setting board pada menu tools > board > esp8266 > Node MCU
  • Setting juga port yang terhubung di menu tools > port > COM yang aktif
  • Salin program dibawah ini ke project arduino ide kalian dan upload program
  • Tunggu sampai selesai

Untuk uji cobanya kalian buka pada serial monitor di arduino ide dan kalian dekatkan sumber api ke sensor, pada serial monitor akan muncul text “kebakaran” jika sensor mendeteksi sumber api dan text “aman” jika sensor tidak mendeteksi sumber api