Python- Analog control
CDSID: lvishwan
1
LEVEL -6
viswa
2
7/12/2019
Contents
System components
VOLUME
from ctypes import cast, POINTER
from comtypes import CLSCTX_ALL
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume
devices = AudioUtilities.GetSpeakers()
interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
volume = cast(interface, POINTER(IAudioEndpointVolume))
# Control volume
volume.SetMasterVolumeLevel(-0.0, None) #max
#volume.SetMasterVolumeLevel(-5.0, None) #72%
#volume.SetMasterVolumeLevel(-10.0, None) #51%
POWER
#Shutdown
import os
os.system("shutdown /s /t 1")
#Restart
os.system("shutdown /r /t 1")
#Lock
os.system("shutdown -l")
(or)
import ctypes
ctypes.windll.user32.LockWorkStation()
Screen Brightness
import screen_brightness_control as sbc
current_brightness = sbc.get_brightness()
print(current_brightness)
#set brightness to 50%
sbc.set_brightness(100)
SERIAL PORT
module: pyserial
import serial
import serial.tools.list_ports
import time
from PyQt5 import QtGui,QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
ports = serial.tools.list_ports.comports()
comport=''
for port in ports:
print(str(port))
if 'Arduino Uno' in str(port):
comport=port.name
app = QApplication([])
sit=QWidget()
sit.showMaximized()
with serial.Serial(port=comport, baudrate=9600) as serialPort:
while 1:
data = serialPort.readline()
if data:
data=''.join([data.decode('utf-8').rstrip()])
#time.sleep(1)
if data=='8132': sit.hide()
else: sit.show()
app.exec()
import serial
import serial.tools.list_ports
import time
from PyQt5 import QtGui,QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from threading import *
def work1():
ports = serial.tools.list_ports.comports()
comport=''
for port in ports:
print(str(port))
if 'Arduino Uno' in str(port):
comport=port.name
with serial.Serial(port=comport, baudrate=9600) as serialPort:
while 1:
data = serialPort.readline()
if data:
data=''.join([data.decode('utf-8').rstrip()])
#time.sleep(1)
if data=='8132': sit.hide()
else: sit.show()
app = QApplication([])
sit=QWidget()
sit.showMaximized()
t1=Thread(target=work1)
t1.start()
app.exec()
Threading:
BLUETOOTH
import bluetooth
import ctypes
target_name = "E0:13:B5:B9:9C:40"
status=False
nearby_devices = bluetooth.discover_devices(lookup_names=True)
print(len(nearby_devices))
for bdaddr,name in nearby_devices:
print(bdaddr)
if bdaddr=="E0:13:B5:B9:9C:40":
status=True
break
if status is not False:
ctypes.windll.user32.LockWorkStation()
import os
import glob
import time
from bluetooth import *
server_sock = BluetoothSocket( RFCOMM )
server_sock.bind(("",PORT_ANY))
server_sock.listen(1)
port = server_sock.getsockname()[1]
uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"
advertise_service( server_sock, "TestServer",service_id = uuid,service_classes = [ uuid, SERIAL_PORT_CLASS ],profiles = [ SERIAL_PORT_PROFILE ])
print ("Waiting for connection on RFCOMM channel %d" % port)
client_sock, client_info = server_sock.accept()
print ("Accepted connection from ", client_info)
while True:
try:
req = client_sock.recv(1024)
if len(req) == 0:break
print ("received [%s]" % req)
client_sock.send(‘xyz’’)
except IOError:pass
except KeyboardInterrupt:
print ("disconnected")
client_sock.close()
server_sock.close()
break
import serial
import serial.tools.list_ports
import time
ports = serial.tools.list_ports.comports()
comport=''
for port in ports:
print(str(port))
if 'Bluetooth' in str(port):
comport=port.name
print(comport)
serialPort = serial.Serial(port=comport, baudrate=9600, timeout=0, parity=serial.PARITY_EVEN, stopbits=1)
while 1:
data = serialPort.readline()
if data:
x=str(data).replace("b'",'').replace('\\r\\n\'','')
print(x)
## if x=='disconnect':break
## serialPort.write(b'Z')
Setting Serial port for bluetooth
WIFI
# importing the subprocess module
import subprocess
# using the check_output() for having the network term retrieval
devices = subprocess.check_output(['netsh','wlan','show','network'])
# decode it to strings
devices = devices.decode('ascii')
device s= devices.replace("\r","")
# displaying the information
print(devices)
Saved network
import winwifi
winwifi.WinWiFi.connect('Devil')
import os
wifi_name='Wi-Fi'
def enable():
os.system('netsh interface set interface "'+wifi_name+'" enabled')
def disable():
os.system('netsh interface set interface "'+wifi_name+'" disabled')
#server.py
import os
from socket import *
addr = ("192.168.0.168", 13000)
UDPSock = socket(AF_INET, SOCK_DGRAM)
UDPSock.bind(addr)
print ("Waiting to receive messages...")
while True:
(data, addr) = UDPSock.recvfrom(1024)
print ("Received message: " , data)
if data == "exit":
break
UDPSock.close()
os._exit(0)
Client connection
import os
from socket import *
UDPSock = socket(AF_INET, SOCK_DGRAM)
while True:
data = input("Enter message to send or type 'exit': ")
print(data)
UDPSock.sendto(bytes(data,'utf-8'), ("192.168.0.168", 13000))
if data == "exit":
break
UDPSock.close()
os._exit(0)
pyautogui.size()
pyautogui.position()
pyautogui.moveTo(100, 200)
pyautogui.move(0, 50)
pyautogui.click()
pyautogui.click(x=100, y=200)
pyautogui.click(button='right')
pyautogui.click(button='right', clicks=3, interval=0.25)
pyautogui.scroll(10)
pyautogui.scroll(10, x=100, y=100)
pyautogui.hscroll(10)
wins=pyautogui.getWindowsWithTitle('')
win=wins[0]
win.title
win.activate()
win.maximize()
win.minimize()
win.close()
pyautogui.hotkey('ctrl', 'g')
pyautogui.write('a2')
pyautogui.press('enter')
pyautogui.write('Hello world!')
pyautogui.hotkey('ctrl', 'f')
pyautogui.write('Hello world!')
Location
import geocoder
g = geocoder.ip('me')
print(g)
print(g.latlng)
Micro controller
-Arduino
-C++
Arduino:
Raspberry pi:
Arduino:
IR program
c++:
#include<IRremote.h>
IRrecv irrecv(11);
decode_results results;
void setup()
{Serial.begin(9600);
irrecv.enableIRIn();
digitalWrite(13, HIGH);}
void loop(){
if (irrecv.decode(&results))
{Serial.println(results.value,HEX);
irrecv.resume();}
delay(100);
}
Arduino:
Connection
#include <IRremote.h>
const int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
}
void loop() {
if (irrecv.decode(&results)) {
if (results.decode_type == NEC) {
Serial.print("NEC: ");
} else if (results.decode_type == SONY) {
Serial.print("SONY: ");
} else if (results.decode_type == RC5) {
Serial.print("RC5: ");
} else if (results.decode_type == RC6) {
Serial.print("RC6: ");
} else if (results.decode_type == UNKNOWN) {
Serial.print("UNKNOWN: ");
}
Serial.println(results.value, HEX);
irrecv.resume();
}
}
#include <IRremote.h>
const byte IR_RECEIVE_PIN =2;
void setup()
{
Serial.begin(115200);
Serial.println("IR Receive test");
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
}
void loop()
{
if (IrReceiver.decode())
{
Serial.println(IrReceiver.decodedIRData.command, HEX);
IrReceiver.resume();
}
}
#include <IRremote.h>
IRsend irsend;
void setup() {}
void loop() {
irsend.sendRC5(0x1FC1, 32);
delay(5000);
}
LCD 16x2 with I2C
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight();
Serial.begin(9600);
}
void loop()
{
if (Serial.available()) {
delay(100);
lcd.clear();
while (Serial.available() > 0) {lcd.write(Serial.read());}
}
}
MULTI SERIAL (IR/bluetooth/lcd)
#include<IRremote.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//ir- out=2
//bluetooth-rx=tx;tx=rx
//i2c-a4=sda;a5=scl
LiquidCrystal_I2C lcd(0x27,16,2);
SoftwareSerial blueseial(0, 1);
IRrecv irrecv(2);
decode_results results;
void setup()
{Serial.begin(9600);
blueseial.begin(9600);
irrecv.enableIRIn();
lcd.init();
lcd.backlight();
lcd.println("welcome");
}
void loop(){
if (irrecv.decode(&results))
{Serial.println(results.value,HEX);
blueseial.println(results.value,HEX);
lcd.clear();
lcd.println(results.value,HEX);
irrecv.resume();}
delay(100);
}