Category Archives: Tips & Trik
berisi materi yang bersifat singkat tapi bermanfaat
Contoh Code ESP32 sebagai AP Hotspot dan web server untuk Input Data dan bisa update program Via wifi
Contoh Kode ESP32 dengan fitur:
- ESP32 sebagai Access Point / hotspot
- Authentification : login user-password
- Bisa update program via wifi (OTA )
- form input data
- On – OFF Relay
#include <Arduino.h>
#include <WiFi.h>
#include <AsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <AsyncElegantOTA.h>
#define LED_BUILTIN 2
AsyncWebServer server(80);
// Replace with your network credentials
const char* ssid = "ESP32";
const char* password = "123456789";
IPAddress local_ip(192, 168, 123, 4); //ip address untuk akses ESP32
IPAddress gateway(192, 168, 123, 1); //gateway
IPAddress subnet(255, 255, 255, 0); //subnet
const char* http_username = "admin";
const char* http_password = "admin";
// REPLACE WITH YOUR NETWORK CREDENTIALS
const char* PARAM_INPUT_1 = "input1";
const char* PARAM_INPUT_2 = "input2";
const char* PARAM_INPUT_3 = "input3";
const char* PARAM_INPUT_4 = "state";
const int output = 2;
int par1=0;
const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML>
<html>
<head>
<title>ESP Web Server</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
html {font-family: Arial; display: inline-block; text-align: center;}
h2 {font-size: 2.6rem;}
body {max-width: 600px; margin:0px auto; padding-bottom: 10px;}
.switch {position: relative; display: inline-block; width: 120px; height: 68px}
.switch input {display: none}
.slider {position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; border-radius: 34px}
.slider:before {position: absolute; content: ""; height: 52px; width: 52px; left: 8px; bottom: 8px; background-color: #fff; -webkit-transition: .4s; transition: .4s; border-radius: 68px}
input:checked+.slider {background-color: #2196F3}
input:checked+.slider:before {-webkit-transform: translateX(52px); -ms-transform: translateX(52px); transform: translateX(52px)}
</style>
</head>
<body style="background-color:#2cc932;">
<h2>CounterProduksi.com</h2>
<h2>WA : 0812-1925-1068 </h2>
<table >
<tr>
<form action="/get">
<td>
PLAN:
</td>
<td>
<input type="text" name="input1">
</td>
<td>
<input type="submit" value="Submit">
</td>
</form>
</tr>
<tr>
<form action="/get">
<td>
ACTUAL:
</td>
<td>
<input type="text" name="input2">
</td>
<td>
<input type="submit" value="Submit">
</td>
</form>
</tr>
<tr>
<form action="/get">
<td>
MODEL:
</td>
<td>
<input type="text" name="input3">
</td>
<td>
<input type="submit" value="Submit">
</td>
</form>
</tr>
</table>
<br>
<br>
<button onclick="logoutButton()">Logout</button>
<p>Status Counter : <span id="state">%STATE%</span></p>
%BUTTONPLACEHOLDER%
<script>
function toggleCheckbox(element)
{
var xhr = new XMLHttpRequest();
if(element.checked){
xhr.open("GET", "/updatex?state=1", true);
document.getElementById("state").innerHTML = "ON";
}
else {
xhr.open("GET", "/updatex?state=0", true);
document.getElementById("state").innerHTML = "OFF";
}
xhr.send();
}
function logoutButton()
{
var xhr = new XMLHttpRequest();
xhr.open("GET", "/logout", true);
xhr.send();
setTimeout(function(){ window.open("/logged-out","_self"); }, 1000);
}
</script>
</body>
</html>
)rawliteral";
const char logout_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<p>Logged out or <a href="/">kembali</a>.</p>
<p><strong>CopyRight:</strong> counterproduksi.com-2024</p>
</body>
</html>
)rawliteral";
void notFound(AsyncWebServerRequest *request) {
request->send(404, "text/plain", "Not found");
}
// Replaces placeholder with button section in your web page
String processor(const String& var){
//Serial.println(var);
if(var == "BUTTONPLACEHOLDER"){
String buttons ="";
String outputStateValue = outputState();
buttons+= "<p><label class=\"switch\"><input type=\"checkbox\" onchange=\"toggleCheckbox(this)\" id=\"output\" " + outputStateValue + "><span class=\"slider\"></span></label></p>";
return buttons;
}
if (var == "STATE")
{
if(digitalRead(output)){
return "ON";
}
else {
return "OFF";
}
}
return String();
}
String outputState(){
if(digitalRead(output)){
return "checked";
}
else {
return "";
}
return "";
}
void setup(){
// Serial port for debugging purposes
Serial.begin(115200);
pinMode(output, OUTPUT);
digitalWrite(output, LOW);
WiFi.softAP(ssid, password);
WiFi.softAPConfig(local_ip, gateway, subnet);
IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);
// Route for root / web page
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
if(!request->authenticate(http_username, http_password))
return request->requestAuthentication();
request->send_P(200, "text/html", index_html, processor);
});
server.on("/logout", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(401);
});
server.on("/logged-out", HTTP_GET, [](AsyncWebServerRequest *request){
request->send_P(200, "text/html", logout_html, processor);
});
// Send a GET request to <ESP_IP>/update?state=<inputMessage>
server.on("/updatex", HTTP_GET, [] (AsyncWebServerRequest *request) {
if(!request->authenticate(http_username, http_password))
return request->requestAuthentication();
String inputMessage;
String inputParam;
// GET input1 value on <ESP_IP>/update?state=<inputMessage>
if (request->hasParam(PARAM_INPUT_4)) {
inputMessage = request->getParam(PARAM_INPUT_4)->value();
inputParam = PARAM_INPUT_4;
digitalWrite(output, inputMessage.toInt());
}
else {
inputMessage = "No message sent";
inputParam = "none";
}
Serial.println(inputMessage);
request->send(200, "text/plain", "OK");
});
//===========
// Send a GET request to <ESP_IP>/get?input1=<inputMessage>
server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request)
{
String inputMessage;
String inputParam;
// GET input1 value on <ESP_IP>/get?input1=<inputMessage>
if (request->hasParam(PARAM_INPUT_1)) {
inputMessage = request->getParam(PARAM_INPUT_1)->value();
inputParam = PARAM_INPUT_1;
}
// GET input2 value on <ESP_IP>/get?input2=<inputMessage>
else if (request->hasParam(PARAM_INPUT_2)) {
inputMessage = request->getParam(PARAM_INPUT_2)->value();
inputParam = PARAM_INPUT_2;
}
// GET input3 value on <ESP_IP>/get?input3=<inputMessage>
else if (request->hasParam(PARAM_INPUT_3)) {
inputMessage = request->getParam(PARAM_INPUT_3)->value();
inputParam = PARAM_INPUT_3;
}
else {
inputMessage = "No message sent";
inputParam = "none";
}
par1= inputMessage.toInt() ; // par1=par1 + 3;
request->send(200, "text/html", "No-HP : " + inputParam +
"Usia : " + par1 +
"<br><a href=\"/\">Kembali</a>");
});
//===========
server.onNotFound(notFound);
AsyncElegantOTA.begin(&server); // Start AsyncElegantOTA update program via wifi :
// ketik http://ip_address/update
server.begin();
}
void loop() {
}
untuk upgrade program via wifi menggunakan OTA langkah langkahnya sbb:
- convert code program yg akan di upload ke esp32 ke dlm bentuk file *.bin
- hidupkan ESP32 ( yg sdh diupload contoh code diatas via USB serial )
- konek laptop ke hotspot esp32
- ketik di browser http://ipaddress/update misal http://192.168.123.4./update
- maka akan muncul halaman spt pada gb berikut ini:
Cara Koneksi modbus RTU Device dengan Modbus TCP Gateway elfin EW11
Berikut inii tahapan menghubungkan serial Modbus RTU device dengan Modbus TCP gateway, pada artikel ini kita akan menggunakan modbus tcp gateway yg relatif murah yaitu Elfin EW11
Buka aplikasi IOTService atau melalui web base dgn ip yg tertera di user manual lalu Setting IP untuk gambar diatas bisa dilihat pada gambar berikut ini
isi IP Address dan IP Gateway
isi Local port dengan 502 ( ini nomor port standart modbus TCP)
isi STA_SSID atau nama akses point / hotspot
isi password STA_SSID / akses point nya
Jika sudah berhasil disetting akan tampak status sebagai berikut
untuk lebih detailnya silahkan lihat user manual nya disini http://www.hi-flying.com/elfin-ew10-elfin-ew11
Tips: Rangkaian untuk Mendapatkan tegangan 5v dari Port Serial Rs232
rangkaian untuk medapatkan tegangan +5v dengan arus sekitar 10mA
tips Merubah 2 bilangan 16bit menjadi sebuah bilangan 32bit pada C#
static long doubleInt2long(Int16 a2, Int16 a1)
{
long b = 0;
b = (long)(a2 << 16)| (a1 & 65535);
return b;
}
code ini buat digunakan antara lain di modbus server , ketika kita ingin mendapatkan sebuah bilangan yg dibentuk dari 2 buah register modbus 16bit . Bisa dilihat pada contoh berikut ini :
contoh code C# menulis-write type data long ke modbus register
buat project baru
buat form sbb
code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using www.counterproduksi.com;
namespace ConvertInt32ToMSBandLSB
{
public partial class Form1 : Form
{
// private www.counterproduksi.com.CounterEthernet MBCounter1;
private www.counterproduksi.com.CounterEthernet MBCounter1;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int PLAN = Convert.ToInt32(textBox1.Text);
int HighINT = (PLAN >> 16) & 0x0000ffff;
int LowINT = PLAN & 0x0000ffff;
int LSBUnsigned = (Int16)LowINT; // y = -1
txtMSB.Text = HighINT.ToString();
txtLSB.Text = LSBUnsigned.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show(" di disable");
/*
byte[] data1 = new Byte[2];
int[] word = new int[1];
word[0] = Convert.ToInt16(txtLSB.Text);
byte[] dat = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder((short)word[0]));
data1[0] = dat[0];
data1[1] = dat[1];
try
{
// MBCounter1.WriteSingleRegister(4, 0, 30, data1);
MBCounter1.WriteDataCounter(4, 0, 5, data1);
}
catch (SystemException error)
{
MessageBox.Show(error.Message);
}
*/
}
private void button3_Click(object sender, EventArgs e)
{
try
{
MBCounter1 = new CounterEthernet("127.0.0.1", 502);
txtVersiLibrary.Text = MBCounter1.versi;
// MBCounter1.OnResponseData += new ModbusTCP.Master.ResponseData(MBCounter1_OnResponseData);
// MBCounter1.timeout = 6000;
button3.Enabled = false;
button4.Enabled = true;
button5.Enabled = true;
button6.Enabled = true;
button2.Enabled = true;
}//end try
catch (SystemException ex)
{
}
}
private void button4_Click(object sender, EventArgs e)
{
try
{
MBCounter1.disconnect();
MBCounter1.Dispose();
button3.Enabled = true;
button4.Enabled = false;
button5.Enabled = false;
button6.Enabled = false;
button2.Enabled = false;
}//end try
catch (SystemException ex)
{
}
}
private void Form1_Load(object sender, EventArgs e)
{
button4.Enabled = false;
button5.Enabled = false;
button6.Enabled = false;
button2.Enabled = false;
}
private void button5_Click(object sender, EventArgs e)
{
MessageBox.Show(" di disable");
/*
byte[] data1 = new Byte[2];
int[] word = new int[1];
word[0] = Convert.ToInt16(txtMSB.Text);
byte[] dat = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder(( short)word[0]));
data1[0] = dat[0];
data1[1] = dat[1];
try
{
// MBCounter1.WriteSingleRegister(4, 0, 30, data1);
MBCounter1.WriteDataCounter(4, 0, 4, data1);
}
catch (SystemException error)
{
MessageBox.Show(error.Message);
}
*/
}
private void button6_Click(object sender, EventArgs e)
{
byte[] data1 = new Byte[4];
int[] word = new int[2];
word[0] = Convert.ToInt16(txtMSB.Text);
byte[] dat = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder((short)word[0]));
data1[0] = dat[0];
data1[1] = dat[1];
word[1] = Convert.ToInt16(txtLSB.Text);
byte[] dat1 = BitConverter.GetBytes((short)IPAddress.HostToNetworkOrder((short)word[1]));
data1[2] = dat1[0];
data1[3] = dat1[1];
try
{
// MBCounter1.WriteDataCounter(4, 0, 5, data1);
MBCounter1.WriteMultipleRegister(4, 0, 4, data1);
}
catch (SystemException error)
{
MessageBox.Show(error.Message);
}
//======================
}
}
}
Cara Menghilangkan tulisan footer Simple theme Powered by Blogger di blogspot
- Login blogspot
- Klik menu Theme
- klik menu edit HTML
- klik di area kode html tekan CTRL + F untuk mencari kata attribution
- ganti locked=true menjadi locked= false pada baris <b:widget id=’Attribution1′ locked=’true’ title=” type=’Attribution’>
- save perubahan html
- lalu menuju menu layout scroll ke bawah , edit footer
- sekarang di menu edit footer ada tombol removed . klik tombol removed tsb.
- selesai
Tips Merubah 2 bilangan type int menjadi type long dan sebaliknya dengan vb net
Tips ini antara lain berguna jika kita ingin membaca data type long tapi disimpan di 2 buah register type integer di sebuah alat modbus. seperti tampak pd gb berikut
berikut contoh code vb untuk merubah 2 register 16 bit (integer) menjadi bilangan 32 bit (long)
Dim dataLong as Long
Dim sgInt As Int16 = ModbusTCPCom2.Read(40002)
Dim unsgInt = Convert.ToUInt32(sgInt.ToString(“X8”), 16)
dataLong = unsgInt + (ModbusTCPCom2.Read(40001) * 65536)
Sedangkan jika kita ingin sebaliknya misal kita ingin membuat modbus server menggunakan vb net dan kita akan menyimpan data long (32 bit ) ke dalam 2 buah register 16 bit bisa menggunakan kode berikut
Private Sub LongToInt(ValueLong As ULong, index As Short)
Dim HighINT As UInteger
Dim LowINT As UInteger
Dim Val16 As Int16
‘Dim uVal16 As UInt16
HighINT = Convert.ToUInt16(ValueLong >> 16 And &HFFFF)
LowINT = Convert.ToUInt16(ValueLong And &HFFFF)
Val16 = Convert.ToInt16(LowINT.ToString(“X4”), 16)
ModbusRegister(index) = HighINT
ModbusRegister(index + 1) = Val16
End Sub
adapun misal kita membuat alat modbus server dengan arduino dan ingin menyimpan data type long (32bit) ke dalam 2 buah register integer 16 bit bsa menggunakan code berikut
void LongToInt(unsigned long ValueLong, int index)
{
int HighINT = (ValueLong >> 16) & 0x0000ffff;
int LowINT = ValueLong & 0x0000ffff;
ModbusRegister[index] = HighINT;
ModbusRegister[index+1] = LowINT;
}
reference www.counterproduksi.com
Ahlan Wa Sahlan Ya Ramadhan
Ahlan Wa Sahlan Ya Ramadhan
Oleh Dr. Ahzami Sami’un Jazuli, MA
وَإِنَّهُ لَذِكْرٌ لَكَ وَلِقَوْمِكَ وَسَوْفَ تُسْأَلُونَ
Dan sesungguhnya al-Qur’an itu benar-benar adalah suatu kemuliaan
besar bagimu dan bagi kaummu dan kelak kamu akan diminta pertanggungan
jawab” (QS Az-Zukhruf: 44).
Ketika Allah Swt.. menjadikan Islam sebagai rahmat buat alam semesta; ketika Allah Swt. menghendaki dari umat Islam menjadi umat terbaik; ketika Allah Swt. menghendaki agar umat Islam mampu memikul amanah untuk memimpin dunia ini; ketika Allah menghendaki agar umat Islam menjadi saksi bagi seluruh umat manusia, maka ketika itulah Allah Swt. mempersiapkan umat Islam sedemikian rupa, agar umat Islam ini layak menjadi umat yang terbaik. Di antara sarananya adalah dengan pembentukan manusia yang bertaqwa. Pembentukan manusia yang bertaqwa inilah yang banyak dilupakan manusia, sehingga ukuran kemajuan atau ukuran kesejahteraan hidup diukur dengan paradigma materi. Lupa bahwa manusia itu bukan hanya dari unsur materi saja, tetapi manusia punya nurani yang harus diperhatikan, yang harus dibina sehingga pantas untuk menjadi manusia yang terbaik. Oleh karena itu Ramadhan hadir di tengah-tengah kita dalam rangka untuk menjadikan umat Islam sebagai umat terbaik yang layak memimpin dunia ini.
Di dalam bulan Ramadhan banyak sekali kebajikan ilahi yang harus kita dapatkan, sehingga kita keluar dari bulan Ramadhan ini benar-benar menjadi manusia terbaik, manusia yang berkualitas, manusia yang berprestasi. Oleh karena itu marilah kita berupaya benar-beanr memahami puasa itu sebagaimana yang diharapkan Allah Swt.
Pertama, puasa membentuk manusia yang mengoptimalkan kontrol diri (self control). Mengapa? Karena puasa sangat terkait dengan keimanan seseorang. Seseorang bisa saja mengatakan dirinya sedang berpuasa, sekalipun sebenarnya tidak. Oleh karena itu puasa disebut ‘ibaadah sirriyyah (ibadah yang bersifat rahasia). Rahasia antara seorang hamba dengan Al-Kholiq. Sampai-sampai Allah Swt. mengatakan dalam sebuah hadits Qudsi yang sering kita dengar “Kulluu ‘amali ibnu aadama lahu illash-shiyaam. Fa innahu lii wa ana ajzii bihi (setiap amal manusia untuk dirinya sendiri, kecuali puasa. Sesungguhnya puasa itu untuk aku. Dan akulah yang membalasnya)”. Pertanyaannya adalah apakah amal selain puasa tidak dibalas Allah? Dibalas. Tetapi kenapa dalam masalah puasa Allah menegaskan bahwa Dia yang akan membalasnya sehingga seolah-olah amal yang lain itu bukan Allah yang membalasnya? Ini merupakan isyarat Rabbaniyah bahwa amal manusia yang bernama ash-shiyam benar-benar insya Allah akan dijamin diterima oleh Allah Swt. Apakah yang lain tidak dijamin? Ini karena puasa itu adalah ibadah sirriiyyah, dimana orang tidak mengetahui dan tidak melihat ketika dia berpuasa. karean ketika kita berpuasa, tidak ada orang lain yang tahu. Maka ibadah yang sirriyyah itu adaah sangat dekat dengan keikhlasan. Dan syarat agar suatu amal itu diterima oleh Allah, selain harus benar sesuai dengan ajaaran Rasulullah Saw., harus ikhlas. Makanya kalau ingin menjadi orang yang populer, tidak bisa melewati pintu puasa. Kalau terkenal sebagai seorang mubaligh, bisa. Terkenal menjadi qori’ dan qori’ah, bisa. Terkenal menjadi politikus, bisa. Dan itu semuanya sangat rawan dengan riya’, dan riya’ itu menjadikan amal tidak diterima oleh Allah Swt. Itulah sebabnya mengapa dalam kaitannya dengan puasa ini Allah menegaskan bahwa Dia sendiri yang akan membalasnya. Inilah yang dikatakan bahwa puasa akan melatih kita untuk mempunyai tingkat kontrol yang tinggi, baik ketika kita menjadi seorang pemimpin, atau karyawan, ulama’ atau yang lainnya. Kita tidak merasa dikontrol oleh yang lainnya, akan tetapi yang terpentinga dalah bahwa kita sadar bahwa kita dikontrol oleh Allah Swt.
Yang kedua, lembaga shiyam ini mendorong kita agar kita agar obsesi kita tentang kehidupan akherat itu lebih dominan daripada obsesi dunia. Jadi obsesi ukhrowi kita, agar kita menjadi hamba Allah yang akan mendapatkan kenikmatan abadi, itu harus lebih dominan daripada kesenangan yang sifatnya sementara. Karena seluruh kenikmatan yang ada di dunia ini, nikmat apa pun namanya, harta, pangkat, dan sebagainya itu semuanya bersifat sementara. Makanya dalam bahasa Al-Qur’an kenikmatan dunia itu tidak disebut nikmat, akan tetapi disebut mata’. Mata’ itu arti adalah maa yatamatta’u bihil insan tsumma yazulu qoliilan-qoliilan (mata’ adalah sesuatu yang disukai oleh manusia, akan tetapi sedikit demi sedikit akan hilang)”. Kalau kita ditakdirkan Allah mempunyai istri yang sangat cantik, ketika sudah berusai 60 tahun, maka kecantikannya pasti akan luntur, sehingga mungkin kita berpikir mencari yang masih muda lagi. Kenapa? karena kenikmatan dunia itu pasti ada batasnya. Ini adalah halyang manusiawi. Puasa itu melatih kita agar obsesi yang ada dalam diri kita itu obsesi yang tentang kehidupan yang abadi di akhirat. Makanya makanan, minuman, istri, dan semua yang halal itu kita gapai dalam rangka untuk mendapatkan kenikmatan yang abadi.
Di negara kita yang sedang terkena krisis multi dimensional ini dan dipenuhi dengan kerusuhan, disebabkan karena banyak manusia di negara ini ytang obsesinya bukan obsesi ukhrowi. Adaorang yang ingin menjatuhkan orang lain, ada orang yang khawatir kalau-kalau dijatuhkan. Kalau obsesi duniawi ini dominan, bisa-bisa kita akan kehilangan kehidupan ukhrowi kita. Ketika kita memasuki bilan Ramadhan, maka kita akan ditarbiyah oleh Allah agar obsesi kit aadalah obsesi ukhrowi. Namun ini bukan berarti kehidupan duniawi dilarang. Akan tetapi duniawi itu bukan yang dominan dalam kehidupan kita. Makanya kita diajarkan untuk berdo’a “Walaa taj’al mushiibatana fii diinina, walaa taj’aliddun-yaa akbaro hammina (jangan jadikan dunia sebagai obsesi terbesar dalam kehidupan kami), walaa mablagho ‘ilmina, walaa ilannaari mashiirona. Do’a ini sering dibaca, akan tetapi dalam perbuatannya warnanya lain.
Yang ketiga, dari lembaga shiyam ini akan melahirkan manusia-manusia yang benar-benanr mempunyai al-hasasiyyah al-ijtima’iyyah (mempunyai kepekaan sosial yang tinggi). Dari mana bisa kita ketahui? Ketika kita berpuasa sunnah, baik Senin-Kamis atau puasa ayyamul bidh, kita merasakan berpuasa sendirian. Dibandingkan dengan puasa di bulan Ramadhan, puasa sunnah ini perasaan kita lebih berat, karena dilaksanakan sendirian. Ini yang harus kita perhatikan, sekarang ini bangsa kita (sebagian besar) sudah kehilangan kepekaan sosial. Kalau ada tindak kejahatan di tempat keramaian, sangat langka kita temukan orang yang peduli dengan membantu melawan penjahat. Kalau ada wanita yang sangat cantik lewat dan hampir semua mata melihat, apakah ada orang yang memprotes hal itu? Padahal, bukankah wanita itu isterinya orang yang haram untuk dipelototi? Bahkan perbuatan seperti ini kadangkala diberikan pembenaran dengan dalih ‘mubadzir’ kalau tidak dilihat. Ini menunjukkan rendahnya sensitifitas keimanan (hasasiyah imaniyah). Yang ada adalah kerawanan dalam kehidupan sosial, karena kemaksiatan sudah melembaga dan orang diam saja ketika melihatnya. Padahal di masa Rasulullah SAW, orang tidak akan tinggal diam ketika melihta suatu kemungkaran. Bahkan ketika jauh setelah kehidupan Rasulullah, baik di jaman tabi’in maupun tabi’it tabi’in, tetapi mereka masih komitmen dengan ajaran Allah, maka sensitifitas sosial itu sangat tinggi. Misalnya, di jaman dahulu kalau kita shalat jama’ah di masjid, kemudian kita melihat ada tetangga atau saudara kita tidak datang, maka setelah selesai shalat, semua jama’ah langsung mendatangi orang yang tidak shalat berjama’ah tadi untuk menziarahinya, seolah-olah orang yang tidak shalat jama’ah itu adalh orang yang mati sehingga perlu dita’ziyahi. Kalau seandainya kita tidak shalat jama’ah dan kemudia kita dita’ziyahi, maka kita akan termotivasi untuk selalu shalat jama’ah. Dan shalat jama’ah adalah ibadah yang sangat terkait dengan sensitifitas sosial. Ironisnya di negara ini ketika ada orang diganggu, dicopet, atau digoda, yang lainnya diam saja, dan bisikan yang ada dalam dirinya adalah ‘yang penting saya selamat’. Orang seperti ini adalah orang yang mati dalam kehidupannya, karena bahasa masing-masing itu bahasa akhirat, bahasa ketika kiamat tiba, sehingga orang sibuk dengan urusannya masing-masing. Suami lari dari istri dan anaknya, anak lari dari orang tuanya. Allah berfirman:
“Dan apabila datang suara yang memekakkan (tiupan sangkalala yang kedua). Pada hari ketika manusia lari dari saudaranya, dari ibu dan bapaknya, dari istri dan anak-anaknya. Setiap orang dari mereka pada hari itu mempunyai urusan yang cukup menyibukkannya” (QS ‘Abasa: 33-37).
Jadi kehidupan masing-masing itu adalah kehidupan akherat. Akan tetapi sekarang ini sudah ada di dunia., Berarti seolah-olah sebagian masyarakat sudah merindukan kematian, padahal masih hidup. Makanya banyak kebajikan yang tidak jalan, keadilan tidak tegak. Dalam kondisi demikian, puasa hadir di tengah-tengah kita untuk memperlihatkan bagaimana Islam itu benar-benar mempunyai kepedulian terhadap kehiduapan bermasyarakat.
Pada masa Rasulullah Saw., ada juga kemaksiatan. Adajuga shahabat yang berbuat maksiat, karena mereka bukan malaikat. Sekalipunsebaik-baik generasi adalah genarasi Rasulullah Saw., akan tetapi ada saja yang berbuat maksiat. Adayang pernah mencuri, ada yang pernah berbuat zina dan yang lainnya. Akan tetapi kriminalitas itu masih sangat kecil sekali, sehingga jarang ditemui. Itu pun bersifat pribadi dan dilakukan dengan sembunyi-sembunyi. Ironisnya, sekarang maksiat itu dilakukan ramai-ramai dan secara terang-terangan tanpa malu-malu. Sehingga yang benar itu tertutup, keamanan tidak nampak. Yang nampak adalah sesuatu yang menakutkan. Bahkan kadang-kadang sampai di tempat yang suci seperti masjid, kadang-kadang orang tidak bisa khusyu’ shalatnya karena takut sepatu atau sandalnya hilang. Kalau di masjid saja orang masih tidak khusyu’ beribadah karena khawatir menjadi korban kejahatan, bagaimana di tempat yang lain? Ini semua karena bayak orang yang telah kehilangan kepedulian sosialnya. Inilah bedanya antara jaman kita dengan jaman Rasulullah Saw. Bahkan di masa Rasulullah Saw., ketika ada seorang berbuat zina dan kemudian dia hamil, dia sendiri kemudian bertaubat dan malah dia sendirilah yang melakukan perbuatannya itu kepada Rasulullah Saw., karena ketika dia berzina, itu terjadi karena kelemahamn iamnnya. Dalam hadits dijelaskan “Laa yadri azzani ila yazni wahuwa mu’min (tidaklah seseorang berani berbuat zina ketika zina, sementara dia dalam keadaan beriman)”. Ketika seorang perempuan tadi berzina, dan setelah itu ia sadar bahwa ia telah berbuat dosa, langsung dia datang kepada Rasulullah Saw. minta agar dia dihukum sesuai dengan ajaran Islam. mari kita merenung. Memang benar bahwa pada masa Raulullah pun ada orang yang berbuat salah. Akan tetapi ketika ada diantara mereka yang berbuat salah, dia langsung mengaku dan minta dihukum, padahal oranmg lain tidak tahu. Sekarang bagaimana kondisinya? Jadi kalau kita bersalah, hendaklah kita datang untuk minta dihukum. Kenapa? Karena seorang mukmin yang benar-benar beriman, benar-benar yakin bahwa siksa akhirat itu lebih pedih. Dengan demikian, benar-benar akan efisien tenaga itu. Kalau seandainya semua orang sama dengan wanita yang bertaubat ini, maka aparat hukum tidak perlu capai-capai.
Ash-shiyam secara bahasa artinya adalah al-habsu (menahan diri), menahan diri dari seluruh bentuk kemaksiatan. Kalau setiap kita menahan diri, jangankan terhadap yang haram, yang mubah saja akan kita tinggalkan. Makanan, minuman, istri itukan boleh. Akan tetapi di bulan Ramadhan pada siang harinya semua bisa kita tahan. Kalau yang halal saja bisa kita tahan, apalagi yang haram? Oleh karena itu jangan dalam berpuasa malah terbalik, yaitu yang mubah ditinggalkan tetapi yang haram dilakukan. Makanan, minuman ditinggalkan, ghibah dilakukan, korupsi jalan terus, dengan alasan untuk persiapan lebaran.
Inilah kepekaan-kepekaan ruhani yang benar-beanr mengalir dalam setiap diri kita ketika kita berpuasa sebagaimana yang dikehendaki Allah Swt. Dan jangan sampai ada di antara kita yang menganggap bahwa puasa itu berat. Bahkan Rasulullah Saw. dan para shahabat serta para tabi’in, banyak yang menggunakan Ramadhan untuk berjihad di jalan Allah Swt. Perang Badar, Perang Fathu Makkah, Perang ‘Iinu Jaalut yang terjadi pada abad ke-7 Hijriyah, dimana tentara-tentara Islam di bawah pimpinan mamaalik (jama’ dari mamluk) bisa mengalahkan tentara-tentara salib, terjadi di bulan Ramadhan. Saking hebatnya kemenangan yang dicapai umat Islam pada bulan Ramadhan, Allah Swt. mengabadikannya dalam Al-Qur’an, sebagaimana yang terdapat pada QS Al-Anfal, dimana perang Badar dikatakan sebagai yaumal furqoon, sebagaimana yang terdapat pada firmanNya:
“Ketahuilah, sesungguhnya apa saja yang dapat kamu peroleh sebagai rampasan perang, maka sesungguhnya seperlima untuk Allah, Rasul, kerabat Rasul, anak-anak yatim, orang-orang miskin dan Ibnu sabil, jika kamu beriman kepada Allah dan kepada apa yang Kami turunkan kepada hamba Kami (Muhammad) dihari Furqaan, yaitu di hari bertemunya dua pasukan. Dan Allah Maha Penguasa segala sesuatu” (QS Al-Anfal: 41).
Pasukan kebenaran yang jumlahnya sedikit, tetapi dimenangkan oleh Allah Swt. dalam melawan kekuatan bathil yang mempunyai kekuatan besar dan jumlah tentara yang sangat banyak. Oleh karena itu Ramadhan yang akan kita lalui ini semoga mengantarkan kita pada kemenenagan, kemenangan melawan hawa nafsu, kemenangan bangsa ini dalam melawan krisis, kemenangan umat Islam dalam melawan perselisihan, percekcokan antara sesama umat Islam, kemenangan bangsa ini dalam menghadapi konspirasi dunia internasional yang dimotori oleh Yahudi, yang mereka tidak senang melihat Indonesia maju karena negara ini adalah negara Islam. oleh karena itu marilah kita jadikan Ramadhan ini kita jadikan momentum Islam untuk kembali kepada Allah sehingga mencapai kemenangan yang hakiki. Wallahu a’lam bishshawab.
Tips Mengecek apakah terpasang LCD atau TDK
if (lcd_init(16)!=0)
{
PORTB.5=0; //terpasang LCD 16×2 , led indikator ON
}
else
{
PORTB.5=1; //tdk terpasang LCD 16×2, led indikator OFF
}
Pengetahuan Dasar Menyolder
Tujuan penyolderan :
-Penyambungan elektrikal
Menghubungkan logam untuk mendapatkan aliran listrik
-Penyambungan mekanikal
Menghubungkan 2 logam,untuk memantapkan posisi kedua bagian
-Efektifitas perlindungan
Mencegah bagian tersebut dari kebocoran atau masuknya air,udara,minyak pada hasil penyolderan.
-Lain – lain
Mencegah karat dengan melapisi permukaan logam dengan penyolderan
Sebelumnya usahakan panas ujung solder sekitar 380 derajat celcius plus minus 20 derajat .
Langkah langkah menyolder yang baik yaitu
1. Memanaskan
Tempelkan ujung solder iron antara kaki komponen dan tembaga pd pcb (pattern).
3. Tempelkan ujung kawat timah kekaki komponen sampai mencair secukupnya.
4. Tarik/lepaskan kawat timah
5. Setelah timah menyebar , tarik solder iron.
6. Dinginkan hasil solder, selesai.
Hasil penyolderan yang baik spt tampak berikut ini
Hasil penyolderan seperti gunung,seimbang disetiap sisinya.
Berikut ini animasi tahapan penyolderan secara berulang-ulang.
Hasil penyolderan yang baik antara lain sbb
1. Timah tidak berlebih ditandai dg timah hasil solder terlihat menggelembung (over solder)
2. Timah tdk kekurangan (poor solder)
3, Hasil solder tdk kotor.
4. Semua tembaga sekelililng kaki komponen tertutup timah.
5. Timah terlihat mengkilat karna saat dipanaskan timah cukup ” matang”.