ctrl + shift + P 으로 command 창 열고, View: Reset View Locations 선택하면 왼쪽에 view 목록이 리셋되면서 보임
- extension 에서 uninstall해서 install 다시해서 >python select interpreter 하면 실행 표시 생김
이번주 - mqtt, 라즈베리파이 기본 작업 후 통신 연결, 파이썬 제어, 스레드 처리, 라즈베리파이에서 직렬통신이나 아날로그 통신하는 방법
assignment
파이썬 성적관리 - 자바 메인 하나에 풀기
https://blog.naver.com/heaves1/224025711023 - sql 최종 완성하고 이해하기
review
fstring, function_args_exam2, 클래스 예제1, join, mro, file_test1. SQL 인라인뷰
cd : 홈디렉토리 이동
pwd : 현재 디렉토리
ls : 목록 출력
sudo : 접근 제한 걸리면
var/log가 있음
passwd : 비번바꾸기
https://winscp.net/eng/download.php
파일 주고받기 라즈베리파이 -> window로 내려 받는 작업은
머신1, 머신2 각각의 컴퓨터들
SCP : 복제할때 쓰는 것
윈도우 10부터 SCP를 지원함.
SSH 통신과 동일 - 하지만 암호가 반드시 필요! 결국 할 게 많음 그래서 SCP 작성

계정 암호가 있어야 함.
cp : 동일머신에서 파일이나 디렉토리 복사
scp : 머신에서 머신으롤 파일이나 디렉토리를 복사 // 머신은 컴퓨터
로드밸런싱 : 서버에서 또 다른 서버들로 나누는 것
22번 포트가 ssh 전용 포트
[그룹과 사용자]
그룹생성
사용자생성
정보확인
이미 만들어진 사용자를 그룹에 추가
sudo usermod -aG aaa kim // aaa : 그룹명 kim : 계정명
sudo gpasswd -d lee aaa : aaa 그룹에서 lee빼기
sudo groupdel aaa : 그룹 삭제
sudo deluser kim --remove-home : user 삭제
chmod 권한
777 읽기 쓰기 실행
같은 기본 그룹의 사용자는 읽고 쓰기가 가능하고
다른 그룹의 사용자는 읽기만 할 수 있도록 권한변경
디렉토리에 대한 접근권한 변경

assignment
파이썬 성적관리 - 자바 메인 하나에 풀기
https://blog.naver.com/heaves1/224025711023 - sql 최종 완성하고 이해하기
review
fstring, function_args_exam2, 클래스 예제1, join, mro, file_test1. SQL 인라인뷰
vscode에서 라즈베리 파이 연동할 때
검색 창에 F1 누르고 remote sssh~~~ 선택
-> pi@192.168.14.79 입력 후 add new ssh host... 선택
-> 암호 입력
전압, 전류 (높은 곳에서 낮은 곳으로 흐름), 저항(방해요소)

visual studio - f1 - to add ssh - pi@192.168.14.99 - 추가
test.py 파일 만들기 - extension - python extension pack install
GPIO23 -> led -> 저항 -> gnd
# push_switch_polling_test.py
# 푸시버튼을 이용하는 방법은 폴링과 인터럽트 방식이 있다.
# 폴링은 간단하게 구현 가능
# 프로그램이 무한루프를 실행하면서 버튼이 눌려지는 것을 끊임없이 확인
import RPi.GPIO as gpio
import time
led_pin1 = 23
pin = 27
gpio.setmode(gpio.BCM)
gpio.setup(pin,gpio.IN, pull_up_down= gpio.PUD_UP)
gpio.setup(led_pin1,gpio.OUT)
led_state = False # led 상태를 저장하는 변수
while True:
state = gpio.input(pin)
if state == 0:
if led_state == False:
led_state = True
gpio.output(led_pin1,True)
else:
led_state = False
gpio.output(led_pin1,False)
gpio.cleanup()
# # push_switch_polling_test.py
# # 푸시버튼을 이용하는 방법은 폴링과 인터럽트 방식이 있다.
# # 폴링은 간단하게 구현 가능
# # 프로그램이 무한루프를 실행하면서 버튼이 눌려지는 것을 끊임없이 확인
# import RPi.GPIO as gpio
# import time
# led_pin1 = 23
# pin = 27
# gpio.setmode(gpio.BCM)
# gpio.setup(pin,gpio.IN, pull_up_down= gpio.PUD_UP)
# gpio.setup(led_pin1,gpio.OUT)
# led_state = False # led 상태를 저장하는 변수
# while True:
# state = gpio.input(pin)
# if state == 0:
# if led_state == False:
# led_state = not led_state
# gpio.output(led_pin1,led_state)
# time.sleep(0.5)
# gpio.cleanup()
폴링방식 : 무한대기 하는 중, 다른 작업을 못함. while문, thread로 돌려야 함.
ssh ubuntu@3.39.204.163
# LedButton이라는 클래스를 만들고 작업할 수 있도록 변경
# - 멤버변수(led_pin, push_pin)
# - 생성자(초기화)
# - toggle 메소드
# - main에서 작업되도록
import RPi.GPIO as GPIO
import time
class LedButton:
def __init__(self, led_pin, push_pin):
self.led_pin = led_pin
self.push_pin = push_pin
self.led_state = False
GPIO.setmode(GPIO.BCM)
GPIO.setup(self.push_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(self.led_pin, GPIO.OUT)
GPIO.add_event_detect(self.push_pin, GPIO.FALLING, callback=self.toggle, bouncetime=500)
def toggle(self, channel):
self.led_state = not self.led_state
self.led_state == False
GPIO.output(self.led_pin,self.led_state)
print("LED_", "on" if self.led_state else "off")
if __name__ == "__main__":
try:
led = LedButton(24,27)
while True:
print("아무일")
time.sleep(0.1)
finally:
GPIO.cleanup()
로컬에 저장하는 방법
부저
서브 모터
0 ~ 13까지 설정해서 0도에서 180도까지
이번주 과제
# 스위치 2개, 서보모터, LED, 부저
# 1번 스위치를 누르면 +10도씩 이동
# 2번 스위치를 누르면 - 10도씩 이동
# 180도가 되면 스위치1을 눌러도 180도가 유지되도록
# 4. 0도가 되면 스위치2를 눌러도 0도 유지
# 5. 0도와 180도가 되면 부조에서 소리가 나도록 처리
# 6. 90도에서 100도 사이에 LED불이 켜지도록 작업
# 7. 모든 작업은 함수로 처리
# 8. 함수로 먼저 하고 모든 작업을 클래스로 설계
assignment
파이썬 성적관리 - 자바 메인 하나에 풀기
https://blog.naver.com/heaves1/224025711023 - sql 최종 완성하고 이해하기
review
fstring, function_args_exam2, 클래스 예제1, join, mro, file_test1. SQL 인라인뷰




폴더 찾아가서 .jal add 하고 configure
이해 필요!!
subscribe, publisher
public class MyMqttCallback implements MqttCallback{ // mqttClient.setCallback(new MyMqttCallback());
과제 해보기
라즈베리파이로 publish
9단 전송
=> 한줄씩 전송
=> topic : exam
라즈베리파이에서 보내는 데이터를 받아서 데이터를 작업(Sub - MqttCallback은 익명이너클래스이용)
=> 보내는 메세지가 sensor면 디비에 저장(sysout으로 출력만)
=> led로 시작하는 메시지 중 on이면 led 켜기
led로 시작하는 메세지 중 off면 led끄기 메세지만 sysout으로 출력
javaApplication <- 라즈베리파이
javaApplication -> 라즈베리파이
짝과 테스트해서 전송
mosquitto_sub -h 192.168.14.62 -t exam
mosquitto_pub -h 192.168.14.62 -t exam -m "led on"
pi@raspberrypicwy:~ $ mosquitto_pub -h 192.168.14.56 -t exam -m "led on"
assignment
파이썬 성적관리 - 자바 메인 하나에 풀기
https://blog.naver.com/heaves1/224025711023 - sql 최종 완성하고 이해하기
review
fstring, function_args_exam2, 클래스 예제1, join, mro, file_test1. SQL 인라인뷰
assignment
파이썬 성적관리 - 자바 메인 하나에 풀기
https://blog.naver.com/heaves1/224025711023 - sql 최종 완성하고 이해하기
review
fstring, function_args_exam2, 클래스 예제1, join, mro, file_test1. SQL 인라인뷰
스레드 구현
1. Thread 상속받기
2. Runnable 인터페이스 구현

프로젝트 회의
스마트 팜
콘솔
회원가입
로그인
팜 정보 조회
DB <-> 자바클라이언트 - MQTT (pub,sub)
집가서 자바 - mqtt, 파이썬 - mqtt 둘 다 복습하기
프로젝트 장치 살거, 전체 ui, 서비스단, DB 생각