이 튜토리얼에서는 유명한 WiFi 모듈 인 ESP8266을 사용하여 PIC 마이크로 컨트롤러에서 이메일을 보내는 방법을 배웁니다. 이 튜토리얼은 프로그래밍을 위해 PIC16F877A IC와 MPLABX 및 XC8 컴파일러를 사용합니다.
이 튜토리얼이 끝나면 Gmail, yahoo 등과 같은 일반 이메일 ID에서 다른 이메일 ID로 이메일을 보낼 수 있습니다. 따라서이 자습서에서는 ESP8266-01 모듈 및 PIC 마이크로 컨트롤러에 대한 몇 가지 기본 지식이 있다고 가정합니다. 그렇지 않은 경우 다음 자습서가 도움이 될 것입니다.
- ESP8266 시작하기
- ESP8266과 PIC 인터페이스
그럼 시작하겠습니다…
이메일 ID로 준비하기:
이메일을 보낼 메일 ID를 결정했으면 다음 단계를 따르십시오.
1 단계: https://www.smtp2go.com/을 방문하여 새 사용자로 등록합니다. 메일을 보낼 이메일 ID의 이름, 이메일 주소 및 비밀번호를 입력하십시오.
이 자습서에서는 메일 ID: aswinthcd @ gmail.com 및 암호: circuitdigest를 사용합니다.
2 단계: 가입을 클릭하면 입력 한 메일 ID로 확인 메일이 전송됩니다. 이 경우에는 aswinthcd @ gmail.com입니다. 메일을 열고“ACTIVATE ACCOUNT”를 클릭합니다.
3 단계: 이전 비밀번호를 입력하라는 메시지가 표시되면 비밀번호를 다시 요청할 수 있습니다. 이 경우에는 'circuitdigest'입니다. 그러면 SMPT2GO 웹 사이트에 로그인됩니다. 이제 이메일 주소가 ESP8266 모듈을 사용하여 메일을 보낼 준비가되었습니다.
4 단계: 마지막 단계는이 웹 사이트 https://www.base64encode.org/를 사용하여 이메일 ID와 비밀번호를 Base 64 형식으로 인코딩하는 것입니다. PIC 프로그램에서 이것을 사용하겠습니다.
이 경우 인코딩 된 값은 아래 표와 같습니다.
매개 변수 |
일반 형식 |
Base 64로 인코딩 됨 |
메일 ID |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
암호 |
회로 다이제스트 |
Y2lyY3VpdGRpZ2VzdA == |
하드웨어 준비:
프로젝트의 전체 회로도가 아래에 나와 있습니다.
여기서 LCD 디스플레이는 디버깅 목적으로 사용됩니다. 반드시 연결해야하는 것은 아닙니다. 프로그램은 LCD 디스플레이 없이도 잘 작동합니다. 회로도에 대해 더 알고 싶다면이 튜토리얼을 방문하십시오. (PIC와 ESP 인터페이스).
이 회로를 브레드 보드에 간단히 조립 한 다음 프로그래밍을 진행할 수 있습니다.
이메일을 보내도록 PIC 프로그래밍:
ESP8266에서 이메일 을 보내려면 일련의 AT 명령을 ESP 모듈로 보내야합니다. ESP8266에서 이메일을 보내려면 다음 단계를 따라야합니다.
- AP + STA (액세스 포인트 및 스테이션) 모드에서 모듈 설정
- 인터넷에 연결하려면 액세스 포인트에 연결하세요.
- 여러 연결 활성화
- 특정 포트에서 서버 시작
- SMPT2GO 웹 사이트와 TCP 연결 설정
- 웹 사이트의 로그인 섹션으로 이동합니다.
- 이메일 ID와 비밀번호를 base64 형식으로 입력하세요.
- 메일 ID에서 입력
- 메일 아이디 입력
- 메일 제목 입력
- 메일 본문 입력
- 메일의 끝 표시
- 메일 보내기
- TCP 연결 종료
약간 길고 지루한 과정이지만 걱정하지 마십시오. 헤더 파일을 생성하여 프로세스를 단순화했으며이 작업을 매우 쉽게 만드는 일부 함수 (아래 설명)를 호출하여 직접 사용할 수 있습니다. 헤더 파일과 함께 전체 코드는 여기에서 다운로드 할 수 있습니다.
참고: 새 프로젝트에서 코드를 사용하는 경우 헤더 파일을 다운로드하고 프로젝트에 추가해야합니다.
아래 코드의 중요한 부분을 설명했고 다른 부분은 자명합니다. 그러나 의심스러운 점이 있으면 의견 섹션을 사용하십시오.
/ * ESP_PIC 통신이 성공했는지 확인 * / do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP를 찾을 수 없음"); } while (! esp8266_isStarted ()); // ESP가 "OK"를 다시 보낼 때까지 기다립니다. Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP가 연결됨"); __delay_ms (1500); Lcd_Clear (); / * 예 ESP 통신 성공-진행 * /
코드의이 부분은 PIC와 ESP8266간에 적절한 통신이 설정되었는지 확인하는 데 사용됩니다. 둘 다 USART를 통해 데이터를 송수신 할 수있는 경우에만 프로그램이 다음 단계로 진행됩니다.
esp8266_mode (3);
이 기능은 모드 3에서 ESP8266을 설정합니다. 이는 모듈이 이제 액세스 포인트 및 서버 역할을 할 수 있음을 의미합니다.
esp8266_connect ("BPAS 홈", "cracksun");
이 기능은 ESP8266 모듈을 Wifi 라우터에 연결하는 데 사용됩니다. 이 경우“BPAS home”은 내 Wifi 신호의 이름이고“cracksun”은 내 비밀번호입니다. 자신의 Wi-Fi 신호 세부 정보를 사용해야합니다.
_esp8266_enale_MUX (); // 다중 연결 활성화 _esp8266_create_server (); // 포트 80에서 서버 생성
이 두 기능은 다중 연결을 활성화하고 포트 80에서 서버를 만드는 데 사용됩니다.
_esp8266_connect_SMPT2GO ();
이제이 기능을 사용하여 SMPT2GO와 TCP 연결을 설정할 수 있습니다. 연결이 설정되면이 기능은 웹 사이트의 로그인 페이지로 이동합니다.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
이 기능을 사용하여 Base 64 형식으로 이메일 ID와 비밀번호를 입력합니다. 보시다시피 이러한 인코딩 된 값은 위의 표에 표시된 것과 동일합니다. 인코딩 된 값은 이메일 ID 및 비밀번호에 따라 다릅니다.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
이 함수는 발신자 ID의 이름을 정의하는 데 사용됩니다. 이 튜토리얼에서는 내 Gmail ID aswinthcd @ gmail.com을 사용하여 메일을 보내고 있으므로 매개 변수로 전달했습니다.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
이 함수는 수신자 ID의 이름을 정의하는 데 사용됩니다. 내 메일을 다른 Gmail 계정으로 보내고 싶습니다. 따라서 매개 변수를 mailtoasiwnth @ gmail.com으로 전달했습니다. 원하는 메일 ID를 사용할 수 있습니다.
_esp8266_start_mail ();
이 기능은 SMPT2GO 서버에 우리가 메일의 제목과 본문을 공급할 것을 지시하고 동일하게 준비하도록합니다.
_esp8266_mail_subject ("ESP8266의 메일");
이 기능을 사용하여 메일 제목을 정의 할 수 있습니다. 예를 들어 메일 제목으로“Mail from ESP8266”을 사용했습니다.
_esp8266_mail_body ("테스트 성공 -CircuitDigest");
제목을 입력 한 후이 기능을 사용하여 메일 본문을 입력 할 수 있습니다. 예를 들어 "Testing Success –CircuitDigest"를 메일 본문으로 설정했습니다.
_esp8266_End_mail ();
이제 메일의 제목과 본문을 입력 했으므로 SMPT2GO 서버에 메일에 세부 정보를 추가했음을 알려야합니다. 이것은 함수를 사용하여 수행 할 수 있습니다.
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
마지막으로 메일을 보낸 후 SMPT2GO 서버와의 TCP 연결을 종료해야합니다. 이것은 위의 기능을 사용하여 수행됩니다.
일:
하드웨어와 프로그램이 끝나면. 코드를 PIC MCU에 덤프하기 만하면됩니다. 그런 다음 회로의 전원을 켭니다. 모든 것이 예상대로 진행되면 LCD에 프로세스 상태가 표시되고 마지막으로 아래 비디오와 같이 "Mail sent"라고 표시됩니다. 하드웨어는 다음과 같이 보일 수 있습니다.
LCD에 메일이 전송 된 것으로 표시되면받은 편지함 및 스팸 폴더에서 보낸 메일을 확인하십시오. 아래와 같이 메일을 받았을 것입니다..
이제 센서 데이터를 읽고 메일 ID로 전송하여 자신 만의 IOT 프로젝트를 만들 수 있습니다. 우편을 통해 경고를 트리거하여 집이나 자동차에 대한 보안 경고 시스템을 만듭니다.
의심스러운 점이 있거나 중간에 갇혀있는 경우 댓글 섹션을 사용하시면 기꺼이 도와 드리겠습니다.