Kumpulan Tutorial, Referensi dan Project Arduino Open Source
Minggu, 29 Januari 2017
GY-88 : Altimeter ,Accelerometer ,Tilt meter, Barometer, Temperature and Compass sensor With GY-88 + Oled LCD
Altimeter ,Accelerometer ,Tilt meter, Barometer, Temperature and Compass sensor With GY-87 + Oled LCD
Project ini adalah kelanjutan dari materi sebelumnya :
http://www.belajarduino.com/2017/01/gy-88-imu-10dof-mpu6050hmc5883lbmp085.html
Sensor GY-88 sebuah device i2C gabungan dari 3 buah Sensor, yaitu :
MPU6050 : Accelerometer Sensor (Address is 0x68)
HMC5883L : Digital Compass Sensor (Address is 0x1E) BMP085 : Barometer & Temperature Sensor (Address is 0x77)
MPU6050 adalah Sensor pendeteksi gerakan 6-axis yaitu 3-axis gyroscope dan 3-axis accelerometer dengan Digital Motion Processor™ (DMP).
HMC5883L aalah Sensor Digital Compass dengan 3-axis
BMP085 adalah Sensor tekanan udara (barometric pressure) dan temperatur udara dengan akurasi tinggi.
Module Sensor GY-88
mirip dengan rivalnya GY-87, yang membedakanya adalah jenis sensor
barometric yang ditanamkan.GY-87 menggunakan barometric sensor BMP180
sedangkan sensor GY-88 menggunakan barometric sensor BMP085.
Dari sebuah sensor GY-88 kita dapat memperoleh Out data berupa :
*3 Axis Accelerometer and rotation (x,y,z) -> from MPU6050 device
*Compass Data/Dirrection (angle) -> from HMC5883L device
*Air Pressure, Altimeter and Temperature -> from BMP180 device
Beli Sensor GY-88 di Tokopedia Rajacell Beli
Beli LCD Oled 0.96" Putih di Tokopedia Rajacell Beli
Beli LCD Oled 0.96" Biru di Tokopedia Rajacell Beli
Beli LCD Oled 0.96" Biru-Kuning di Tokopedia Rajacell Beli
Beli LCD Push Button di Tokopedia Rajacell Beli
Kita akan menggunakan 2 buah Device i2C/TWI menggunakan 1 koneksi SDA SCL
Berikut adalah Wiring Sensor GY-88 dengan Arduino
Untuk power pada GY-88 silahkan pilih salah satu (pin Vin atau pin 3.3v)
sesuai ketersediaan pin pada arduino/mikrokontroller yg dipakai.
untuk 3 pin lainya (M_DRDY,G_ADO,G_INT) tidak kita gunakan untuk kebutuhan standar.
Wiring Pin LCD Oled 0.96 inch ke Arduino :
Pin GND LCD --> ke Pin GND Arduino
Pin VCC LCD --> ke Pin 5V Arduino
Pin SCL LCD --> ke Pin SCL(A5) Arduino
Pin SDA LCD --> ke Pin SDA (A4) Arduino
Untuk Arduino Uno / Nano / Pro mini Pin SDA adalah pin A4 dan SCL adalah A5
Untuk Arduino Mega2560 Pin SDA adalah pin 20(D20) dan SCL adalah 21 (D21)
Wiring Push button ke Arduino :
Hubungkan 1 sisi push button (Momentary Normally Open)dengan D3 dan sisi lainya dengan Pin GND Arduino.
Anda bisa menggunakan tombol push button jenis apapun asal tidak mengunci (hanya momentary saja).
Berikut adalah Library yang dibutuhkan Sensor GY-88 pada project ini :
Lihat video cara memasukan Library baru ke dalam sistem arduino berikut ini Lihat Video
Setelah semua library sudah di download dan dimasukan ke dalam folder
libraries..silahkan copy paste coding berikut ke dalam Arduino IDE
anda.Saya menyarankan anda menggunakan Arduino IDE versi diatas 1.6.7
(jangan gunakan 1.6.10 dan 1.6.11).
Berikut adalah Contoh Source Code untuk Altimeter ,Accelerometer ,Tilt
meter, Barometer, Temperature and Compass sensor dengan Oled LCD
0.96"i2C
Source Code:
//Sketch Coding ini dibuat Oleh Dani Ardianto untuk www.belajarduino.com//Anda bisa menggunakan source code ini secara gratis untuk tujuan Non-Komersial//Semua module yang dibutuhkan untuk Module ini dapat anda peroleh di Toko kami//Melalui portal Tokopedia www.tokopedia.com/rajacell//Apabila ada kendala dalam pembuatan project ini bisa didiskusikan melalui//Facebook Group Belajar Arduino : https://www.facebook.com/groups/255324164886376#include "I2Cdev.h"#include "MPU6050.h"#include "Wire.h"#include "BMP085.h"#include <Adafruit_SSD1306.h>#include <Button.h>#define BUTTON_PIN 3 #define PULLUP true #define INVERT true #define DEBOUNCE_MS 20#define LONG_PRESS 1000 ButtonmyBtn(BUTTON_PIN,PULLUP,INVERT,DEBOUNCE_MS);#define OLED_RESET 4Adafruit_SSD1306display(OLED_RESET);//MPU6050 Accelerometer MPU6050accelgyro;int16_tax,ay,az;int16_tgx,gy,gz;uint8_tmode;//HMC5883L Digital Compassconstinthmc5883Address=0x1E;constbytehmc5883ModeRegister=0x02;constbytehmcContinuousMode=0x00;constbytehmcDataOutputXMSBAddress=0x03;//The BMP180 Digital BarometerBMP085pressure_m;// Store the current sea level pressure at your location in Pascals.floatseaLevelPressure=101325;intx,y,z;//triple axis data from HMC5883L.voidsetup(){Wire.begin();//Serial.begin(9600); display.begin(SSD1306_SWITCHCAPVCC,0x3C);display.clearDisplay();display.display();display.setTextSize(2);display.setTextColor(WHITE);display.setCursor(0,0);display.println(F("GY-88 Sens"));display.display();// initialize device//Serial.print("Initializing I2C devices...");accelgyro.initialize();// verify connection//Serial.println("Testing device connections...");//Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");accelgyro.setI2CBypassEnabled(true);//This sets the bypass so the HMC5883L gets a look in. display.setTextSize(1);display.setCursor(0,20);display.print(F("MPU6050 Starting"));display.display();delay(250);for(inti=0;i<4;i++){display.print(F("."));display.display();delay(250);}//Initialise the Digital CompassWire.beginTransmission(hmc5883Address);Wire.write(hmc5883ModeRegister);Wire.write(hmcContinuousMode);Wire.endTransmission();display.setCursor(0,32);display.print(F("HMC5883 Starting"));display.display();delay(250);for(inti=0;i<4;i++){display.print(F("."));display.display();delay(250);}//Initialise the BMP180 Barometer (and Temperature Sensor)pressure_m.bmp085Calibration();display.setCursor(0,44);display.print(F("BMP085 Starting"));display.display();delay(250);for(inti=0;i<4;i++){display.print(F("."));display.display();delay(250);}display.setCursor(0,56);display.print(F("-Initialize Success-"));display.display();delay(2000);display.clearDisplay();}//Kunjungi Toko kami di www.tokopedia.com/rajacellvoidloop(){display.setTextSize(1);display.setCursor(0,60);display.print(F("/ / / / / / / / / / / "));display.display();myBtn.read();if(myBtn.wasReleased()){mode++;display.clearDisplay();Serial.print(mode);if(mode==6)mode=0;}if(mode==0){accel();}if(mode==1){gyro();}if(mode==2){compass();}if(mode==3){baro();}if(mode==4){alti();}if(mode==5){temp();}display.setTextSize(1);display.setCursor(0,60);display.print(F(" / / / / / / / / / / /"));display.display();}//Kunjungi Toko kami di www.tokopedia.com/rajacellvoidaccel(){// Display Accelerationaccelgyro.getAcceleration(&ax,&ay,&az);display.setTextColor(WHITE,BLACK);display.setTextSize(2);display.setCursor(5,0);display.print(F("Accelerat"));display.display();display.setTextSize(1);display.setCursor(0,20);display.print(F("Accel X : "));display.print(ax);display.setCursor(0,32);display.print(F("Accel Y : "));display.print(ay);display.setCursor(0,44);display.print(F("Accel Z : "));display.print(az);display.display();}//Kunjungi Toko kami di www.tokopedia.com/rajacellvoidgyro(){// Display Rotationaccelgyro.getRotation(&gx,&gy,&gz);display.setTextColor(WHITE,BLACK);display.setTextSize(2);display.setCursor(10,0);display.print(F("Rotation"));display.display();display.setTextSize(1);display.setCursor(0,20);display.print(F("Gyro X : "));display.print(gx);display.setCursor(0,32);display.print(F("Gyro Y : "));display.print(gy);display.setCursor(0,44);display.print(F("Gyro Z : "));display.print(gz);display.display();}//Kunjungi Toko kami di www.tokopedia.com/rajacellvoidcompass(){//Accessing the HMC5883L Digital Compass Wire.beginTransmission(hmc5883Address);Wire.write(hmcDataOutputXMSBAddress);Wire.endTransmission();Wire.requestFrom(hmc5883Address,6);if(6<=Wire.available()){x=Wire.read()<<8;//X msbx|=Wire.read();//X lsbz=Wire.read()<<8;//Z msbz|=Wire.read();//Z lsby=Wire.read()<<8;//Y msby|=Wire.read();//Y lsb }intangle=atan2(-y,x)/M_PI*180;if(angle<0){angle=angle+360;}display.setTextColor(WHITE,BLACK);display.setTextSize(2);display.setCursor(10,0);display.print(F(" Compass "));display.setCursor(70,30);display.print(angle);display.print(F("'"));display.display();display.setTextSize(1);display.setCursor(0,20);display.print(F("X : "));display.print(x);display.setCursor(0,32);display.print(F("Y : "));display.print(y);display.setCursor(0,44);display.print(F("Z : "));display.print(z);display.display();}//Kunjungi Toko kami di www.tokopedia.com/rajacellvoidbaro(){floatpressure=pressure_m.bmp085GetPressure();display.setTextColor(WHITE,BLACK);display.setTextSize(2);display.setCursor(10,0);display.print(F("Barometer"));display.setCursor(10,30);display.print(pressure,0);display.print(F(" Pa"));display.display();}//Kunjungi Toko kami di www.tokopedia.com/rajacellvoidalti(){floatpressure=pressure_m.bmp085GetPressure();floataltitude=pressure_m.calcAltitude(pressure);display.setTextColor(WHITE,BLACK);display.setTextSize(2);display.setCursor(10,0);display.print(F("Altimeter"));display.setCursor(20,30);display.print(altitude);display.print(F("m"));display.setCursor(17,50);display.setTextSize(1);display.print(F("above sea-Level"));display.display();}//Kunjungi Toko kami di www.tokopedia.com/rajacellvoidtemp(){floattemperature=pressure_m.bmp085GetTemperature();display.setTextColor(WHITE,BLACK);display.setTextSize(2);display.setCursor(5,0);display.print(F("Temperatur"));display.setCursor(20,30);display.print(temperature);display.println(F("'C"));display.display();}//Sketch Coding ini dibuat Oleh Dani Ardianto untuk www.belajarduino.com//Anda bisa menggunakan source code ini secara gratis untuk tujuan Non-Komersial//Semua module yang dibutuhkan untuk Module ini dapat anda peroleh di Toko kami//Melalui portal Tokopedia www.tokopedia.com/rajacell//Apabila ada kendala dalam pembuatan project ini bisa didiskusikan melalui//Facebook Group Belajar Arduino : https://www.facebook.com/groups/255324164886376
Semangat gan posting ilmunya :D .
BalasHapuswah keren nih...
BalasHapusga bosen nongkrong d sini.
selain tutorial nya keren keren di tambah selalu di jemput cewe cantik kalo buka page baru
😁😁😁
😍😍😍