Jumat, 12 Agustus 2022
Analog Switch Off 2 November 2022 - jadi gak ya ?
Sabtu, 23 Juli 2022
[DIY] Cara Membuat Power Inserter Untuk Antena Digital Booster Internal Jika Dipasang Pada TV Tanpa Daya Antena (bukan STB)
Kebutuhan untuk menonton TV digital yang jernih semakin nyata diperlukan oleh semua orang yang masih menonton tv di jaman serba online sekarang ini. Terutama oleh mereka yang memiliki kendala penerimaan TV karena lokasi yang lumayan jauh dengan pemancar televisi DVB T2 atau dikarenakan alasan terkendala lokasi rumah yang terjepit oleh bangunan diantara tembok perkotaan yang tinggi. Ini juga saya alami ketika ingin memasang antena UHF di apartemen dimana tidak memungkinkan memasang antena UHF diluar sehingga antena Indoor memerlukan BOOSTER penguat untuk mendapatkan kekuatan penerimaan yang cukup.
Salah satu antena pilihan saya yang merupakan antena dual mode indoor maupun outdoor adalah Venus Cabe Rawit yang sudah saya pernah bahas disini. Dengan alasan bentuk yang mungil serta dilengkapi booster internal, maka dengan memanfaatkan power internal / daya antena pada menu di STB, cukup colok saja ke antena input STB dan anda sudah mendapatkan sinyal TV yang jernih sesuai penerimaan yang diinginkan. Namun ada kendala ketika pada TV digital umumnya tidak memiliki fasilitas daya antena seperti pada STB.
Solusinya adalah kita dapat membeli power inserter yang ada dipasaran, namun jika kesusahan mendapatkannya maka kita dapat membuat sendiri dengan hanya beberapa komponen sederhana. Rangkaiannya seperti berikut :
Rangkaian diatas bisa dimasukkan ke dalam kotak sederhana atau splitter / diseqc bekas sehingga F connectornya bisa dimanfaatkan. Kreasi saya adalah seperti berikut dengan menyolder langsung pada kabel coaxial / kabel antena.
Untuk power suply 5 volt dapat mengambil dari USB port yang umum ada pada pesawat penerima TV jaman now. Kabel nya bisa diambilkan dari kabel charger bekas dan dipastikan antara + dan - nya tidak terjadi short sehingga harus di isolasi dengan bagus.
Jika menggunakan solder untuk menyambung kabel coaxial, maka akan terkendala pada kabel murahan dimana kabel serabut umumnya bukan tembaga. Timah gak bakalan mau nempel lhoo..jadi pastikan hubungan dengan ground dari F connector terjadi dengan bantuan isolasi.
Dan selanjutnya alat power inserter ini dapat dicoba terlebih dahulu dengan mengetes tegangan 5 volt apakah sudah muncul ke arah antena dan tidak ada tegangan yang balik ke input antena TV.
Selamat Mencoba...
Kamis, 14 Juli 2022
Cara buat 2 TV 1 antena Digital - Cari pantulan saja DVB-T2 sinyal joss
Kali ini saya mau berbagi pengalaman dari pekerjaan TV digital yang baru saja selesai saya kerjakan. Ada 2 TV dirumah ini dan masing-masing butuh STB. Kondisi yang saya temukan dilapangan sebagai berikut :
- Terdapat antena PF 3000 yang legendaris namun sayang drivennya sudah karatan dan kabel sudah pecah dan retak-retak termakan cuaca
- Lokasi rumah terhimpit tembok tetangga dan BTS yang menyebabkan kesulitan mencari arah yang sesuai dengan peta di bawah ini.
Permasalahan pertama dapat saya atasi dengan memanfaatkan driven yang saya beli dari industri antena tv di banyumas, sekalian nih ceritanya saya mau mencoba kualitasnya. Karena terdapat dua buah TV yang akan saya ubah menjadi digital, maka saya melakukan modifikasi dengan menempatkan dua buah driven loop dipole seperti pada gambar.
Pertimbangan saya kenapa tetap mempertahankan antena PF3000, dikarenakan antena legendaris ini aluminium dan plastiknya sangat kuat walau terkena hujan panas bertahun-tahun.
Lalu bagaimana dengan tembok serta BTS yang menjulang tinggi menghalangi Line Of Sight ke arah pusat pemancar TV di Surabaya barat? Setelah melihat disekitar terdapat kubah dan menara masjid yg cukup tinggi untuk menjadi " pemantul " sinyal digital. Kenapa begitu ? karena teknologi DVB-T2 memiliki kemampuan untuk mencari sinyal terbaik walau dari pantulan sekalipun. jadi jangan berkecil hati kalau lokasi kamu terjepit seperti gambar dibawah ini.
Bagaimana dengan hasil di STB? Saya ambilkan contoh siaran digital terjelek di Surabaya dan hasilnya LUAR BIASA !
Bagaimana ? Berani mencoba ? Saya tunggu sharing hasilnya kawan....
Senin, 11 Juli 2022
Magang Industri "Kembali" Menghiasi Aisi555 Setelah Pandemi - Teknik Listrik D4 Unesa Surabaya
Semangat berbagi ilmu dari aisi555 baik melalui tulisan maupun praktek langsung dilapangan, sempat mengalami episode "down" setelah terpukul pandemi corona di tahun 2020 dan 2021. Padahal di tahun 2020 mendapat kepercayaan kembali untuk menerima magang anak - anak SMK 1 dan SMK 2 dari kota Kediri, serta yang menggembirakan adalah ditandatanganinya kerjasama magang industri dengan fakultas vokasi ITS, setelah pada 2019 berhasil menerima trial magang anak ITS - D4 kontrol selama 6 bulan. Dan ini semuanya buyar akibat pandemi yang mengurung semua kegiatan pendidikan di rumah saja. Ya saya sadar itu diluar kendali saya dan saya tetap berusaha berbagi ilmu melalui jalur online, baik di blog ini dan saya mulai membuat tutorial via video youtube dan facebook.
Kegiatan diatas merupakan puncak dari rencana besar aisi555 untuk berkecimpung di dunia pendidikan bertema elektronika dan IOT, dimana aisi555 menjadi tersadar bagaimana terbukanya pikiran bahwa dunia pendidikan memiliki pangsa pasar yang tidak akan habis. Namun seperti merupakan salah satu "takdir" penulis, ketika tawaran kerjasama banyak datang, namun 2 minggu setelah pameran diatas, dunia pendidikan dipaksa melakukan "lockdown" karena merebaknya kasus covid yg menyebar di sekolah. Dan setelah lama menunggu akhirnya aisi555 kembali mendapatkan kepercayaan mengisi kuliah tamu dalam bungkus "kampus merdeka" pada 2021.
Aisi555 yang bernaung dibawah bendera PT. Indotech Infrastruktur Solusi kemudian menjalin kerjasama magang Industri untuk mahasiswa yang kini dibebaskan memilih jenis industri apa yang akan di ambil, yang kemudian kesempatan ini diambil oleh anak-anak jurusan D4 Teknik Listrik - Prodi Vokasi - Unesa Surabaya angkatan 2019. Magang industri ini telah diadakan pada februari - juni 2022 dengan tema yang diambil bergaris besar pada Baterai dan monitoringnya secara IOT.
Pola magang kali ini diadakan secara Online dan Offline dimana ada meeting pengarahan teori setiap minggunya yang dilaksanakan melalui media meeting video online. Kemudian di tiap bulanannya diadakan pertemuan tatap muka untuk melakukan evaluasi dan menyusun project yang tepat sebagai tugas akhir dan laporan magang sesuai tema yang diberikan oleh pihak kampus. Berikut ini beberapa garis besar atau tema yang diberikan tiap bulannya :
- Bulan 1 : Pengenalan organisasi perusahaan dan peraturan perusahaan
- Bulan 2 : Teknologi baterai sell basah / aki, charging dan discharging serta perawatannya
- Bulan 3 : Baterai Lithium ion dan Mikrokontroller
- Bulan 4 : Komunikasi data sensor dan IOT
- Bulan 5 : Digital Marketing
- Bulan 6 : Proyek akhir yang berhubungan dengan Baterai & IOT
Dan pada akhir dari periode magang kali ini telah dilaksanakan presentasi project akhir dari masing-masing peserta sebagai berikut :
Project 1 : Charger Accu Auto Cut Off berbasis timer 555
Project 2 : Desulfator Aki Basah berbasis timer 555
Project 3 : BMS dan PowerBank Baterai Li-Ion 18650
Project 4 : Monitoring Kesehatan Accu Berbasis Arduino
Project 5 : Monitoring Kesehatan Aki Secara IOT dengan Protokol MQTT
Berminat untuk magang bersama aisi555 ? Kontak kami ada di sebelah kanan layar ....Saya tunggu ....
Kamis, 02 Juni 2022
LoRaWan - Antares - Kini tidak GRATIS lagi ! Trik buat yang ingin belajar
Terkejutnya saya saat membaca email yang datang dari antares di akhir mei 2022, yang menyatakan platform IOT antares akan meng "upgrade" layanannya ke versi premium berbayar. Padahal bulan mei yang lalu saya sedang getol-getolnya meng "oprek" gateway LoRaWan milik telkom yang jangkauannya nyampe jauh ke berbagai pelosok kota Surabaya. Dan benar saja ketika saya membuat video dibawah ini pada tanggal 1 juni 2022 siang hari, tiba-tiba saja console web antares saya ter-logout sendiri ditengah-tengah rekaman. Panik lah saya dan videonya jadi sedikit terbata-bata di akhir rekaman dan terpaksa saya edit karena isinya banyak misuh-misuh "JA#%%##^@" ...
Breaking news: Telkom akan melakukan migrasi LoRaWan ke Telkomiot.id, Silahkan baca disini
Hal yang serupa terjadi dengan keponakan teman yang sedang skripsi bertopik LoRa di Telkom University Bandung, katanya harga platformya Antares sih terjangkau namun untuk Conectivity nya yang menggunakan LoRa sangatlah mencengangkan, karena walau harga 1 koneksi ke device di antares cuman 56.200 per tahun, namun seharinya dibatasi 10 kali UPLINK saja. Ala mak jang !!!
Awalnya saya bingung juga masalah harga yang keluar di hari libur kelahiran pancasila 1 juni itu, namun setelah dilihat lebih seksama ada 2 jenis pembayaran prepaid yang harus dipahami :
Device yang dimaksud adalah device pada web consolenya antares, dimana selama sebulan dengan merogoh kocek Rp 53.250, kita bebas menggunakan 25 device IOT dengan jalur komunikasi melalui Internet. Jadi para pengguna IOT via wifi dengan modul ESP8266 atau arduino dengan modul GSM SIM800 dapat mengirimkan dan menerima data secara unlimited. Murah dan terjangkau kalau ini menurut saya. Namun kejanggalan terlihat pada Conectivity LoRa yang ditawarkan oleh Antares dengan LoRaWan gatewaynya yang tersedia di hampir semua STO Telkom ( kota besar ) se-NKRI ...
10 UPLINK / hari ???
Langsung saja saya kontak mahasiswa yang sedang bimbingan skripsi ke saya mengenai topik LoRa, awalnya tidak paham..namun...ujungnya lemas tak berdaya, walau saya jelaskan kalau trialnya masih 3 bulan kok untuk pengguna lama maupun baru. Cuman 10 uplink perhari nya ini menyebabkan skripsinya jadi terancam ! Walau dengan trik membuat akun baru yang banyak, namun ini akan merepotkan. Lalu bagaimana solusi buat yang sering melakukan coding Trial- Error ? Begini beberapa kesimpulan yang saya dapat ambil hikmahnya dari kegaduhan ini:
1. Perbaiki kebiasaan coding dengan cek-ricek script dan baru upload ke Arduino setelah yakin benar
Ini sih menertawakan style coding saya, dimana kebiasaan trial-error, copy paste, upload , ulang lagi dst berkali-kali. Ini akan fatal kalau quota LoRaWan saya habis dengan prematur. Jadi buat anda yg memulai belajar, perhatikan style coding anda.
2. Bagi yg ber "uang", lakukan prototyping dengan LoRaWan Gateway sendiri
Kalau model yang satu ini sebaiknya dilakukan secara Gotong Royong atau minta bantuan sponsor dari kampus untuk membelikan Gateway LoRaWan dan dipakai belajar bersama-sama. Jadi ketika sudah sukses dengan LoRaWan di Lab sendiri, baru deh meng-upload versi LoRaWan-Antares.
3. Gunakan UPLINK dengan menunggu perintah input dari serial/tombol, jangan lakukan TX-timer based
Karena memang investasi BTS LoRaWan itu mahal, maka sudah saatnya Telkom memberikan "meteran berbayar" bagi pengguna gatewaynya. Seperti yang kita ketahui LoRaWan adalah protokol yang sharing resource, sehingga node LoRa diharapkan Transmit TX / Uplink nya jarang-jarang apalagi RX / Downlink / penerimaan data pada nodes nya. Sehingga buat yang baru tahap belajar, haram hukumnya untuk mengirimkan TX Uplink secara timer based. Solusinya yang saya sarankan adalah dengan mengirimkan data dengan menunggu perintah yang dikirimkan melalui Serial Monitor di sketch. Perhatikan contoh komunikasi serial berikut :
String a;
void setup() {
// Inisialisasi serial
Serial.begin(9600);
Serial.println("tessss");
}
void loop() {
// cek ada data masuk dari serial monitor
while(Serial.available())
{
a= Serial.readString();
Serial.println(a);
if (a == "aho ganteng")
Serial.println("aho memang ganteng kok !!");
}
}
Maksud dari script diatas adalah membandingkan inputan serial berupa kalimat " aho ganteng " dan kemudian jika benar maka akan dikirimkan jawaban " aho memang ganteng kok !! " . Jangan lupa di gambar diatas ada petunjuk nomer 1 dimana pilih no line ending agar tidak mengirmkan enter atau baris baru pada serial ke arduinonya.
Lalu bagaimana dengan script untuk mengirim data suhu dan kelembaban DHT11 ke antares seperti contoh sebelumnya (dapat dibaca disini ) ? Begini scriptnya kira-kira.
#include <SPI.h>
#include <LoRa.h>
#include "DHT.h"
#include <LoRaWanPacket.h>
//Sesuaikan PIN CS, Reset, DIO0
const int csPin = 10;
const int resetPin = 9;
const int irqPin = 2;
const int dhtPin = 3; //Sesuaikan pin DHT
String input; // variabel menyimpan input
//Sesuaikan dev address dan key device LoRa
const char *devAddr = "xxxxxxx";
const char *nwkSKey = "11111111111111110000000000000000";
const char *appSKey = "00000000000000002222222222222222";
#define DHTTYPE DHT22 //Sensor DHT22 sesuaikan
DHT dht(dhtPin, DHTTYPE);
struct LoRa_config
{
long Frequency;
int SpreadingFactor;
long SignalBandwidth;
int CodingRate4;
bool enableCrc;
bool invertIQ;
int SyncWord;
int PreambleLength;
};
//Frekuensi Telkom LoRawan 922MHZ, sesuaikan dengan BTS GW terdekat
static LoRa_config txLoRa = {922000000, 10, 125000, 5, true, false, 0x34, 8};
void LoRa_setConfig(struct LoRa_config config)
{
LoRa.setFrequency(config.Frequency);
LoRa.setSpreadingFactor(config.SpreadingFactor);
LoRa.setSignalBandwidth(config.SignalBandwidth);
LoRa.setCodingRate4(config.CodingRate4);
if (config.enableCrc)
LoRa.enableCrc();
else
LoRa.disableCrc();
if (config.invertIQ)
LoRa.enableInvertIQ();
else
LoRa.disableInvertIQ();
LoRa.setSyncWord(config.SyncWord);
LoRa.setPreambleLength(config.PreambleLength);
}
void LoRa_TxMode()
{
LoRa_setConfig(txLoRa);
LoRa.idle();
}
void setup()
{
Serial.begin(9600);
while (!Serial);
LoRaWanPacket.personalize(devAddr, nwkSKey, appSKey);
LoRa.setPins(csPin, resetPin, irqPin);
if (!LoRa.begin(txLoRa.Frequency)) {
Serial.println("LoRa init failed. Check your connections.");
while (true);
}
Serial.println("LoRa init succeeded.");
Serial.println();
dht.begin();
}
String SendTempHumid(){ //kirim data pengukuran DHT
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" °C ");
//yang dikirim data berupa string JSON
return( "{\"suhu\":" + String(t) + ",\"humi\":" + String(h) +"}");
}
void loop() {
while(Serial.available()) // jika ada serial input masuk
{
input = Serial.readString();
Serial.println(input);
if( input == "Kirim"){ // jika perintah yg dikirim berupa "kirim"
LoRa_sendMessage(); //kirim ke LoraWan
Serial.println("Ngirit Kirim data Ke LoRaWan Antares !");
}
}
}
void LoRa_sendMessage()
{
LoRa_TxMode();
LoRaWanPacket.clear();
//Serial.println(SendTempHumid());
LoRaWanPacket.print(SendTempHumid());
if (LoRaWanPacket.encode())
{
LoRa.beginPacket();
LoRa.write(LoRaWanPacket.buffer(), LoRaWanPacket.length());
LoRa.endPacket();
}
}
Jumat, 27 Mei 2022
Tutorial LoRaWan Antares - Menentukan frekuensi terbaik dengan python
#include <SPI.h>
#include <LoRa.h>
#include <LoRaWanPacket.h>
const int csPin = 10;
const int resetPin = 9;
const int irqPin = 2;
const char *devAddr = "aabbccdd";
const char *nwkSKey = "11111111111111110000000000000000";
const char *appSKey = "00000000000000002222222222222222";
struct LoRa_config
{
long Frequency;
int SpreadingFactor;
long SignalBandwidth;
int CodingRate4;
bool enableCrc;
bool invertIQ;
int SyncWord;
int PreambleLength;
};
long LoRa_frek_INA_923_start = 921200000 ;
long LoRa_frek_INA_923_end = 922600000 ;
long LoRa_frek_step = 200000;
long LoRa_frek_INA_923 = LoRa_frek_INA_923_start;
static LoRa_config txLoRa = {LoRa_frek_INA_923, 10, 125000, 5, true, false, 0x34, 8};
void LoRa_setConfig(struct LoRa_config config)
{
LoRa.setFrequency(LoRa_frek_INA_923);
LoRa.setSpreadingFactor(config.SpreadingFactor);
LoRa.setSignalBandwidth(config.SignalBandwidth);
LoRa.setCodingRate4(config.CodingRate4);
if (config.enableCrc)
LoRa.enableCrc();
else
LoRa.disableCrc();
if (config.invertIQ)
LoRa.enableInvertIQ();
else
LoRa.disableInvertIQ();
LoRa.setSyncWord(config.SyncWord);
LoRa.setPreambleLength(config.PreambleLength);
}
void LoRa_TxMode()
{
LoRa_setConfig(txLoRa);
LoRa.idle();
}
void setup()
{
Serial.begin(9600);
while (!Serial);
LoRaWanPacket.personalize(devAddr, nwkSKey, appSKey);
LoRa.setPins(csPin, resetPin, irqPin);
if (!LoRa.begin(txLoRa.Frequency)) {
Serial.println("LoRa init failed. Check your connections.");
while (true);
}
Serial.println("LoRa init succeeded.");
Serial.println();
}
void loop() {
if (runEvery(5000)) {
Serial.print("Send Message! frekuensi = ");
Serial.println(LoRa_frek_INA_923);
LoRa_sendMessage();
}
}
void LoRa_sendMessage()
{
LoRa_TxMode();
LoRaWanPacket.clear();
LoRaWanPacket.print("coba kirim frek: ");
LoRaWanPacket.print(String(LoRa_frek_INA_923));
if (LoRaWanPacket.encode())
{
LoRa.beginPacket();
LoRa.write(LoRaWanPacket.buffer(), LoRaWanPacket.length());
LoRa.endPacket();
}
if( LoRa_frek_INA_923 >= LoRa_frek_INA_923_end ) LoRa_frek_INA_923 = LoRa_frek_INA_923_start;
else LoRa_frek_INA_923 += LoRa_frek_step;
}
boolean runEvery(unsigned long interval)
{
static unsigned long previousMillis = 0;
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval)
{
previousMillis = currentMillis;
return true;
}
return false;
}
Belajar LoRaWan Antares - Pengolahan Data Device ( Req - Resp ) Dengan Python & MQTT
Setelah saya sukses membuat hello world antara modul LoRa dengan Gateway LoRawan Telkom (baca disini), saya akan lanjut membahas pengolahan data yang "lebih berguna" menggunakan sensor sejuta umat DHT dan dengan protokol IOT paling enteng yaitu MQTT. Untuk memahami bagaimana pemahaman PUB dan SUB dari platform IOT Antares yang menggunakan standar M2M, maka perlu sekali untuk memahami pembahasan sebelumnya di blog ini, diantaranya :
Breaking news: Telkom akan melakukan migrasi LoRaWan ke Telkomiot.id, Silahkan baca disini
- Proses PUB dan SUB dari Antares yang menggunakan 1 topik untuk PUB/REQ dan 1 topik untuk SUB/RESP. Jadi ketika data diterima antares, tidak serta merta akan diberikan kepada yag subscribe, jadi butuh REQUEST data dengan payload tertentu dan kemudian menerima RESPONSE pada 1 topik (hanya 1 tiap akun) yg telah di subscribe. Bisa dibaca disini , disini , dan disini .
- Python Paho-mqtt sebagai library paling umum untuk menerima dan mengolah protokol mqtt sehingga dapat dilanjutkan ke proses selanjutnya seperti menyimpan database, membuat grafik atau mengirim ke bot telegram. Bisa dibaca dulu agar mengerti disini dan disini.
#include <SPI.h> #include <LoRa.h> #include "DHT.h" #include <LoRaWanPacket.h> //Sesuaikan PIN CS, Reset, DIO0 const int csPin = 10; const int resetPin = 9; const int irqPin = 2; const int dhtPin = 3; //Sesuaikan pin DHT //Sesuaikan dev address dan key device LoRa const char *devAddr = "aabbccdd"; const char *nwkSKey = "11111111111111110000000000000000"; const char *appSKey = "00000000000000002222222222222222"; #define DHTTYPE DHT22 //Sensor DHT22 DHT dht(dhtPin, DHTTYPE); struct LoRa_config { long Frequency; int SpreadingFactor; long SignalBandwidth; int CodingRate4; bool enableCrc; bool invertIQ; int SyncWord; int PreambleLength; }; //Frekuensi Telkom LoRawan 922MHZ, sesuaikan dengan BTS GW terdekat static LoRa_config txLoRa = {922000000, 10, 125000, 5, true, false, 0x34, 8}; void LoRa_setConfig(struct LoRa_config config) { LoRa.setFrequency(config.Frequency); LoRa.setSpreadingFactor(config.SpreadingFactor); LoRa.setSignalBandwidth(config.SignalBandwidth); LoRa.setCodingRate4(config.CodingRate4); if (config.enableCrc) LoRa.enableCrc(); else LoRa.disableCrc(); if (config.invertIQ) LoRa.enableInvertIQ(); else LoRa.disableInvertIQ(); LoRa.setSyncWord(config.SyncWord); LoRa.setPreambleLength(config.PreambleLength); } void LoRa_TxMode() { LoRa_setConfig(txLoRa); LoRa.idle(); } void setup() { Serial.begin(9600); while (!Serial); LoRaWanPacket.personalize(devAddr, nwkSKey, appSKey); LoRa.setPins(csPin, resetPin, irqPin); if (!LoRa.begin(txLoRa.Frequency)) { Serial.println("LoRa init failed. Check your connections."); while (true); } Serial.println("LoRa init succeeded."); Serial.println(); dht.begin(); } String SendTempHumid(){ //kirim data pengukuran DHT float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); } Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" °C "); //yang dikirim data berupa string JSON return( "{\"suhu\":" + String(t) + ",\"humi\":" + String(h) +"}"); } void loop() { if (runEvery(10000)) { LoRa_sendMessage(); Serial.println("Kirim data!"); } } void LoRa_sendMessage() { LoRa_TxMode(); LoRaWanPacket.clear(); //Serial.println(SendTempHumid()); LoRaWanPacket.print(SendTempHumid()); if (LoRaWanPacket.encode()) { LoRa.beginPacket(); LoRa.write(LoRaWanPacket.buffer(), LoRaWanPacket.length()); LoRa.endPacket(); } } boolean runEvery(unsigned long interval) { static unsigned long previousMillis = 0; unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; return true; } return false; }
broker = 'mqtt.antares.id'
port = 1883
topicsubantares = "/oneM2M/resp/antares-cse/1111111111111111:2222222222222222/json"
topicpubantares = "/oneM2M/req/1111111111111111:2222222222222222/antares-cse/json"
def antares_request_last(client: mqtt_client):
data_raw = ("{"
"\"m2m:rqp\": {"
"\"fr\": \"1111111111111111:2222222222222222\","
"\"to\": \"/antares-cse/antares-id/APP_NAME/Cevice_Name/la\","
"\"op\": 2,"
"\"rqi\": 123456,"
"\"ty\": 4"
" }"
"}")
ret=client.publish(topicpubantares,data_raw)
"m2m:rsp" : {
"rsc" : 2000,
"rqi" : "123456",
"pc" : {
"m2m:cin" : {
"rn" : "cin_TQ_E2xnzT42t3zsS",
"ty" : 4,
"ri" : "/antares-cse/cin-TQ_E2xnzT42t3zsS",
"pi" : "/antares-cse/cnt-pqq6TLDSTvqCizzB",
"ct" : "20220526T080631",
"lt" : "20220526T080631",
"st" : 0,
"cnf" : "text/plain:0",
"cs" : 239,
"con" : "{\"type\":\"uplink\",\"port\":1,\"data\":{\"suhu\":30.1,\"h
umi\":79.2},\"counter\":6,\"radio\":{\"gps_time\":1337562409369,\"hardware\":{\"
snr\":0.5,\"rssi\":-106},\"modulation\":{\"bandwidth\":125000,\"spreading\":10},
\"delay\":0.05295205116271973,\"freq\":922,\"size\":40}}"
}
},
"to" : "1111111111111111:2222222222222222",
"fr" : "/antares-cse"
}
def parsing_data(datae):
datanya = json.loads(datae['m2m:rsp']['pc']['m2m:cin']['con'])
gps_time = math.floor(datanya['radio']['gps_time']/1000) +25200
waktu = datetime(1980, 1, 6) + timedelta(seconds=gps_time - (35 - 19))
#print(type(datanya['radio']['gps_time']))
print(waktu)
print('Suhu = ' + str(datanya['data']['suhu']) + ' Celcius ')
print('Kelembaban = ' + str(datanya['data']['humi']) + ' % Rh\n\n')
Rabu, 25 Mei 2022
LoRaWan - Antares id "Hello World" dengan SX1276 / RFM95 di Frekuensi AS923-2
Lora bukanlah barang yang asing bagi saya karena telah cukup lama mengenal modul modem RF nya kira-kira 7 tahun yang lalu, dan berhasil mengirimkan data text / terminal serial antar 2 modul lora (point to point) yang saya letakkan dari ujung ke ujung jembatan Suramadu. Kala itu modul yang digunakan masih menggunakan frekuensi 433 Mhz yang cukup terjangkau harganya, namun setelah praktek sederhana ini saya merasa tak ada yg spesial dari sekedar kirim-kiriman data jarak jauh. Kemudian ketika konsep IOT saya sudah lumayan mendapatkan pencerahan dan lebih memilih wifi sebagai koneksi paling murah meriah, maka modul ini jadi terlupakan dan entah terselip dimana. Apalagi kemudian pemerintah baru men-standarkan dan meregulasi frekuensi lora sesuai dengan pembagian regional ITU - Lora aliance yaitu di 923Mhz pada tahun 2019.
Breaking news: Telkom akan melakukan migrasi LoRaWan ke Telkomiot.id, Silahkan baca disini
Ketiadaan gateway lora pada tahun dimana saya mencoba lora juga menjadi kendala untuk oprek-oprek, dan saat itu pernah membantu seorang mahasiswa menyeting GW Lora dragino yang ternyata harganya sangat memberatkan kantong mahasiswa. Baik TTN ( the things network) maupun Lora alliance tidak muncul juga gatewaynya saat saya getol2nya mengoprek modul lora 433Mhz. Sampai suatu ketika saya mendapatkan request pembaca untuk menengok perkembangan gateway LoraWan yang dipasang telkom bersama mitratel. Lalu meluncurlah saya ke websitenya Telkom iot dan mendapatkan Lorawan nya ternyata telah di deploy dan memancar dilokasi yang tak jauh dari kediaman saya.
Peta diatas terasa sangat familiar bagi saya, perasaan de-ja-vu pun muncul...yahh karena telkom surabaya adalah mantan terindah buat saya. Cieee...cieee....ya iyalah hampir 9 tahun saya berkutat dengan map dan coverage persis dengan gambar diatas. Dan benar saja lingkaran merah yang menyatakan sinyal Lorawan nya besar, itu berada pada titik lokasi STO Telkom yang memiliki tower BTS / Radio. Yahhh..kenangan mantan memang menyakitkan, namun saya harus MOVE ON dan segera mencari modul Lora dengan frekuensi sesuai standar di Indonesia.
Banyak modul Lora yang beredar di pasaran online, dan saya sangat berhati-hati agar tidak salah membeli karena dana sedang tipis-tipisnya. Apalagi ada yg memberitahu saya kalau modul lora berbasis esp32 TTG / LilyGo sedang kosong dipasaran. Pilihan datang ke breakout board Lora berbasis SX1276 atau RFM95 yang lumayan terjangkau, namun belum siap pakai karena harus melakukan penyesuaian ke microcontroller yang digunakan. Namun setelah diyakinkan oleh seller online nya dan seharian membaca di internet, saya memutuskan untuk membelinya dan menyandingkannya dengan Arduino nano yang teronggok tak terpakai di gudang. Rangkaian / skematik yg saya gunakan kira-kira tak jauh dari yang bisa didapatkan di internet.
Library yang pertama saya gunakan adalah library LoraId milik antares yang tersedia di sketch arduino, maupun library lainnya yang terdapat pada modul training di website antares. Sesuai pengalaman sebelumnya saat saya membahas library Antares, muncul keraguan kalau library ini tidak bisa langsung pakai dan harus saya oprek terlebih dahulu. Dan benar saja modul lora yang sukses saya koneksikan ke arduino, ternyata tidak mengirimkan data ke console web antares.
Bahkan saya harus berkeliling kota, nostalgia pekerjaan 10 tahun yang lalu yaitu mencari sinyal sesuai peta coverage yang diberikan Telkom. Namun tetap saja hasilnya zonk ! Saya menggunakan script example yang ada pada librarynya Lora-antares, namun kenapa gagal ya ?
Pulang dengan tangan hampa dan wajah terbakar panasnya matahari Surabaya, saya teringat bagaimana proses yg saya lakukan ketika dulu, saya pernah menemukan bug pada library antares yang pernah saya bahas disini. Saya menggunakan mode koneksi ke gateway secara ABP (Activation by Personalization) sehingga id dan key saya tetap gak berubah, dibanding saya harus menggunakan Autentifikasi lewat OTAA. Jadi kira-kira analisa saya, kenapa tidak bisa terhubung ke gateway antares, seperti ini:
- NwkSkey, ApkSkey dan DevAdress kemungkinan salah format
- Frekuensi yang digunakan tidak tepat
- Library nya kacau ayuk diubah aja
Berdasarkan tutorial dari librarynya antares, key dan id dari device lora di console antares, mirip dengan yang diajarkan sebelumnya untuk library lainnya, yaitu seperti script ini :
// Put Antares Key and DevAddress here
lora.setAccessKey("your Access Key");
lora.setDeviceId("your Device Id");
Lalu menurut contoh pada modul tutorial, setAccessKey didapatkan dengan melihat pair key dari id userkey di console antares yang berformat : 1111111111111111:2222222222222222 . Jadi 16karakter:16karakter. Namun saat di jalankan maka dilihat pada debug terminal, format dari NwkSkey dan ApkSkey sesuai dengan literatur yang saya baca yaitu 128bit atau 32 karakter. Sedangkan format device ID nya benar.
Kecurigaan muncul dari saat proses ADD DEVICE lalu SETLORA. Ternyata sudah disediakan NwkSkey dan ApkSkey namun tidak ditampilkan pada console. Dilalahnya pair userkey bukanlah seperti key 128 bit yang ditampilkan pada layar.
#include <SPI.h>
#include <LoRa.h>
#include <LoRaWanPacket.h>
// sesuaikan pin yang dipakai
const int csPin = 10;
const int resetPin = 9;
const int irqPin = 2; // DIO0
//sesuaikan key dan address device lora antares
const char *devAddr = "xxxxxxxx";
const char *nwkSKey = "11111111111111110000000000000000";
const char *appSKey = "00000000000000002222222222222222";
unsigned int counter = 1;
struct LoRa_config
{
long Frequency;
int SpreadingFactor;
long SignalBandwidth;
int CodingRate4;
bool enableCrc;
bool invertIQ;
int SyncWord;
int PreambleLength;
};
//frekuensi SF BW dan sebagainya
static LoRa_config txLoRa = {922000000, 10, 125000, 5, true, false, 0x34, 8};
void LoRa_setConfig(struct LoRa_config config)
{
LoRa.setFrequency(config.Frequency);
LoRa.setSpreadingFactor(config.SpreadingFactor);
LoRa.setSignalBandwidth(config.SignalBandwidth);
LoRa.setCodingRate4(config.CodingRate4);
if (config.enableCrc)
LoRa.enableCrc();
else
LoRa.disableCrc();
if (config.invertIQ)
LoRa.enableInvertIQ();
else
LoRa.disableInvertIQ();
LoRa.setSyncWord(config.SyncWord);
LoRa.setPreambleLength(config.PreambleLength);
}
void LoRa_TxMode()
{
LoRa_setConfig(txLoRa);
LoRa.idle();
}
void setup()
{
Serial.begin(115200);
while (!Serial);
LoRaWanPacket.personalize(devAddr, nwkSKey, appSKey);
LoRa.setPins(csPin, resetPin, irqPin);
if (!LoRa.begin(txLoRa.Frequency)) {
Serial.println("LoRa init failed. Check your connections.");
while (true);
}
Serial.println("LoRa init succeeded.");
Serial.println();
LoRa_sendMessage();
}
void loop() {
if (runEvery(10000)) {
LoRa_sendMessage();
counter++;
Serial.println("Send Message!");
}
}
void LoRa_sendMessage()
{
LoRa_TxMode();
LoRaWanPacket.clear();
LoRaWanPacket.print("Hello World");
LoRaWanPacket.print(" data ke-");
LoRaWanPacket.print(String(counter));
if (LoRaWanPacket.encode())
{
LoRa.beginPacket();
LoRa.write(LoRaWanPacket.buffer(), LoRaWanPacket.length());
LoRa.endPacket();
}
}
boolean runEvery(unsigned long interval)
{
static unsigned long previousMillis = 0;
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval)
{
previousMillis = currentMillis;
return true;
}
return false;
}
Selasa, 10 Mei 2022
TV Publik Swiss Menghentikan Siaran Digital Teresterial Tahun 2019 - Kita Indonesia ...
Swiss merupakan negara kecil di Eropa dengan status negara netral yg diapit 4 negara besar sehingga mempengaruhi sistem kenegaraannya. Sistem demokrasi langsung Swiss dan fakta bahwa negara itu memiliki empat bahasa resmi (Bahasa Jerman, Prancis, Italia dan Romansh) berarti bahwa struktur penyiaran pelayanan publik Swiss agak rumit. Pemegang sebenarnya dari izin penyiaran adalah SRG SSR sehingga memungkinkan untuk mengoperasikan empat asosiasi penyiaran regional: SRG idée suisse Deutschschweiz (SRG.D), SSR idée suisse Romande (RTSR), Società cooperativa per la radiotelevisione nella Svizzera italiana (CORSI), dan SRG SSR idée suisse Svizra Rumantscha (SRG.R). Keempat asosiasi, yang untuk sebagian besar dijalankan independen oleh pendengar dan pemirsa di setiap daerah, menjadikan SRG SSR sebagai pusat produksi penyiaran bersama dan perusahaan penyiaran publik.
Namun Swiss telah mematikan layanan televisi terestrial digital (DTT) free-to-air pada tahun 2019. Keputusan tersebut didasarkan pada penetrasi DTT yang sangat rendah di Swiss dan peningkatan langganan IPTV yang terus berlanjut. Langkah ini merupakan bagian dari paket tindakan penghematan biaya yang disepakati antara penyiar publik Swiss SRG dan Dewan Federal Swiss setelah referendum 'No Billag' atau Tanpa Iuran baru-baru ini.
Platform siaran free-to-air utama di Swiss tetap melalui layanan satelit berbasis DVB-S2. Sebagian besar rumah tangga Swiss menerima paket TV dasar dalam langganan broadband mereka, yang menjelaskan peningkatan penerimaan IPTV dalam beberapa tahun terakhir. IPTV sudah memiliki penetrasi 48,4% pada tahun 2016 menurut EBU Media Intelligence Service. Seorang juru bicara SRG mengatakan bahwa perusahaan memperkirakan pemutusan DTT hanya akan mempengaruhi sekitar 64.000 rumah tangga. Ada 2,7 juta rumah tangga yg memiliki TV di Swiss.
Terjadi perubahan kebiasaan menonton TV
Keputusan Swiss juga merupakan cerminan dari perubahan kebiasaan menonton, di mana ada pergeseran yang lebih besar ke konsumsi konten online. HbbTV (Hybrid broadcast broadband TV ) merupakan bagian integral dari proposisi Swiss pada kabel, IPTV, satelit dan DTT, dan proyek DVB dalam memfasilitasi pengiriman broadband layanannya melalui DVB-I dan teknik lain mengatasi perubahan ini.
Pasar lain di Eropa memiliki ketergantungan yang jauh lebih kuat pada DTT daripada Swiss. Penetrasi rata-rata untuk DTT di set utama untuk EU27 adalah 27,7%, dengan Kroasia, Yunani, Italia, dan Spanyol semuanya memiliki tingkat di atas 50%.
Sebagian besar negara yang meluncurkan layanan DTT hari ini memilih DVB-T2. Karena negara-negara Eropa yang masih menggunakan DVB-T merencanakan transisi mereka ke DVB-T2, layanan akan terus berkembang karena platform mereka diperkaya dengan UHD, HDR, dan layanan lanjutan yang ditingkatkan. “DVB sangat bangga untuk terus menjadi tulang punggung televisi digital, di Eropa dan di seluruh dunia, tidak peduli bagaimana hal itu disampaikan,” kata Peter MacAvock, ketua Proyek DVB.
Swiss tentu saja merupakan kasus khusus sebagian karena medan pegunungan kurang menguntungkan untuk perambatan sinyal DTT. Hanya 1,9% atau 64.000 rumah di Swiss sekarang menggunakan DVB-T untuk penerimaan TV utama menurut SRG. Sisanya menggunakan IPTV, kabel atau DTH, dengan SRG merekomendasikan agar rumah yang terpengaruh oleh pemutusan memilih yang terakhir karena menawarkan penerimaan yang jauh lebih baik sementara juga bebas mengudara.
Faktor lain adalah bahwa SRG menghadapi tekanan yang semakin besar untuk memangkas biaya karena tetap didanai oleh biaya lisensi, yang akan tetap berlaku setelah 71,6% pemilih negara itu menolak inisiatif No Billag untuk menghapuskan biaya iuran televisi dalam referendum yang diadakan pada Maret 2018. Ini berperan penting dalam gerakan untuk menghentikan DTT dan berkonsentrasi untuk menawarkan alternatif yang jelas untuk TV komersial, yang dengan sendirinya menimbulkan biaya.
Membuat Gaduh Dunia Pertelevisian
Kandidat yang paling mungkin untuk mengikuti langkah Swiss dalam waktu dekat adalah negara-negara di mana penetrasi DTT telah merosot ke tingkat yang rendah dengan alternatif broadband kecepatan tinggi, TV kabel dan satelit lebih mendominasi. Di Belgia dan Belanda, TV satelit sebagian besar merupakan pilihan cadangan tetapi broadband dan kabel telah menyapu pasar DTT dan kemungkinan besar menuju jalan keluar dalam beberapa tahun ke depan. Di Belgia, malaikat maut sudah melayang di atas DTT dengan penyiar publik berbahasa Belanda VRT menghentikan siaran DVB-T-nya pada 1 Desember 2019. Hal ini memengaruhi tiga saluran utama VRT Eén, Canvas, dan Ketnet, yang saat ini tersedia gratis untuk- udara di seluruh negeri, yang hanya 45.000 orang masih menonton DTT, sementara biaya lebih dari €1 juta per tahun untuk mempertahankan. VRT mengatakan akan menginvestasikan kembali uangnya pada platform online VRT Nu gratis yang memiliki 1,125 juta pengguna terdaftar.
Swedia dan Finlandia mungkin merupakan negara Eropa berikutnya yang meninggalkan DTT, tetapi untuk alasan yang berbeda, karena perubahan yang kuat menuju 4G LTE sebagai sumber konten video di ponsel cerdas dan tablet. Memang benar bahwa Swedia telah bermigrasi dari DVB generasi pertama ke DVB-T2, tetapi telah dikurangi karena penurunan permintaan. Rencana awalnya adalah untuk mengirimkan sejumlah besar saluran HD melalui DVB-T2 tetapi setelah berkonsultasi dengan penyiar, perusahaan pemancar negara Tracom merevisi perkiraannya ke bawah dan sekarang dengan pengurangan kapasitas DTT hanya akan mempertahankan layanan yang ada. Seperti yang diakui Tracom, jumlah penerima dengan dukungan DVB-T2 jauh lebih sedikit dari yang diharapkan atau diantisipasi.
Langkah Swiss juga telah memicu beberapa kesedihan di AS atas masa depan DTT di sana yang tampak aman di masa mendatang. Setelah semua upaya besar telah dilakukan dalam mengembangkan generasi ketiga dari standar DTT Amerika Utara yang berlaku, ATSC 3.0, yang bertujuan untuk melompati versi DTT lainnya dengan dukungan untuk UHD pada resolusi 2160p 4K pada 120 frame per detik dan iklan bertarget.
Ini telah dirancang dengan mempertimbangkan konvergensi seluler di sekitar 5G lebih dari sekadar DVB-T2, sementara juga memfasilitasi TV hibrida yang menggabungkan OTT dan siaran menggunakan pengiriman video MPEG DASH melalui broadband. Faktanya, Forum Industri DASH (DASH-IF) mengembangkan profil interoperabilitas DASH khusus untuk ATSC 3.0.
Dengan latar belakang ini, masa depan DTT di AS tampak aman. Bagaimanapun juga ATSC 3.0 telah mendapatkan daya tarik di tempat lain, termasuk Korea Selatan yang meluncurkan layanan ATSC 3.0 terestrial pada Mei 2017 sebagai persiapan untuk Olimpiade Musim Dingin 2018.
Namun jaringan utama AS seperti NBC, CBC, ABC dan Fox tidak dipaksa untuk menyiarkan saluran mereka melalui DTT dan jika mereka mau, dapat menawarkan konten premium mereka secara eksklusif kepada operator kabel dan satelit. Selain itu, sementara Komisi Komunikasi Federal (FCC) menyetujui peraturan untuk stasiun siaran untuk secara sukarela menawarkan layanan ATSC 3.0, mereka tetap harus ditawarkan bersama sinyal digital ATSC standar. Tidak akan ada transisi wajib ke ATSC 3.0 seperti halnya transisi dari NTSC analog ke ATSC. Oleh karena itu ada jalan keluar untuk jaringan jika mereka tidak percaya bahwa investasi dalam migrasi ATSC 3.0 dibenarkan oleh kemungkinan penetrasi.
Di sisi lain, ada fenomena churn (perubahan) besar-besaran di AS, yang memiliki efek samping sedikit meningkatkan penayangan DTT selama beberapa tahun terakhir. Ini karena lebih banyak rumah yang mengandalkan free to air yang dikombinasikan dengan satu atau lebih penawaran SVoD, sehingga jaringan akan enggan untuk memberikan rute penting ini ke TV utama.
Di Asia Pasifik juga terdapat gambaran yang sangat beragam, dengan beberapa negara benar-benar meningkatkan komitmen mereka terhadap DTT yang menunjukkan bahwa DTT mungkin bertahan di sana, paling lama, meskipun hal itu berpotensi berubah dengan cepat. India adalah kasus yang menarik dengan nasib DTT ada dalam keseimbangan tetapi mungkin di ambang rebound. Dilatarbelakangi bahwa penyiaran telah berkembang pesat dan dirangsang oleh sejumlah operator satelit dan digitalisasi kabel, yang sebagian besar diselesaikan dalam proses empat fase pada Maret 2017.
Itu membuat penyiaran terestrial sebagai satu-satunya media yang belum didigitalkan, menyebabkan Otoritas Regulasi Telekomunikasi India (TRAI) mengeluarkan makalah konsultasi yang merekomendasikan negara tersebut untuk melanjutkan digitalisasi DTT.
Makalah tersebut mencatat bahwa sebagian besar data di India disediakan melalui koneksi seluler dan bahwa DTT memiliki potensi untuk mengambil sebagian beban dari jaringan seluler. Menariknya, ponsel yang mendukung DTT dapat memiliki chip terintegrasi atau bahkan dongle untuk akses DTT. Ini telah dicoba sebelumnya dan memiliki implikasi baterai yang sangat besar jika ditempatkan langsung ke telepon.
TRAI telah menganjurkan rencana tiga fase untuk migrasi DTT yang meniru model digitalisasi kabel sebelumnya, dimulai dengan kota-kota besar, kemudian daerah perkotaan yang lebih kecil dan akhirnya seluruh negeri pada tahun 2023, meskipun kedengarannya ambisius.
Hasil dari semua ini adalah bahwa sementara pemutusan Swiss benar-benar menandai kematian DTT di beberapa negara selama beberapa tahun ke depan, masih terlalu dini untuk menghapusnya secara global dan nasibnya akan sangat bervariasi tergantung pada faktor-faktor termasuk medan dan kepadatan penduduk . Namun tidak seorang pun yang berkecimpung di dunia broadcast akan menjadi kaya dengan menyediakan konten melalui DTT saja, itu sudah pasti. Youtuber dan tiktoker ? Sudah jelas pasar berubah kawan..
sumber : https://rethinkresearch.biz/articles/swiss-dtt-shutdown-beginning-of-end-for-digital-terrestrial/