CdS에서 방 사용 가능 상태를 Gmail로 전송
불빛의 전환이 있으면 메일로 알려주는 시스템.
사용할 제품
· RaspberryPi
・Arduino
· CdS
・브레드보드
・10kΩ 저항기
· 점퍼 와이어
시스템 구성도
· 대략적인 시스템 구성도
구현 절차
1. Arduino 설정
1.아래의 회로도를 참고로 점퍼선을 연결한다
2. 프로그램을 Arduino에 쓰기
Arduino Web Editor 페이지로 이동하여 다음 파일을 Arduino에 씁니다.
※Arduino Web Editor의 사용법을 모르는 분은 별도 참조가 필수
CdS.ino
const int led_pin = 9;
const int vol_pin = 0;
int vol_value = 0;
int temp=0;
void setup() {
Serial.begin( 9600 );
temp = analogRead( vol_pin );
}
void loop() {
vol_value = analogRead( vol_pin );
analogWrite( led_pin, vol_value );
if(abs(temp-vol_value)>10){ //一つ前に入ったtemp変数とvol_value変数の値が10より差が開いているか確認
Serial.println("0");
}else{
Serial.println("1");
}
temp = analogRead( vol_pin );
delay( 2000 );
}
접촉 문제는 확실하지 않지만 CdS가 출력하는 값 (vol_value 변수)이 연결될 때마다 다른 일이 발생했기 때문에 temp 변수와 vol_value 변수의 차이에서 밝은 ON, OFF를 판별
3.Arduino 시험
무사히 쓰기가 완료 후 방의 불빛을 ON, OFF로 전환했을 때에만 0이 출력되는지 확인
2.Gamil 설정
Gmail에서 이메일을 보낼 때 설정이 필요합니다.
1. Gmail에 로그인 후 2단계 인증을 ON
2. 앱 비밀번호 만들기 , 16자리 비밀번호 가져오기
앱 비밀번호를 사용하면 2단계 인증을 지원하지 않는 기기의 앱에서 Google 계정에 로그인할 수 있습니다. 이때 작성한 패스워드는 RaspbeeryPi로 작성하는 메일 송신 python 프로그램에 입력이 필요하게 된다.
3. RaspbeeryPi 설정
1. 아래 파이썬 프로그램을 RaspberryPi에 작성
mail_send.py
import serial
import smtplib
import time
from email.mime.text import MIMEText
ser = serial.Serial('/dev/ttyACM0',9600,timeout=None) #Arduinoとシリアル通信
while True:
line = ser.readline()
x = int(line) #型変換 stringからint
if x==0:
if __name__ == '__main__':
to_addr = '[email protected]' #送信先メールアドレス
from_addr = '[email protected]' #アプリパスワードを作成したメールアドレス
mail_id = from_addr
mail_pass = 'zzzzzzzzzzzzzzzz' #作成したアプリパスワード(16桁)に置き換える
message = MIMEText('Hello')
message['Subject'] = 'Hello'
message['From'] = from_addr
message['To'] = to_addr
sender = smtplib.SMTP_SSL('smtp.gmail.com')
sender.login(mail_id, mail_pass)
sender.sendmail(from_addr, to_addr, message.as_string())
sender.quit()
ser.close()
2. 시스템이 정상적으로 작동하는지 확인
$python mail_send.py
에러가 검출되지 않고 방의 조명을 전환했을 때에 송신처 메일 주소에 메일이 도착하고 있으면 완료
3.nohup 명령으로 프로그램을 뒤에서 동작시킨다
마지막으로 터미널을 지워도 뒤에서 프로그램이 작동하는지 확인하기 위해 nohup 명령을 사용하십시오.
$nohup python mail_send.py &
jobs 명령을 사용하여 현재 실행중인 작업을 확인합니다.
$jobs
nohup의 사용법에 대해 모르는 분은 별도로 참조하는 것이 좋습니다.
Reference
이 문제에 관하여(CdS에서 방 사용 가능 상태를 Gmail로 전송), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rarapo/items/f1c9927b6bb3db904f77텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)