2022-01-07 IoT
강의 내용
- 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로 진행 할 것이다.
- [email protected] 엔터 두번!!
새창이 뜰것이다.
## 파이썬 기본 교육
교제,(진짜 코딩하며 배우는 라즈베리파이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()
- 버튼 안 눌렀을 때
- 버튼 눌렀을 때
Author And Source
이 문제에 관하여(2022-01-07 IoT), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ansunny1170/2022-01-07-IoT저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)