IC timer 555 adalah sirkuit terpadu (chip) yang digunakan dalam berbagai pembangkit timer, pulsa dan aplikasi osilator. Komponen ini digunakan secara luas, berkat kemudahan dalam penggunaan, harga rendah dan stabilitas yang baik
Kami bantu anda untuk memahami lebih jelas mengenai migrasi tv digital, apa sebabnya dan bagaimana efek terhadap kehidupan. Jasa teknisi juga tersedia dan siap membantu instalasi - setting perangkat - pengaturan antena dan distribusi televisi digital ke kamar kos / hotel
Project Sederhana dengan Dot Matrix dan Attiny2313. Bisa menjadi hadiah buat teman atau pacarmu yang ulang tahun dengan tulisan dan animasi yang dapat dibuat sendiri.
Jika anda pencinta IC TTL datau CMOS maka project jam digital ini akan menunjukkan bahwa tidak ada salahnya balik kembali ke dasar elektronika digital , sebab semuanya BISA dibuat dengan teknologi jadul
Antares merupakan sebuah entitas IOT yang dikembangkan oleh PT TELKOM INDONESIA untuk menjawab tantangan teknologi terbaru jaman now. Penulis yang pernah 10 tahun berhubungan dengan perusahaan BUMN ini sangat memahami bahwa telkom merupakan pelopor banyak teknologi mutahir di negeri ini. Jadi setiap ada tren baru diluar sana maka telkom dan groupnya dengan RnD yang kelas wahid akan segera mempelajari dan selanjutnya mendeploy layanannya. Dari laman web antares.id, perkenalan dari antares seperti yg saya baca :
ANTARES merupakan sebuah Horizontal IoT Platform, yang berarti kami mencoba untuk menjadikan layanan kami se-umum mungkin agar solusi vertikal IoT anda dapat menyesuaikan dengan arsitektur yang umumnya digunakan. Banyak kasus-kasus IoT yang dapat dipecahkan dengan menggunakan layanan kami, contohnya adalah smart home, smart metering, asset tracking, smart building, dan lain-lain.
Kebutuhan akan platform IOT dalam negeri memang sangat saya dukung agar kita tidak hanya menjadi pengguna tapi juga bisa menjadi penyedianya. Lawan berat dari luar sana seperti AWS, Google IOT, ThingSpeak dll. dan memang akan membuat ciut nyali dengan nama besar itu apalagi melihat prospek meng "uang" kan belum secepat jualan fiber optik ke pelanggan indihome.
Perkenalan penulis dengan antares terjadi sekitar tahun 2019, saat penulis kembali menekuni dunia 8 bit. Dari saran beberapa teman menujulah ke platform iot lokal ini dan terkejutnya karena terlalu banyak sisi IT nya dan menyoldernya hampir sedikit sekali, dan otak serta otot solderan saya berontak ketika melihat perintah pengiriman data melalui REST API seperti dibawah ini:
Bingung dan terkesan sulit dan saya beralih ke MQTT berbasis Mosquitto yang sangat mudah bagi tukang solder ini. Saya tinggalkan menggunakan antares sampai ada request dari seorang pembaca blog dan kebetulan saya sudah sedikit paham mengenai mqtt dengan esp8266. Apalagi pada sketch arduino, library ANTARES sudah terpampang dengan gagahnya di library manager.
Kita akan mencoba mencontoh example pada libraries ini dengan sedikit modifikasi mengirimkan counter penekanan tombol, scriptnya sederhana saja , saya gunakan wemos d1 r1:
Seperti kembali ketahun lalu dan saya kembali membaca manual pada website antares dan de-ja-vu dengan bahasa Inggris yg di paksakan menjadi Bahasa Indonesia. Jadi maaf sepertinya developer antares hanya berusaha menterjemahkan manual ke bahasa Indonesia tapi bukan berusaha menjelaskan secara teknisnya. Ayo kita perhatikan debug diatas, saya menemukan bahwa yg belum konek WIFI NYA ! ESP saya rusak? Oooo tidak ketika saya mencoba script mqtt lain lancar saja, berarti ada salah di library antaresesp8266mqtt, dan saya coba buka script library AntaresESP8266MQTT.cpp
bool AntaresESP8266MQTT::wifiConnection(String SSID, String wifiPassword) {
char ssidChar[sizeof(SSID)];
char wifiPasswordChar[sizeof(wifiPassword)];
SSID.toCharArray(ssidChar, sizeof(SSID));
wifiPassword.toCharArray(wifiPasswordChar, sizeof(wifiPassword) );
int count = 0;
_wifiSSID = ssidChar;
_wifiPass = wifiPasswordChar;
WiFi.begin(_wifiSSID, _wifiPass);
printDebug("[ANTARES] Trying to connect to " + SSID + "...\n"); //saya tambahkan debug wifi name dan password disini
printDebug("ssid dan password setelah di char array: ");
printDebug(String(_wifiSSID) +" : " + String(_wifiPass));
for (count=0;count<20;count++)
{
delay(500);
printDebug(".");
}
if(WiFi.status() != WL_CONNECTED) {
printDebug("[ANTARES] Could not connect to " + SSID + ".\n");
return false;
}
else {
WiFi.setAutoReconnect(true);
printDebug("\n[ANTARES] WiFi Connected!\n");
printDebug("[ANTARES] IP Address: " + ipToString(WiFi.localIP()) + "\n");
return true;
}
}
Dan benar saja librarynya hanya merupakan penyesuaian dari library yang sudah banyak beredar yaitu pub sub client milik knoleary, tapi tidak mengapa namanya juga library OPEN SOURCE sah sah aja bikin, tapi dari hasil penambahan debug saya dapatkan kenyataan wifi saya tidak konek sesuai gambar berikut:
Ternyata ohh ternyata..terjadi lagi permasalahan classic pada C++ yaitu passing string ke function, dimana banyak yg mengeluh sampe ada yg pindah coding ke micropython. Password saya terpotong hampir 4 char array...jadi solusinya gampang saja..kita tambahkan panjang arraynya + 5.
Dan console Antares saya di website antares.id pun pertama kalinya merasakan data masuk...wkwkwkwkw
Yeahhhh...berhasil ...dan yg bikin saya geleng-geleng ada output pada layar sub MQTT.FX yang biasa saya gunakan untuk mencoba pub sub, awalnya saya sebelum menggunakan esp8266 saya gunakan mqtt.fx, lalu frustasi gak ada data masuk. Ehhhh nongol dia...
Ternyata memang data yg dikirim masih berupa JSON REST API ..ckkcckkkckkk , jadi cicak deh saya
Baiklah..demikian penelusuran BUG PADA ANTARES MQTT , semoga pihak antares bisa memperbaiki librarynya..
PS: BUG yang lebih gatel ternyata muncul juga..silahkan baca lanjutannya di :
Q : Ada apa gerangan kok banyak yg rame membicarakan satelit telkom 4 bosku ?
A : Biasa aja masbro .. namanya juga barang elektronik yg gak bisa diservis karena letaknya di 36.000 km diatas katulistiwa. Sekali rusak ya direlakan aja ...
Q: Bahan bakar ? Bukannya pake listrik dari panel surya ?
A: Benar ! listrik di suply pake panel surya + baterai, akan tetapi tetap dibutuhkan bahan bakar roket pendorong / thruster untuk proses station keeping yaitu menstabilkan posisi satelit agar tetap di 108 derajat Bujur Timur.
Q: Saya kira setelah masuk orbit maka satelit akan tetap pada posisinya. Gimana itu penjelasannya?
A: Orbit GEO artinya kecepatan gerak satelit relatif terhadap bumi sama dengan kecepatan rotasi bumi. Jadi kita gak perlu putar parabola terus menerus seperti orbit LEO atau Eliptical. Akibat dari pengaruh gravitasi bulan dan ternyata bumi tidak sepenuhnya BULAT maka diperlukan pendorong roket agar lokasi satelit terkoreksi.
Q: Oalahhh..kalau semisal nih PALAPA D benar-benar roket station keepingnya habis, apa yg terjadi bos?
A: Yang terjadi adalah inclined orbit , artinya posisi satelit dilihat dari bumi membentuk angka 8
Q: Gambar angka 8 itu apa sih bosku ?
A: Itu merupakan pergerakan satelit pada umumnya dilihat dalam jangka waktu sehari (dari sudut pandang titik bumi yg tetap). Jika angka 8 nya masih pada box yg ditetapkan sesuai toleransi maka para pemirsa pengguna parabola dirumah tidak akan mengalami kendala penerimaan. Ketika bahan bakar roket habis maka angka 8 nya melebihi toleransi sehingga mengganggu transmisi ke pemirsa. Butuh treking secara periodik jika ingin mendapatkan hasil yg bagus seperti yg bos alami tahun 90an pada satelit sinosat (cari siaran CCTV biasanya di rumah cukong), parabolanya udah segede rumah dan butuh 2 aktuator yg menggerakkan parabola timur barat dan utara selatan.
Q: Kok 2020 kalkulatornya salah ya bos ? Kan seharusnya dari wikipedia Palapa D diluncurkan tahun 2009 ? 11 tahun saja?
A: Begini, tahun 2009 itu terjadi kesalahan pada 3rd stage roketnya longmarch cina. Jadi satelitnya masih terlalu rendah ke orbit GEO. Untunglah yg buat satelit dapat melakukan improvisasi dengan mendorong kembali pelan-pelan ke orbit GEO menggunakan bahan bakar station keeping tadi. Nah menurut perhitungan bahan bakar yg digunakan mengurangi sisa bahan bakar 5 tahun.
Q: Gimana gimana? Jadi nyungsep gak bos ? kan habis bahan bakarnya?
A: Dibilangin kok ngeyel ! masih AMAN !...banyak satelit yg bahan bakarnya habis masih bisa digunakan kok...Tapi ya beresiko loss orbit kayak TELKOM 1 dulu. kalau beruntung kayak palapa B2P dijual ke filipina, palapa C2 ke PSN , dan masih bisa dipake sampe elektronikanya melemah.
Q: Oooo begitu ..yang punya palapa gak pasang satelit baru ?
A: Udah ada penggantinya Palapa Nusantara , diluncurkan april 2020 tapi gagal roketnya ..nunggu asuransi nya kelar buat penggantinya. Jadi inilah yang menyebabkan banyak penyedia TV satelit migrasi ke satelit TELKOM 4 ( 108E )
Q: Bosku mbingungi..katanya Palapa D masih bisa dipake ? Tapi pada migrasi telkom4, Mumet saya ?
A: Masih inget kasusnya Telkom 1 yg dipaksakan kerja diluar lifetime 15 tahun, Loss Contact pada 25 agustus 2017 sekitar jam 5 sore ? Karena itulah para pebisnis TV yg punya kontrak sewa transponder dengan Indosat / Palapa D gak mau memperpanjang sewa. Yang mau perpanjang pasti dikasi harga murah tapi resiko tanggung sendiri !
A: Para pengguna layanan PAY TV Kvision - Matrix Garuda/Sinema/Mola - Nex Parabola umumnya memakai 1 LNB ke palapa aja. Jadi ada peluang jasa menggeser parabola ke barat dikit.
A: Ya gak perlu geser, tinggal scan ulang pada receiver nya aja. Atau mau cari tambahan sekiranya palapa benar-benar siarannya habis bisa gunakan LNB ex palapa menuju ke chinasat6B(geser menjauh) atau chinasat 10(geser sampe mepet telkom4)
Kegemaran saya mengoprek jam kalender dan TV dimulai sejak membaca tulisan mengenai steve wozniak dan steve jobs tentang bagaimana mereka bekerjasama membuat hardware video game "breakout" di Atari, hingga akhirnya menciptakan komputer apple yang legendaris itu. Dulu saat penulis kuliah sempat mendapat praktikum interfacing monitor VGA tapi hanya selintas aja dan menyesal juga kenapa gak sedari dulu bisa mengerti walau nilai praktikum dapat A (nyontek teman yg pinter sihhh). Dari dua latar belakang tersebut dan ketika microcontroller semakin murah dan mudah didapatkan menjadi tantangan tersendiri bermain micro di TV dan terlihat seperti main-main dan menghabiskan waktu, memang itu benar tapi asyik lhoo! Tapi jangan berkecil hati karena penulis juga dapat banyak ilmu terutama mengenai pemrograman script yang lebih efisien. Salah satunya adalah ketika tantangan komunikasi arduino ke ESP agar tidak mengganggu timer Atmega328 untuk scanning TV. Jika menggunakan Serial baik Hardware atau emulasi software tetap aja akan menimbulkan interfrensi timer. Untuk itu digunakan komunikasi dengan timer yg independen yaitu I2C. Dari hasil googling didapat bahwa ESP8266 bisa juga dimanfaatkan sebagai I2C master dan Arduino sebagai Slave nya.
Komunikasi I2C sudah tersedia librarinya dalam instalasi default sketch, yaitu dengan library " wire.h ". Untuk arduino uno / mini / micro yg berbasis ATmega328 pin SDA = A4 pin SCL =A5 . Dengan menggunakan I2C maka master dapat mengirim data atau meminta data ke slave. Tiap komponen yg diakses memiliki address masing-masing. Untuk ESP8266-01 memiliki 2 output GPIO yang bukan berfungsi sebagai I2C secara spesifik, sehingga perlu dilakukan inisialisasi port sendiri mana yg berfungsi sebagai SDA atau SCL.
Menyambung tulisan mengenai jam di TV dan esp8266 , maka sebelum melanjutkan ke bahasan dibawah ada baiknya paca dulu PART1 dan PART2.
- Praktek Testing I2C
Kita akan mencoba menghubungkan ESP sebagai master, terhubung secara I2C ke Arduino sebagai Slave dan tujuannya adalah mengirimkan data kalender secara periodik. Slave kemudian akan menuliskan hasil data yg diperoleh ke Serial port.
Script Master ( ESP8266-01)
#include <ESP8266WiFi.h> #include <WiFiUdp.h> #include "TimeLib.h" //library I2c #include <Wire.h> //library NTP , unduh jika blom ada #include <NTPClient.h> const char *ssid = "Nama Wifi"; const char *password = "Password"; //Offset WIB +7 , sesuaikan const long utcOffsetInSeconds = 25200; long previousMillis = 0; long interval = 10000; //tiap 10 detik //Array kalender char tanggalan[] ="20,1,1,23,59,0" ; // NTP lokal, ubah jika perlu WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "ntp.bmkg.go.id", utcOffsetInSeconds); void setup(){ Serial.begin(9600); //monitor Wire.begin(0, 2); /* Koneksi i2c SDA=0 and SCL=2 pada ESP-01 */
#include <Wire.h> void setup() { Serial.begin(9600); Wire.begin(8); //rutin event receive i2c Wire.onReceive(espWifiReceiveEvent); } void loop() { delay(1); } //Kirim ke serial saat ada data i2c masuk void espWifiReceiveEvent(int count) { Serial.print("Received["); while (Wire.available()) { char c = Wire.read(); Serial.print(c); } Serial.println("]");
}
Nah jika dilihat output pada serial monitor / putty disisi arduino/slave seperti berikut:
- SCRIPT JAM LENGKAP
Terdapat beberapa hal yg menjadi perhatian saat data diterima arduino pada port I2C, dimana timer tetap akan kacau kalau data i2c nya panjang. I2C akan hang itulah yg terjadi saat 17 byte char diterima , jadi diakali dengan melakukan penonaktifan I2C setelah data kalender lengkap. Peng-update-an tanggalan dilakukan setiap jam atau sesuai keinginan misalnya tiap jam 3 pagi jika TV mau nyala terus dan gak dipake emak nonton sinetron..hehehehe...ayuk kita kupas satu persatu.
angle=(angle/57.29577951) ; //Convert degrees to radians
x3=(tvx+(sin(angle)*(tvradius-6)));
y3=(tvy-(cos(angle)*(tvradius-6)));
TV.draw_line(tvx,tvy,x3,y3,WHITE);
angle = minute * 6 ;
angle=(angle/57.29577951) ; //Convert degrees to radians
x3=(tvx+(sin(angle)*(tvradius-11)));
y3=(tvy-(cos(angle)*(tvradius-11)));
TV.draw_line(tvx,tvy,x3,y3,WHITE);
angle = hour * 30 + int((minute / 12) * 6 ) ;
angle=(angle/57.29577951) ; //Convert degrees to radians
x3=(tvx+(sin(angle)*(tvradius-15)));
y3=(tvy-(cos(angle)*(tvradius-15)));
TV.draw_line(tvx,tvy,x3,y3,WHITE);
}
void setup() {
//TV di mode NTSC
TV.begin(_NTSC,150,71);
TV.select_font(font6x8);
TV.clear_screen();
tvx= TV.hres()/2;
tvy=TV.vres()/2;
tvradius=TV.vres()/2 ;
//clock face lingkaran
TV.draw_circle(tvx,tvy,tvradius,WHITE);
//hour ticks
for( int z=0; z < 360;z= z + 30 ){
//Begin at 0° and stop at 360°
float angle = z ;
angle=(angle/57.29577951) ; //Convert degrees to radians
x2=(tvx+(sin(angle)*tvradius));
y2=(tvy-(cos(angle)*tvradius));
x3=(tvx+(sin(angle)*(tvradius-5)));
y3=(tvy-(cos(angle)*(tvradius-5)));
TV.draw_line(x2,y2,x3,y3,WHITE);
}
TV.set_cursor(10,30);
TV.print("NTP");
TV.set_cursor(0,55);
TV.print("aisi555");
TV.set_cursor(3,63);
TV.print(".com");
//buka serial kalau mau debug
//Serial.begin(9600);
Wire.begin(8); // I2C
Wire.onReceive(espWifiReceiveEvent);
}
void loop() {
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
TV.delay(980); // Sesuaikan antara 950-1000
printTime();
}
}
void espWifiReceiveEvent(int count)
{
//buka blok serial kalau mau debug
//Serial.print("Received[");
//jika i2c terima data dan blum komplit kalendernya
while (Wire.available() && ntpkomplit == false)
{
char c = Wire.read();
//Serial.print(c);
buff[buffindex]=c;
buffindex++;
}
//Serial.println("]");
//Ntpkomplit = true Jika buffer kalender sampe menit terpenuhi
if(buffindex >=14) {
ntpkomplit = true;
TWCR = 0; //bunuh i2c
}
buffindex = 0;
}
HASIL :
Proses update yg saya gunakan adalah tiap JAM atau menit ke 0, jadi memang tidak akan langsung terupdate akibat proses BITBANG tabrak menabrak antar timer vs i2c. Jadi seperti video berikut ini dapat dilihat UPDATE ke waktu NTP terjadi hampir 2 menit kemudian.
Bagaimana ? Sudah Mumet ? Sebaiknya baca dari awal ya PART1 dan PART2 dan juga bagian sebelumnya mengenai TV menggunakan microcontroller yang sudah saya tulis sejak 2012.