Jumat, 24 September 2021

mysql comand

perintah pada mysql 
agar bisa diakses dari lan komputer diluar server
tambahkan ip server karenq kalo belum ditambahkan akan di localhost saja
berikan ijin akses dari ip lan diluar hosrt dengan cara grant all on * .* to root@'iplankomptrluar' identified 'paswordroot'
hapus hak akses dengan drop user namauser@ipaksesnya
1.masuk database =mysql --username=root --password =amin1234
2 membuat databases baru= create database namadatabase
3 melihat database yang ada=show databases
4 masuk databases =use namadatabases
5 membuat table didatabase= create table tabelku(nama varchar(20) NOT NULL PRIMARI KEY,umur int(4));
5 melihat strukture table= describe namatable
6 masukan data ke table= insert into namatable values(isi1 ,isi2);
7 melihat isi table = select * from namatable
8 melihat isi table dari kolom tertentu = select namacolomnya from namatable 
9 melihat baris dengan no id atau nama ywng afa di komponennya = select * from tableku where id=3;
menambah user pada mysql
1 create user nama@localhost identified by 'passwordnya';
2 melihat hak akses pengguna =show grants for nama@localhost;
3 hak pada akun pengguna meliputi= 
a.all privelege hak istimewa bisa semuanya
b create bisa membuat database dan table
c drop bisa hapus database dan table
d delete hapus dari table saja
e insert masukan data ke table saja
f select membaca table saja
g update memperbarui isi table
3.memberikan hak
GRANT permission1, permission2 ON
 nama_database.nama_tabel TO
 'user_database'@'localhost';
4.
  • Memberikan semua hak istimewa ke akun pengguna untuk database tertentu :
    GRANT ALL PRIVILEGES ON nama_database.* TO 'user_database'@'localhost';
  • Memberikan semua hak istimewa ke akun pengguna untuk semua database :
    GRANT ALL PRIVILEGES ON *.* TO 
  • 'user_database'@'localhost';
  • Berikan semua hak istimewa ke akun pengguna untuk tabel tertentu dari database:
    GRANT ALL PRIVILEGES ON n
  • ama_database.nama_tabel TO 'user_database'@'localhost';
  • Berikan hanya beberapa hak istimewa ke akun pengguna untuk database tertentu:
    GRANT SELECT, INSERT, DELETE ON nama_database.* TO user_database@'localhost';
  • mencabut semua hak user DROP USER 'user_database'@'localhost'

Rabu, 23 Juni 2021

parameter seting grbl

$$ lihat pengatiran grbl
$x=val simpan pengaturan grbl
$0 langkah pulsa untuk pulsa pulsa stepper 
$1 penundaan waktu menganggur dlm milidetik.setiap stepper melakukan pergerakan dan berhenti stepper akan menunda mematikan daya ke stepper.anda bis selalu menjaga agar stepper tidak los dengan memberikan nilai ini 255
$2 sinyal pulsa biasanya akan dimulai dari rendah ke tinggi dengan panjang pulsa di atir dengan $0,pulsa ini dapat diatur dimasing2 pin pulse steppernya dengan nilao biner
x y z kalo nilai bin nya 111 maka pulse dibalik semua di sumbu masing2
$3 membalikan arah stepper  nilainy sama dengan $2
$4 untuk meng membalikan pin yang digunakan untuk enablekan steper driver cukup ketik $4=1 maka pin enable akan beru ah
$5 untuk saklar pada endstop defaulnya akan aktif triger apabila dapat sinyal low karena sudah pullup di internalnya kalp mau balikan tinggal ganti ini dengan nai $5=1
$6 invert pin probe
$10 laporan setatus mesin,default mesin mengirimkan data lokasi dan laporan setatus dimirim.ada tambahan lainnya untk melihat setatus saat sedang di seting misalnya denhan urutan zyx jika anda ingin mengaktifkan laporan tambahan cukup masukan nilainya dan tambahkan misa untuk tambhan laporan posisi mesin dan posisi kerja $10=3 berikut data kodenya 
posisi mesin 1
posisi keeja 2
penyangga berencana 4
penyangga rx 8
batas pin 16
$11 belok pada saat motong dlm mm
misal saat mesn akan belok maka perlu melambat agar tidak bablasen nilai lebih rendah akan lebih hati2 dan sebaliknha
$12 toleransi untuk kehalusan potong longkaran semakin kecil nilai akan semakin halus defunya 0.02
$13 laporan waktu nyata daporkan bisa dengan ichi atau mm $13=0 unk mm
$20  batas kerja perjalanan sumbu dengam sofwatre anda bisa membatasi maksimum jarak sumbu bisa berjalan.pengatiran ini membutuhkan data homming $20=1 aktif
$21 batas keras dengan saklar diujung sumbu aktif 1.batas keras itu kritis maka akan mematikan stepper dan semuannya grbl jg kehilangan k
jejak
$22 siklus pulang bol
ini digunakan pada saat anda sedang bekerja dan lostrik mati maka data awal mulai mengerjakan bisa di ambil lagi sehinnga kita bisa memulai ulang pekerjaan dengan titik awal yang sama dengan sebelumnya.saratnya adalah mengatur sakalr di ujung sumbu dengan benar.data awal disompan di eeprom....ada banyak konfigurasi di program dengan mengedi di header file config.h
$23 homing invert misal anda pasang saklar di awal sumbu yang boasa diujung sumbu anda bisa merubahnya nai ini sama dengan nilai invert beberapa inverr lainnya
$24 umpan rumah homong....misal mesin anda akan bergerak kearah positif sampai menemulan saklar homong dan pada saat mbalik maka percepatan akan melambat disini bisa diatur dengan merubah nilai ini
$25 pada saat menvari saklar percwptan ino bisa diatir dengan nilai disini
$26 debouncing homing saklar biasanya akan debounchng saat aktif pada saat menyentuh saklar maka akan dijeda dengan nilai ini dlm mili detik
$27 pada saat selesai maka saat saklar kesentuh akan merusak homingnya dan aka merubah sehalanya maka $27 perlu diaktifkan
$120 akselarasi yaitu percepatan untuk ke laju maksimum lebih besae nilainya lebih vepat
perintah $ lainnya
$# lihat parameter kode g54 g 59 posisi yang ditentukan sebelumnya g28 g30 ofset koordinat di g92 panjang pahat dan probing
yang tidak disimpan adalah data panjang pahat. data probing
koordinat g54 dan g59 dapat dirubah melalui perintah g10 L2 Px 
g28 g30 melalui g28.1 dan g30.1
saat s# dipanggi akan mengeluarkan panjang pahat dan probing
$G status parser gcode.........belum paham
$N lihat blok start up ada 2 kode yang bosa dijalankan pada saat start up dengan menulis $N0= perintahnya dan $N1=
hati2 menyimpan perintah dengan g0 /1 g2 /3 g28/30 karena pada saat reset  start up akan membahayakan msin dan janga  perinta mengandung eeprom sprt g10/28.1/30.1
jika anda mengaktifkam homming maka akan menjalankan hominh dulu bari kode in
$c perijsa mode g
menjalankan kode gcode tapi tidak menjalankan apapun ini hanya u tuk mpde chek saja
$x bunuh kunci alarm
$RST=$ menghapus dan mengembalikan setelan default
$RST=#Menghapus dan menihilkan semua offset koordinat kerja G54-G59 dan posisi G28/30 yang disimpan di EEPROM. Ini umumnya nilai yang terlihat pada $#cetakan parameter. Ini memberikan cara mudah untuk menghapusnya tanpa harus melakukannya secara manual untuk setiap set dengan a G20 L2/20atau G28.1/30.1perintah
$RST=*Ini menghapus dan memulihkan semua data EEPROM yang digunakan oleh Grbl. Ini termasuk$$pengaturan, $#parameter, $Nbaris startup, dan$Imembangun info string. Perhatikan bahwa ini tidak menghapus seluruh EEPROM, hanya area data yang digunakan Grbl. Untuk melakukan penghapusan total, 
perintah realtime kapan aja


Kamis, 29 April 2021

seting jam ver1.0

cara seting jam masjid versi 1.0

ada 3 tombol

1.atas

2.tengah

3.bawah

*seting jadwal sholat

untul seting jadwal sholat pertama lihat ditampilan yang tidak pas jadwalnya
apa perlu ditambah apa dikurangi

misalnya subuh aturan jam 04:39 tapi ditampilan jam 04:33 maka perlu ditambah 6 6 poin

1.tekann dan tahan tombol atas sampai bunyi teet

2.cari subuh dengan tombol tengah

3.tam bahkan nilai subuh 6 poin.tombol atas untuk menambah nilai tambah poin

4.tom bol bawah untuk mengurangi nilai poin

5.untuk keluar tekan tombol tengah berulwng sampai tampilan utama

*untuk merubah jam tanggal dan tahun

1.tekann dan tahan tombol tengah sampai bunyi teet

2.tekan atas untuk menambah 
3.tekan bawah untuk mengurangi
4.tekan tengah untuk memilih tanggal jam atau tahun
5.untuk keluar tekan tombol tengah sampai menu utama
*merubah lamanya waktu antara dzan dan iqomah 
1.tekan dan tahan tombol bawah sampai bunyi teet 
2.pilih jadwal mana yang akan dirubah dengan tombol tengah
3 atas untuk menambah nilai poin bawah untuk mengurangi nilai poin
4.tekan tengah berulang kali untuk keluar sampai tampilan utama

Minggu, 11 April 2021

timer on stm32f103

1.slave mode
2.triger source
3.clock source
4.chanel 1
5.combinat chanel
6.aktif break input
7.use etr as cleaning sorce
8.xor aktivation
9.one pulse mode


1.SLAVE MODE
a.external clock mode
b.reset mode
c.gated mode
d.triger mode

A.external clock mode
B.reset mode
C.gated mode
D.triger mode

2.TRIGER SOURCE

3.CLOCK SOURCE
4.CHANEL 1

5.
6.
7.
8.
9.



Rabu, 13 Januari 2021

mit app ivetor user interface

 BUTTON

event:

click:

jika diklik akan menjalankan fungsi dibawahnya

Properties

BackgroundColor mengembalikan nilai background color

Enabled  mengaktifkan atau nonaktifkan button kembalian boolean

FontBold aktifkan bold boolean

FontItalic aktifkan italic boolean

FontSize mengembalikan number

FontTypeface mengembalikan number desainer only

Height number block only

HeightPercent number write only block only

Image text

Shape number

ShowFeedback boolean fedbek tombol ditekan











Minggu, 03 Januari 2021

esp websoket

 pada tutorial sekasrang saya akan membahas tentang websoket ,web soket sebenernya mirip dengan webserfer pada umumnya hanya saja pada websoket memungkinkan untuk membuat server bisa menirim pembaruan tanpa si client memintanya jadi kalo mau melihat setatus pada web server maka kita perlu merefresnya tapi kalo menggunakan soket kita tak perlu merevfresnya dan akan otomatis diperbarui oleh server itu sendiri


saya akan implementasikan dengan esp8266 dimana ini akan menjadi server nya nanti sebagai pengontrol pada led gpio nya

langsung saja saya akan sertakann kodesnya disini

/*********
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/esp8266-nodemcu-websocket-server-arduino/
  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.
*********/

// Import required libraries
#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>

// Replace with your network credentials
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

bool ledState = 0;
const int ledPin = 2;

// Create AsyncWebServer object on port 80
AsyncWebServer server(80);
AsyncWebSocket ws("/ws");

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">
  <link rel="icon" href="data:,">
  <style>
  html {
    font-family: Arial, Helvetica, sans-serif;
    text-align: center;
  }
  h1 {
    font-size: 1.8rem;
    color: white;
  }
  h2{
    font-size: 1.5rem;
    font-weight: bold;
    color: #143642;
  }
  .topnav {
    overflow: hidden;
    background-color: #143642;
  }
  body {
    margin: 0;
  }
  .content {
    padding: 30px;
    max-width: 600px;
    margin: 0 auto;
  }
  .card {
    background-color: #F8F7F9;;
    box-shadow: 2px 2px 12px 1px rgba(140,140,140,.5);
    padding-top:10px;
    padding-bottom:20px;
  }
  .button {
    padding: 15px 50px;
    font-size: 24px;
    text-align: center;
    outline: none;
    color: #fff;
    background-color: #0f8b8d;
    border: none;
    border-radius: 5px;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
   }
   /*.button:hover {background-color: #0f8b8d}*/
   .button:active {
     background-color: #0f8b8d;
     box-shadow: 2 2px #CDCDCD;
     transform: translateY(2px);
   }
   .state {
     font-size: 1.5rem;
     color:#8c8c8c;
     font-weight: bold;
   }
  </style>
<title>ESP Web Server</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="data:,">
</head>
<body>
  <div class="topnav">
    <h1>ESP WebSocket Server</h1>
  </div>
  <div class="content">
    <div class="card">
      <h2>Output - GPIO 2</h2>
      <p class="state">state: <span id="state">%STATE%</span></p>
      <p><button id="button" class="button">Toggle</button></p>
    </div>
  </div>
<script>
  var gateway = `ws://${window.location.hostname}/ws`;
  var websocket;
  window.addEventListener('load', onLoad);
  function initWebSocket() {
    console.log('Trying to open a WebSocket connection...');
    websocket = new WebSocket(gateway);
    websocket.onopen    = onOpen;
    websocket.onclose   = onClose;
    websocket.onmessage = onMessage; // <-- add this line
  }
  function onOpen(event) {
    console.log('Connection opened');
  }
  function onClose(event) {
    console.log('Connection closed');
    setTimeout(initWebSocket, 2000);
  }
  function onMessage(event) {
    var state;
    if (event.data == "1"){
      state = "ON";
    }
    else{
      state = "OFF";
    }
    document.getElementById('state').innerHTML = state;
  }
  function onLoad(event) {
    initWebSocket();
    initButton();
  }
  function initButton() {
    document.getElementById('button').addEventListener('click', toggle);
  }
  function toggle(){
    websocket.send('toggle');
  }
</script>
</body>
</html>
)rawliteral";

void notifyClients() {
  ws.textAll(String(ledState));
}

void handleWebSocketMessage(void *arg, uint8_t *data, size_t len) {
  AwsFrameInfo *info = (AwsFrameInfo*)arg;
  if (info->final && info->index == 0 && info->len == len && info->opcode == WS_TEXT) {
    data[len] = 0;
    if (strcmp((char*)data, "toggle") == 0) {
      ledState = !ledState;
      notifyClients();
    }
  }
}

void onEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type,
             void *arg, uint8_t *data, size_t len) {
    switch (type) {
      case WS_EVT_CONNECT:
        Serial.printf("WebSocket client #%u connected from %s\n", client->id(), client->remoteIP().toString().c_str());
        break;
      case WS_EVT_DISCONNECT:
        Serial.printf("WebSocket client #%u disconnected\n", client->id());
        break;
      case WS_EVT_DATA:
        handleWebSocketMessage(arg, data, len);
        break;
      case WS_EVT_PONG:
      case WS_EVT_ERROR:
        break;
  }
}

void initWebSocket() {
  ws.onEvent(onEvent);
  server.addHandler(&ws);
}

String processor(const String& var){
  Serial.println(var);
  if(var == "STATE"){
    if (ledState){
      return "ON";
    }
    else{
      return "OFF";
    }
  }
}

void setup(){
  // Serial port for debugging purposes
  Serial.begin(115200);

  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  
  // Connect to Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }

  // Print ESP Local IP Address
  Serial.println(WiFi.localIP());

  initWebSocket();

  // Route for root / web page
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/html", index_html, processor);
  });

  // Start server
  server.begin();
}

void loop() {
  ws.cleanupClients();
  digitalWrite(ledPin, ledState);
}
sebeslumnya saya akan mrmbeitahukan kepada anda