질문게시판 > 답변 : atmega128 esp8266

TODAY694 TOTAL241,209
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌 회원가입


BASIC4MCU 후원업체 최신 정보

BASIC4MCU | 질문게시판 | 답변 : atmega128 esp8266

페이지 정보

작성자 master 작성일2018-02-17 22:45 조회1,292회 댓글2건

본문

	

안녕하세요. atmega128, avr studio4와 esp8266-esp01을 이용해서 sms문자전송 프로그램을 코딩하려 하고 있습니다. 현재 https://circuitdigest.com/microcontroller-projects/sending-sms-using-esp8266 사이트를 참조하며 atmega를 사용 하지않고 at command로만하여 ifttt 사이트 이용, 문자를 휴대폰에 전송하는 것은 성공하였습니다. 아두이노 예제 소스를 보며 avr studio4를 이용하여 프로그램을 짜려고하는데 애를 먹고 있습니다.

 

  String url = "/trigger/ESP/with/key/b8h22xlElZvP27lrAXS3ljtBa0092_aAanYN1IXXXXX";
  Serial.print("requesting URL: ");
  Serial.println(url);

  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "User-Agent: BuildFailureDetectorESP8266\r\n" +
               "Connection: close\r\n\r\n");  // send data 부분이 젤 감이 안잡힙니다.

도움좀 부탁드리겠습니다.

혹시 아두이노와 avr studio를 비교 할 수 있는 사이트가 있으면 알려주시면 감사하겠습니다.

 

at command부분은 사진 첨부하겠습니다.

//---------------------------------------------------

 

구체적인 답변을 받으시려면

사진 보다는 복사가 가능한 자료를 첨부하시는 것이 좋겠죠?

 

명령어를 보니 아두이노 코드인데요

아두이노는 라이브러리를 사용하는 경우에, 

초보자가 라이브러리를 분석하기 어려우므로 별로 도움이 안됩니다.

AT 컴맨드를 분석하면서 코드를 만드셔야 하고요

제조사에서 아두이노가 아닌 일반 MCU의 예제를 제공한다면 아두이노 예제보다 낫습니다.

 

 

  client.print(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "User-Agent: BuildFailureDetectorESP8266\r\n" +
               "Connection: close\r\n\r\n"); 

이 문장이 이해가 안가나요?

 

https://www.google.co.kr/search?ei=TTOIWouEA4i90ATu0IW4Dg&q=AVR+esp8266+sms+messages&oq=AVR+esp8266+sms+messages&gs_l=psy-ab.3...16009.16509.0.17168.2.2.0.0.0.0.101.198.1j1.2.0....0...1c.1.64.psy-ab..0.0.0....0.51RavGLO1ZU

 

웹서버로 명령을 전달하고, 웹서버에서 SMS를 전송하나봅니다.

위 구글 검색 결과 중에서 쓸만한 자료가 있는지 체크 해보세요

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 2

조회수 1,292

도도리님의 댓글

도도리 작성일

자료를 구하기가 힘드네요..
그롬 atmega128에서 esp8266으로 at command를 usart이용해서 보내고 수신확인하는 방식으로 가야 할까요?
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include <stdlib.h>
#include <util/delay.h>
#include <string.h>

volatile unsigned char RX; // UDR0  char data 저장 변수

unsigned char RX0_CHAR(void) //받는다
{
 while(!(UCSR0A&0x80));
 return UDR0;
}
void TX0_CHAR(char ch) // 보낸다
{
 while(!(UCSR0A&0x20));
 UDR0=ch;
}
void TX0_STR(char *str) // 문자열 전송
{
 while(*str)TX0_CHAR(*str++);
}

ISR(USART0_RX_vect)
{

  RX=UDR0; // UDR1  char 값을 RX 변수에 저장

}


int main(void){

 UBRR0H=0;
 UBRR0L=103;
 UCSR0B=0x18;
 PORTA=0x00;

 while(1)
 {

    TX0_STR("AT\r\n");
_delay_ms(2000);

  if(RX=='OK')
  {
    PORTA=0xFF;
_delay_ms(2000);

    }

 }
}
//작동은 안되는데 이런 식으로 하면 될까요?

master님의 댓글

master 댓글의 댓글 작성일

if(RX=='OK'){
여기서 'OK'는 문자열입니다. 두 문자 이상의 문자열을 'OK'로 표현하는 것은 파스칼 문법입니다.
c에서는 "OK"로 표현하죠
//
아직 문자와 문자열을 구분하지 못하고 계시고
시리얼 수신 인터럽트의 설정을 모르고 있습니다.

1. 1문자 송수신 예제를 여러개 공부한 후에
2. 2문자 이상의 문자열 송수신 예제를 공부하시고
3. ESP8266 을 사용해서 데이터 송수신을 이해 한 후에
4. SMS 문자 전송을 시도해보세요

갈길이 멀지만 계속 매달리면 몇일이면 됩니다.

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.

ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017