close

Raspberry Pi

Raspberry Pi

AnyDesk in Raspberry PI

AnyDesk

As we know the Raspberry PI is widely used in various sector like education, IOT, security, hardware control etc. To control the raspberry pi remotely we need the remote access software. For that basically there are two software used. TeamViewer and AnyDesk

Go to the download page

https://anydesk.com/en/downloads/raspberry-pi

or

Download AnyDesk

https://download.anydesk.com/rpi/anydesk_5.5.5-1_armhf.deb?_ga=2.225231762.900182093.1596982124-1692870924.1596982124

In this software once you set the password you can access it from anywhere in the world. Suppose you have lots of device based on raspberry pi and you need to control them or need to show anything in that particular device then you have to call the user to allow the remote access in AnyDesk software.

Now the solution is to set password for the software. Once you set the password, you can access the raspberry pi anywhere from the world. You have to enter password at host side and no need to allow from remote or client side.

read more
Raspberry Pi

Raspberry Pi interfacing with 16×2 & 20×4 LCD

This tutorial will shows how to interfacing 16×2 and 20×2 LCD with Raspberry Pi. The code is written in Python language.

The 16×2 lcd has 16 pins, 16 characters and 2 lines and the 20×4 lcd has 16 pins, 20 characters and 4 lines.

Hardware to be used:

  • Raspberry PI 3B +
  • 16 GB SD Memory card with Raspbian operating system
  • 16×2 LCD 
  • 20×4 LCD
  • 20×2 FRC cable 9″
  • HDMI Monitor with HDMI Cable and Power Cable

Python Code for 16X2 lcd

#!/usr/bin/env python2
import RPi.GPIO as GPIO
from time import sleep
import time 
# Define GPIO to LCD mapping
LCD_RS = 27
LCD_E  = 17
LCD_D4 = 13
LCD_D5 = 19
LCD_D6 = 26
LCD_D7 = 6
# Define some device constants
LCD_WIDTH = 16    # Maximum characters per line
LCD_CHR = True
LCD_CMD = False
 
LCD_LINE_1 = 0x80 # LCD RAM address for the 1st line
LCD_LINE_2 = 0xC0 # LCD RAM address for the 2nd line
 
# Timing constants
E_PULSE = 0.003
E_DELAY = 0.0001
 
def main():
  # Main program block
  
  
	GPIO.setwarnings(False)
	GPIO.cleanup()
	GPIO.setmode(GPIO.BCM)       # Use BCM GPIO numbers
	GPIO.setup(LCD_E, GPIO.OUT)  # E
	GPIO.setup(LCD_RS, GPIO.OUT) # RS
	GPIO.setup(LCD_D4, GPIO.OUT) # DB4
	GPIO.setup(LCD_D5, GPIO.OUT) # DB5
	GPIO.setup(LCD_D6, GPIO.OUT) # DB6
	GPIO.setup(LCD_D7, GPIO.OUT) # DB7
	# Initialise display
	lcd_init()
 
	while True:
 
    # Send some test
		lcd_string("Sudarshan Systen",LCD_LINE_1)
		lcd_string("    Presents    ",LCD_LINE_2)
		sleep(3) # 3 second delay
		lcd_init()
		# Send some text
		lcd_string("Rasbperry Pi",LCD_LINE_1)
		lcd_string("16x2 LCD Test",LCD_LINE_2)
		sleep(3) # 3 second delay
		lcd_init()
		# Send some text
		lcd_string("1234567890*@$#%&",LCD_LINE_1)
		lcd_string("abcdefghijklmnop",LCD_LINE_2)
		sleep(3)
		lcd_init()
      
def lcd_init():
  lcd_display(0x28,LCD_CMD) # Selecting 4 - bit mode with two rows
  lcd_display(0x0C,LCD_CMD) # Display On,Cursor Off, Blink Off
  lcd_display(0x01,LCD_CMD) # Clear display
  sleep(E_DELAY)
 
def lcd_display(bits, mode):
  # Send byte to data pins
  # bits = data
  # mode = True  for character
  #        False for command
 
  GPIO.output(LCD_RS, mode) # RS
 
  # High bits
  GPIO.output(LCD_D4, False)
  GPIO.output(LCD_D5, False)
  GPIO.output(LCD_D6, False)
  GPIO.output(LCD_D7, False)
  if bits&0x10==0x10:
    GPIO.output(LCD_D4, True)
  if bits&0x20==0x20:
    GPIO.output(LCD_D5, True)
  if bits&0x40==0x40:
    GPIO.output(LCD_D6, True)
  if bits&0x80==0x80:
    GPIO.output(LCD_D7, True)
 
  # Toggle 'Enable' pin
  lcd_toggle_enable()
 
  # Low bits
  GPIO.output(LCD_D4, False)
  GPIO.output(LCD_D5, False)
  GPIO.output(LCD_D6, False)
  GPIO.output(LCD_D7, False)
  if bits&0x01==0x01:
    GPIO.output(LCD_D4, True)
  if bits&0x02==0x02:
    GPIO.output(LCD_D5, True)
  if bits&0x04==0x04:
    GPIO.output(LCD_D6, True)
  if bits&0x08==0x08:
    GPIO.output(LCD_D7, True)
 
  # Toggle 'Enable' pin
  lcd_toggle_enable()
 
def lcd_toggle_enable():
  # Toggle enable
  time.sleep(E_DELAY)
  GPIO.output(LCD_E, True)
  time.sleep(E_PULSE)
  GPIO.output(LCD_E, False)
  time.sleep(E_DELAY)
 
def lcd_string(message,line):
  # Send string to display
 
  message = message.ljust(LCD_WIDTH," ")
 
  lcd_display(line, LCD_CMD)
 
  for i in range(LCD_WIDTH):
    lcd_display(ord(message[i]),LCD_CHR)
 
if __name__ == '__main__':
 
  try:
    main()
  except KeyboardInterrupt:
    pass
  finally:
    lcd_display(0x01, LCD_CMD)
    GPIO.cleanup()

Python Code for 20X4 lcd

#!/usr/bin/python3
# The wiring for the LCD is as follows:
# 1 : GND
# 2 : 5V
# 3 : Contrast (0-5V)*
# 4 : RS (Register Select)
# 5 : R/W (Read Write)       - GROUND THIS PIN
# 6 : Enable or Strobe
# 7 : Data Bit 0             - NOT USED
# 8 : Data Bit 1             - NOT USED
# 9 : Data Bit 2             - NOT USED
# 10: Data Bit 3             - NOT USED
# 11: Data Bit 4
# 12: Data Bit 5
# 13: Data Bit 6
# 14: Data Bit 7
# 15: LCD Backlight +5V
# 16: LCD Backlight GND
 
#import
import RPi.GPIO as GPIO
import time
import curses
 
LCD_RS = 27
LCD_E  = 17
LCD_D4 = 13	
LCD_D5 = 19
LCD_D6 = 26
LCD_D7 = 6
LED_ON = 15
# Define some device constants
LCD_WIDTH = 20    # Maximum characters per line
LCD_CHR = True
LCD_CMD = False
 
LCD_LINE_1 = 0x80 # LCD RAM address for the 1st line
LCD_LINE_2 = 0xC0 # LCD RAM address for the 2nd line
LCD_LINE_3 = 0x94 # LCD RAM address for the 3rd line
LCD_LINE_4 = 0xD4 # LCD RAM address for the 4th line
 
# Timing constants
E_PULSE = 0.003
E_DELAY = 0.0001
DELAY   = 0
 
def main():
	
	# Main program block
	#GPIO.cleanup()
 
	#GPIO.setwarnings(False)
	#GPIO.cleanup()
	GPIO.setmode(GPIO.BCM)       # Use BCM GPIO numbers
	
	GPIO.setup(LCD_E, GPIO.OUT)  # E
	GPIO.setup(LCD_RS, GPIO.OUT) # RS
	GPIO.setup(LCD_D4, GPIO.OUT) # DB4
	GPIO.setup(LCD_D5, GPIO.OUT) # DB5
	GPIO.setup(LCD_D6, GPIO.OUT) # DB6
	GPIO.setup(LCD_D7, GPIO.OUT) # DB7
	#GPIO.setup(LED_ON, GPIO.OUT) # Backlight enable
	 
	# Initialise display
	lcd_init()
	
	#time.sleep(3) # 3 second delay
 
	lcd_string("--------------------",LCD_LINE_1,1)
	lcd_string("Rasbperry Pi",LCD_LINE_2,2)
	lcd_string("Model B",LCD_LINE_3,2)
	lcd_string("--------------------",LCD_LINE_4,2)
	 
	time.sleep(3) # 3 second delay
	lcd_byte(0x01,LCD_CMD) # 000001 Clear display
	lcd_string("SUDARSHAN SYSTEM",LCD_LINE_1,1)
	lcd_string("sudarshansystem.com",LCD_LINE_2,3)
	lcd_string("Its a time.",LCD_LINE_3,2)
	lcd_string("20x4 LCD Module Test",LCD_LINE_4,1)
	 
	time.sleep(20) # 20 second delay
	
	
def lcd_init():
	
	# Initialise display
	lcd_byte(0x33,LCD_CMD) # 110011 Initialise
	time.sleep(DELAY)
	lcd_byte(0x32,LCD_CMD) # 110010 Initialise
	time.sleep(DELAY)
	
	lcd_byte(0x06,LCD_CMD) # 000110 Cursor move direction
	time.sleep(DELAY)
	
	
	time.sleep(DELAY)
	
	lcd_byte(0x28,LCD_CMD) # 101000 Data length, number of lines, font size
	lcd_byte(0x0C,LCD_CMD) # 001100 Display On,Cursor Off, Blink Off
	lcd_byte(0x01,LCD_CMD) # 000001 Clear display
	
	
	time.sleep(DELAY)
	
	#lcd_byte(0x30,LCD_CMD) # 000001 Clear display
	#time.sleep(DELAY)
	
	#lcd_byte(0x28,LCD_CMD) # Selecting 4 - bit mode with two rows
	#lcd_byte(0x0C,LCD_CMD) # Display On,Cursor Off, Blink Off
	#lcd_byte(0x01,LCD_CMD) # Clear display
 
def lcd_byte(bits, mode):
	
	# Send byte to data pins
	# bits = data
	# mode = True  for character
	#        False for command
	GPIO.output(LCD_RS, mode) # RS
	# High bits
	GPIO.output(LCD_D4, False)
	GPIO.output(LCD_D5, False)
	GPIO.output(LCD_D6, False)
	GPIO.output(LCD_D7, False)
	if bits&0x10==0x10:
		
		GPIO.output(LCD_D4, True)
	if bits&0x20==0x20:
		GPIO.output(LCD_D5, True)
	if bits&0x40==0x40:
		GPIO.output(LCD_D6, True)
	if bits&0x80==0x80:
		GPIO.output(LCD_D7, True)
	
	
	# Toggle 'Enable' pin
	lcd_toggle_enable()
	# Low bits
	GPIO.output(LCD_D4, False)
	GPIO.output(LCD_D5, False)
	GPIO.output(LCD_D6, False)
	GPIO.output(LCD_D7, False)
	if bits&0x01==0x01:
		GPIO.output(LCD_D4, True)
	if bits&0x02==0x02:
		GPIO.output(LCD_D5, True)
	if bits&0x04==0x04:
		GPIO.output(LCD_D6, True)
	if bits&0x08==0x08:
		GPIO.output(LCD_D7, True)
	# Toggle 'Enable' pin
	lcd_toggle_enable()
 
def lcd_toggle_enable():
  # Toggle enable
  time.sleep(E_DELAY)
  GPIO.output(LCD_E, True)
  time.sleep(E_PULSE)
  GPIO.output(LCD_E, False)
  time.sleep(E_DELAY)
 
def lcd_string(message,line,style):
  # Send string to display
  # style=1 Left justified
  # style=2 Centred
  # style=3 Right justified
 
  if style==1:
    message = message.ljust(LCD_WIDTH," ")
  elif style==2:
    message = message.center(LCD_WIDTH," ")
  elif style==3:
    message = message.rjust(LCD_WIDTH," ")
 
  lcd_byte(line, LCD_CMD)
 
  for i in range(LCD_WIDTH):
    lcd_byte(ord(message[i]),LCD_CHR)
   
    
def lcd_backlight(flag):
  # Toggle backlight on-off-on
  GPIO.output(LED_ON, flag)
 
if __name__ == '__main__':
 
  try:
    main()
    print "Tushar"
  except KeyboardInterrupt:
    pass
  finally:
    lcd_byte(0x01, LCD_CMD)
    lcd_string("Goodbye!",LCD_LINE_1,2)
    GPIO.cleanup()
 
read more