Lembar Kerja

Anda mungkin juga menyukai

Anda di halaman 1dari 12

LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE

www.innako.xyz

LEMBAR KERJA DAN PANDUAN RANCANG BANGUN MODUL SENSOR


PENGUKUR CUACA

Nama Mahasiswa
NIM
Program Studi
Kelas
Nama Dosen
Tanggal

1. Pendahuluan
Lembar kerja ini adalah sebuah laporan dalam pengujian Rancang Bangun Modul Sensor
Pengukur Cuaca. Tujuan dari lembar kerja ini adalah Mahasiswa dapat Memahami cara
kerja Sensor Pengukur cuaca dan mengimplementasikan sebuah notifikasi cuaca secara
real time pada aplikasi pesan instan Telegram.

2. Instruksi
2.1 Persyaratan Alat dan Program
Sebelum Melakukan Rancang Bangun Sistem Pengukur Cuaca berbasis Notifikasi
Telegram. Mahasiswa Harus Memenuhi Persyaratan Alat dan Program untuk memulai
rancang bangun berikut adalah persyaratan yang diberikan:
1) Alat (Hardware)
a. Sensor Anemometer
b. Sensor SHT31-D
c. Arduino Mega/Uno
d. 2 buah resistor 10k Ohm
e. Raspberry Pi 4/ Laptop
f. Kabel USB
g. Breadboard
h. Koneksi Internet
i. Kabel Jumper Female-Male, Male-Male dan Female-Female
j. Male Pin Header
k. Adapter PSU USB Type C atau powerbank output 3A (ampere)
2) Program (Sofrware) dan pustaka
a. Python 3.6 (link download : https://www.python.org/downloads/)
b. Arduino IDE (link download https://www.arduino.cc/en/main/software)
c. Aplikasi Telegram (Desktop,Mobile atau Web Base)
d. Ada Fruit SHT31-D(link
download:https://github.com/adafruit/Adafruit_SHT31)
e. Pyserial (link download : https://pypi.org/project/pyseri/)
f. Telegram bot api (https://github.com/python-telegram-bot/python-
telegram-bot)
LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE
www.innako.xyz

3) Sumber Panduan Instalasi


a. Tutorial Instalasi Arduino IDE bisa di pelajari di
(https://www.circuitbasics.com/arduino-basics-installing-software/)
b. Tutorial Instalasi Python versi 3(https://realpython.com/installing-
python/)
c. Tutorial Instalasi pip(https://pypi.org/project/pip/)
d. Tutorial pembuatan bot Telegram (https://teknologi.or.id/cara-mudah-
membuat-bot-telegram-dengan-botfather/)
2.2 Tutorial Sensor SHT31-D
Pertama, Mahasiswa memasang sensor SHT31-D pada breadboard untuk melakukan
prototyping sensor. Letakan pin header pada breadboard seperti gambar 2.1.

Gambar 2.1 Pin Header


Letakan Sensor SHT31-D Sesuai dengan Posisi Pin header yang telah dipasang untuk
melakukan assembly seperti gambar 2.2, Dibutuhkan Proses Solder untuk membuat
jalur konektifitas Sensor dengan Breadboard melalui pin header Seperti Gambar 2.3.
Hal ini bertujuan agar Sensor SHT31-D dapat terhubung dengan breadboard. Dan
lakukan soldering seperti gambar 2.4

Gambar 2.2 Assembly SHT31-D


LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE
www.innako.xyz

Gambar 2.3 Proses Soldering

Selajutnya mahasiswa melakukan wiring antara arduino dan SHT31-D Seperti


Gambar 2.4 dan mengikuti instruksi berikut ini:
 Hubungkan pin Vin SHT31-D ke pin daya arduino 5V, 3-5V Gunakan
tegangan yang sama dengan logika Arduino. Umumnya daya antara Arduino
dan sensor adalah 5V
 Hubungkan pin GND SHT31-D pada pin GND Arduino.
 Hubungkan Pin SHT31-D SCL dan SDA pada pin a5 dan a4 untuk Arduino
Uno atau pin 21 dan pin 20 untuk arduino Mega

Gambar 2.4 Rangkaian SHT31-D


Instalasi Arduino IDE yang telah di unduh dan install pustaka Adafruit pada
SHT31-D.Lalu, buka File->Examples->Adafruit_SHT31->SHT31test seperti
gambar 2.5 dan upload untuk menjalankan program contoh. Dan hasil dari
sensor akan muncul seperti pada gambar 2.6
LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE
www.innako.xyz

Gambar 2.5 contoh program

Gambar 2.6 Hasil output


2.3 Tutorial Sensor Anemometer
Anemometer Dipasang Secara langsung pada Arduino tanpa melalui media
Breadboard. Untuk menghubungkan pin anemometer dengan Arduino, Mahasiswa
perlu mengikuti mapping pin seperti tabel berikut ini:
LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE
www.innako.xyz

Pin Koneksi Anemometer Pin Arduino mega/uno


Kabel Warna Merah (VCC) 5V
Kabel Warna Hitam(GND) GND
Kabel Warna Putih (Digital) D3

Mahasiswa Melakukan Penulisan Kode Program pada Arduino IDE dengan mengikuti
baris kode pada kotak dibawah ini:
// Pin definitions
# define windPin 2 // Receive the data from sensor

// Constants definitions
const float pi = 3.14159265; // pi number
int period = 10000; // Measurement period (miliseconds)
int delaytime = 10000; // Time between samples (miliseconds)
int radio = 90; // Distance from center windmill to outer cup (mm)
int jml_celah = 18; // jumlah celah sensor

// Variable definitions
unsigned int Sample = 0; // Sample number
unsigned int counter = 0; // B/W counter for sensor
unsigned int RPM = 0; // Revolutions per minute
float speedwind = 0; // Wind speed (m/s)

void setup()
{
// Set the pins
pinMode(2, INPUT);
digitalWrite(2, HIGH);

// sets the serial port to 9600


Serial.begin(9600);

// Splash screen
Serial.println("ANEMOMETER");
Serial.println("**********");
Serial.println("Based on depoinovasi anemometer sensor");
Serial.print("Sampling period: ");
Serial.print(period/1000);
Serial.print(" seconds every ");
Serial.print(delaytime/1000);
Serial.println(" seconds.");
Serial.println("** You could modify those values on code **");
Serial.println();
}

void loop()
LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE
www.innako.xyz

{
Sample++;
Serial.print(Sample);
Serial.print(": Start measurement…");
windvelocity();
Serial.println(" finished.");
Serial.print("Counter: ");
Serial.print(counter);
Serial.print("; RPM: ");
RPMcalc();
Serial.print(RPM);
Serial.print("; Wind speed: ");
WindSpeed();
Serial.print(speedwind);
Serial.print(" [m/s]");
Serial.println();
delay(5000);
}

// Measure wind speed


void windvelocity()
{
speedwind = 0;
counter = 0;
attachInterrupt(0, addcount, CHANGE);
unsigned long millis();
long startTime = millis();
while(millis() < startTime + period) {}

detachInterrupt(1);
}

void RPMcalc()
{
RPM=((counter/jml_celah)*60)/(period/1000); // Calculate revolutions per
minute (RPM)
}

void WindSpeed()
{
speedwind = ((2 * pi * radio * RPM)/60) / 1000; // Calculate wind speed on
m/s
}

void addcount()
{
LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE
www.innako.xyz

counter++;
}

2.4 Tutorial Pemgrograman Python untuk Telegram


Mahasiswa Melakukan menulis program menggunakan bahasa python pada
raspberry/laptop untuk melakukan komunikasi antara Server dengan Arduino. Tuliskan
Baris Kode Dibawah ini dan simpan dengan nama masing-masing dengan format
[nama].py
import serial
import time
import csv
import logging
import sqlite3
from datetime import datetime
from telegram.ext import Updater, CommandHandler, MessageHandler,
Filters

def insert_to_table(wind,temprature,hum,water_temp,rain,date_):
try:
conn = sqlite3.connect('')
cursor = conn.cursor()

sql_params = """INSERT INTO cuaca


(wind,temprature,hum,water_temp,rain,date_) VALUES (?,?,?,?,?,?);"""
data_tuple =
(wind,temprature,hum,water_temp,rain,date_)
cursor.execute(sql_params,data_tuple)
conn.commit()

print("Data Success Insert to Table")


cursor.close()

except sqlite3.Error as error:


print("Failed to insert to table", error)

finally:
if (conn):
conn.close()
print("SQL Connection is closed")
pass
LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE
www.innako.xyz

port = '/dev/ttyUSB0'

now = datetime.now()

# Enable logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s -
%(message)s',

level=logging.INFO)

logger = logging.getLogger(__name__)

ser = serial.Serial(port,baudrate = 9600)

def start(update, context):


"""Send a message when the command /start is issued."""

update.message.reply_text('Hi Aku adalah Innako Pemberi


Info Cuaca disekitar UI dan PNJ ketik /cuaca untuk mendapatkan informasi
cuaca ')

def about(update, context):


"""Send a message when the command /start is issued."""

update.message.reply_text('bot ini dibuat oleh muhammad


akbar untuk tugas skripsi nyaa :D ')

def cuaca(update, context):

port = '/dev/ttyUSB0'
ser = serial.Serial(port,baudrate = 9600)
arduino_data = ser.readline().decode('ascii')
x = arduino_data.split("#")
wind = x[0]
temprature = x[1]
hum = x[2]
suhu_air = x[3]
curah = [4]
LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE
www.innako.xyz

informasi = "Kecepatanan angin saat ini :{0}. Suhu


Udara saat ini :{1} kelembapan {2} suhu air hujan sementara :{3} dan curah
hujan {4}".format(wind,temprature,hum,suhu_air,curah)
update.message.reply_text(informasi)
now = datetime.now()
dt_string = now.strftime("%d-%m-%Y
%H:%M:%S")

insert_to_table(wind,temprature,hum,suhu_air,curah,dt_string)

def main():

updater = Updater("<nomor token API yang telah dibuat di


botfather>", use_context=True)
dp = updater.dispatcher

dp.add_handler(CommandHandler("start", start))
dp.add_handler(CommandHandler("cuaca", cuaca))
dp.add_handler(CommandHandler("about", about))

updater.start_polling()

# Run the bot until you press Ctrl-C or the process receives
SIGINT,
# SIGTERM or SIGABRT. This should be used most of the
time, since
# start_polling() is non-blocking and will stop the bot
gracefully.
updater.idle()

if __name__ == '__main__':
main()
LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE
www.innako.xyz

3. Pengujian
Pada Tahap ini mahasiswa melakukan observasi hasil dari pembuatan rancang bangun ini
untuk dianalisa data yang ada dan membuat sebuah kesimpulan

3.1 Pengujian Sensor SHT31-D


no Suhu Kelembapan Tanggal Waktu Tempat

3.2 Pengujian Sensor Anemometer


no Kecepatan RPM Waktu Tanggal Tempat
Udara Interval

3.3 Pengujian Bot Telegram


no Input keyword Delay waktu antara Hasil
yang dimasukan pengiriman dan (gagal/Sukses)
penerimaan pesan
LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE
www.innako.xyz

4. Kesimpulan
Tuliskan dengan tangan Kesimpulan dari hasil analisa anda pada kotak dibawah ini:
LEMBAR KERJA DAN PANDUAN RANCANG BANGU INI DAPAT DI DOWNLOAD DI WEBSITE
www.innako.xyz

Anda mungkin juga menyukai