Client Chat

Client Chat

June 07, 2023

 import socket

import random

from threading import Thread

from datetime import datetime

from colorama import Fore, init, Back

init()

colors = [Fore.BLUE, Fore.CYAN, Fore.GREEN, Fore.LIGHTBLACK_EX,

         Fore.LIGHTBLUE_EX, Fore.LIGHTCYAN_EX, Fore.LIGHTGREEN_EX,

         Fore.LIGHTMAGENTA_EX, Fore.LIGHTRED_EX, Fore.LIGHTWHITE_EX,

         Fore.LIGHTYELLOW_EX, Fore.MAGENTA, Fore.RED, Fore.WHITE, Fore.YELLOW]

client_color = random.choice(colors)

SERVER_IP = "127.0.0.1"

SERVER_PORT = 5002

seprator_token = "<SEP>"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

print(f"[*] Connecting to {SERVER_IP}:{SERVER_PORT}...")

s.connect((SERVER_IP, SERVER_PORT))

print("[+] Connected.")

name = input("Masukkan Nama Anda: ")

def listen_for_messages():

        while True:

                message = s.recv(1024).decode()

                print("\n" + message)

t = Thread(target=listen_for_messages)

t.daemon = True

t.start()

while True:

        to_send = input()

        if to_send.lower() == 'q':

                break

        date_now = datetime.now().strftime('%Y-%d %H:%M:%S')

        to_send = f"{client_color}[{date_now}] {name}{seprator_token}{to_send}{Fore.RESET}"

        s.send(to_send.encode())

s.close()


Server Chat

Server Chat

June 07, 2023

 import socket

from threading import Thread

SERVER_IP       = "127.0.0.1"

SERVER_PORT     = 5002

separator_token = "<SEP>"

client_sockets  = set()

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

s.bind((SERVER_IP, SERVER_PORT))

s.listen(5)

print(f"[*] Listening as {SERVER_IP}:{SERVER_PORT}")

def listen_for_client(cs):

    while True:

        try:

                msg = cs.recv(1024).decode()

        except Exception as e:

                print(f"[!] Error: {e}")

                client_socket.remove(cs)

        else:

                msg = msg.replace(separator_token, ": ")

        for client_socket in client_sockets:

                client_socket.send(msg.encode())

while True:

        client_socket, client_address = s.accept()

        print(f"[+] {client_address} connected.")

        client_sockets.add(client_socket)

        t = Thread(target=listen_for_client, args=(client_socket,))

        t.daemon = True

        t.start()

for cs in client_sockets:

        cs.close()

        s.close                                           


TUTORIAL ARDUINO : Mesin Pencacah Pakan Ternak Berbasis Arduino

TUTORIAL ARDUINO : Mesin Pencacah Pakan Ternak Berbasis Arduino

April 30, 2023

 //////////////////////////////////////////////////////////////////////

//  Program ini dibuat oleh Harun Syahputra ( Putraganesha )       //

//  ========================================================      //

//     Program ini dibuat untuk Sistem Kendali Mesin Pencacah    //

//  Pakan ternak berbasis Arduino dan HC-SR04 dengan Output     //

//  Relay sebagai Switch.                                      //

//  ========================================================  //

//  Website  : WWW.V-TECH.MRA.MY.ID                          //

Tutorial Arduino, Program arduino Mesin Pencacah Pakan Ternak






//  Whatsapp : 0813 7036 0770                               //

//  E-MAIL   : putraganesha777@gmail.com                   //   

////////////////////////////////////////////////////////////


#define pintriger 3

#define pinecho 2

#define pateni 7

#define LedIndikator 5    


long durasi;

float cm, inch;


void setup()

{

  Serial.begin(9600);

  pinMode (pintriger, OUTPUT);

  pinMode (pinecho, INPUT);

  pinMode (pateni, OUTPUT);

  pinMode (LedIndikator, OUTPUT );

}


void loop()

{

  digitalWrite (pintriger, 0);

  delayMicroseconds(2);

  digitalWrite (pintriger, 1);

  delayMicroseconds(10);

  digitalWrite (pintriger, 0);

  delayMicroseconds(2);

  

  durasi = pulseIn(pinecho, HIGH);

  cm = (durasi * 0.0343)/2;

  inch = cm / 2.54;


  if (cm >= 30){ // jika jarak lebih dari 30cm

  digitalWrite(pateni, 0); // relay aktif

  digitalWrite(LedIndikator, 0); // lampu indikator tanda alat bekerja on

  } else { // selain itu maka

  digitalWrite(pateni, 1); // relay mati

  digitalWrite(LedIndikator , 1); // lampu indikator tanda alat bekerja off

  }

  Serial.print(cm);

  Serial.print(" Cm");

  Serial.print("\t");

  Serial.print(inch);

  Serial.println(" Inch");

  delay(50);

}