Lembar Kerja
Lembar Kerja
Lembar Kerja
www.innako.xyz
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
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);
// 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);
}
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++;
}
def insert_to_table(wind,temprature,hum,water_temp,rain,date_):
try:
conn = sqlite3.connect('')
cursor = conn.cursor()
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__)
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
insert_to_table(wind,temprature,hum,suhu_air,curah,dt_string)
def main():
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
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