2022-01-07 IoT

ansunny1170·2022년 1월 7일
0

UVC BOOTCAMP.IoT

목록 보기
1/4

강의 내용

  • Iot 기본 교육 및 프로그래밍 실습
  • 임베디드 프로그래밍
  • 산업용 프로토콜 통신 분석 및 예제 실습
  • Edge를 통한 교육킷 데이터 수집
  • OPC UA개념 교육 및 모델링 실습, SDK활용

# 라즈베리파이 3

os


이후 설치에 대한 자세한 내용은 ppt참조

  • 이미지 굽기 완료 후

  • 그리고 개발환경 구성 ppt참조

원래 라즈베리파이 연결은
라즈베리파이-공유기-노트북

하지만 공유기가 없음으로
라즈베리파이->노트북<-공유기
노트북에서 공유기능을 사용한다.

  • ppt에 오타가 있다.
    192.168.138.100으로 설정한다


    putty실행시키고 Accept 누르면 아래와 같이 접속 가능하다.

Loginas에 pi입력후 password에 raspberry입력하면 로그인 완료
password에는 문구가 출력되지 않음

  • ls, pwd

  • ls -al

  • ls -alh

  • tree

  • 그외 기본 명령어들



    vi - editor
    i - 입력
    shift+; - 명령 대기
    wq - 저정후 종료
    vi 입력키에 대해서는 숙지하자
    리눅스 기반에서 자주 사용한다.

nano <파일명>
이것도 수정하는 것

## visual studio code - raspberry

실무에서는 visual studio code로 진행 할 것이다.

  • pi@192.168.138.100 엔터 두번!!

새창이 뜰것이다.

  • password에 raspberry 입력

  • 연결되면 password 재입력

## 파이썬 기본 교육

교제,(진짜 코딩하며 배우는 라즈베리파이4) 참고
p78

  • _01_print.py 실행

  • _02_while_true.py 문 실행

  • _03_try_except.py

  • _04_time.py

  • _05_print.py

  • _05_1_sum.py

  • _07_list.py

  • _05_print_5.py
    라즈베리파이 상에서 파이썬은 얼마나 빨리 동작할까? 여기서 라즈베리파이 상에서 파이썬이 얼마나 빨리 동작하는지 테스트 해보자.

    cnt 변수를 천만번 세는데 raspberry3 modelB은 9.51초 정도가 걸렸다.

  • 참고로 i5-10210U CPU기반인 노트북에서는 0.88초정도 걸린다.

  • _08_test.py

ppt보고 연습해도좋다(딕셔너리)

딕셔너리==object

  • _11_ifelse.py

  • _12_for.py

  • _13_while.py

  • _14_func.py

## 회로 실습

p89~

### RPi.GPIO.output

  • LED
import RPi.GPIO as GPIO

led_pin = 17 # GPIO17

GPIO.setmode(GPIO.BCM)

GPIO.setup(led_pin, GPIO.OUT)

GPIO.output(led_pin, True)

try:
  while True:
    pass
except KeyboardInterrupt:
  pass
GPIO.cleanup()

  • LED 끄기/점멸 반복
    • _06_gpio_output.py
    • _06_gpio_output_3.py

### RPi.GPIO.PWM

  • _07_pwm_output.py
import RPi.GPIO as GPIO
import time

led_pin = 18

GPIO.setmode(GPIO.BCM)

GPIO.setup(led_pin, GPIO.OUT)

pwm = GPIO.PWM(led_pin, 1.0) # 1.0Hz
pwm.start(50.0) # 0.0~100.0

try:
  while True:
    pass
except KeyboardInterrupt:
  pass

pwm.stop()
GPIO.cleanup()

GPIO.cleanup()

  • _08_pwm_buzzer.py
import RPi.GPIO as GPIO
import time

buzzer_pin = 18

GPIO.setmode(GPIO.BCM)

GPIO.setup(buzzer_pin, GPIO.OUT)

pwm = GPIO.PWM(buzzer_pin, 262) # 1.0Hz
pwm.start(50.0) # 0.0~100.0

time.sleep(2.0)
pwm.ChangeDutyCycle(0.0)

pwm.stop()
GPIO.cleanup()

  • _08_pwm_buzzer_3.py
    도~도 멜로디를 바꿔가며 부저를 울린다.
import RPi.GPIO as GPIO
import time

buzzer_pin = 18

GPIO.setmode(GPIO.BCM)

GPIO.setup(buzzer_pin, GPIO.OUT)

pwm = GPIO.PWM(buzzer_pin, 1.0) # 1.0Hz
pwm.start(50.0) # 0.0~100.0

melody = [262,294,330,349,392,440,494,523]

for note in range(0,8):
  pwm.ChangeFrequency(melody[note])
  time.sleep(0.5)

pwm.ChangeDutyCycle(0.0)
pwm.stop()
GPIO.cleanup()
  • 서보모터
  • _09_pwm_servo.py
import RPi.GPIO as GPIO
import time

servo_pin = 18

GPIO.setmode(GPIO.BCM)

GPIO.setup(servo_pin, GPIO.OUT)
//pwm.stop() //신호가 계속 나와서 가만히 있어도 모터가 돌아감

pwm = GPIO.PWM(servo_pin, 50) # 50hz
pwm.start(10.0) #0.6ms

time.sleep(2.0)
pwm.ChangeDutyCycle(0.0)

pwm.stop()
GPIO.cleanup()

잘안됨;

## RPi.GPIO.input

import RPi.GPIO as GPIO
import time

button_pin = 27

GPIO.setmode(GPIO.BCM)

GPIO.setup(button_pin, GPIO.IN)

try:
  while True:
    buttonInput = GPIO.input(button_pin)
    print(buttonInput)

except KeyboardInterrupt:
  pass

GPIO.cleanup()
  • 버튼 안 눌렀을 때
  • 버튼 눌렀을 때
profile
4년차 설비 개발 연구원에서 IT 웹 서비스 개발자로 경력 이전을 준비 중입니다. Node.js/Vue.js를 공부하고 있으며, 백엔드 기반 풀스택 개발자를 목표로 하고 있습니다.

0개의 댓글