'Programming Language/아두이노, 라즈베리파이'에 해당되는 글 17건

  1. 2024.01.08 아두이노 조도센서 가변 모듈 [SEN040130]
  2. 2024.01.08 ESP8266 ESP-01 어댑터
  3. 2024.01.08 ESP8266 1
  4. 2024.01.08 ESP8266 라이브러리: 다른 버전
728x90

 

Parameters

 

- 크기 : 28 *의 24mm

- 전압 : 3.3V, 5V

- 포트 : 아날로그 전압 레벨 신호 듀얼 출력 스위치

- 프로브 : 포토 레지스터

- 검출 등 : 가시 광선

- 검출 각도 : 160 °

- 검출 방법 : 분압 피드백

- 플랫폼 : 아두 이노, MCU

- DOUT은 : 레벨 신호 출력은 전위차계에 의해 설정된 임계 값 출력이 낮은 도달 (0 or 1) -> 가변저항 조정에 따라 on/off

- AOUT : 아날로그 전압 출력, 현재의 밝기가 반영 AD 변환 처리를 필요

- 포토 레지스터 형 센서 검출 범위는, 주위의 밝기를 다양한 검출하도록

 

PS. 어두울 수록 AOUT 값이 커짐. #GL7528 과는 반대.

728x90

'Programming Language > 아두이노, 라즈베리파이' 카테고리의 다른 글

Soil Moisture Sensor Module [SEN030003]  (0) 2024.01.08
MOLEX 커넥터 : Wire to Board  (0) 2024.01.08
ESP8266 ESP-01 어댑터  (0) 2024.01.08
ESP8266  (1) 2024.01.08
ESP8266 라이브러리: 다른 버전  (0) 2024.01.08
Posted by 하루y
728x90

Description:

A adapter module for ESP-01 Wi-Fi module. 3.3V voltage regulator circuit and onboard level conversion circuit can make 5V microcontroller easy to use with ESP-01 Wi-Fi module.

Also, the item can be used with For Arduino UNO R3 or compatible board.

 

 

Features:

Working voltage: 4.5~5.5V (On-board 3.3V LDO Regulator)

=> EPS8266이 3.3v에서 동작하지만, 어뎁터에서는 5.5v에서 동작함. 3.3v를 어뎁터에 공급하면 전압이 낮아 동작하지 않음.

Working current: 0-240mAInterface logic voltage: 3.3V / 5V compatible(On-board level shift circuit)

 

 

Package Included:

1 x ESP-01 Adapter Module

 

 

PS. 아두이노 우노에 사용하려면, ESP8266의 통신속도를 9600bps로 펌웨어 업데이트 해야 함.

728x90
Posted by 하루y
728x90

ESP8266

 

관련상품: http://www.devicemart.co.kr/1279338

 

ESP8266 시리얼 와이파이 모듈 ESP-01 (DIP) [SZH-EK051]

Espressif Systems사에서 내놓은 [ESP8266]은 가장 가격대 성능비가 뛰어난 것으로 알려진 대중적이고 활용도가 높은 시리얼 와이파이 칩셋입니다. [802.11 b/g/n 프로토콜]과 [WiFi Direct], [Soft-AP]기능도 지

www.devicemart.co.kr

 

 

# ESP8266 자료

http://www.electrodragon.com/w/Category:ESP8266

 

Category:ESP8266 - ElectroDragon Wiki

Pages in category "ESP8266" The following 2 pages are in this category, out of 2 total.

w.electrodragon.com

 

#위키자료: https://en.wikipedia.org/wiki/ESP8266

 

ESP8266 - Wikipedia

From Wikipedia, the free encyclopedia System-on-a-chip microcontroller model with Wi-Fi ESP-01 module by Ai-Thinker with ESP8266EX SoC The ESP8266 is a low-cost Wi-Fi microchip, with built-in TCP/IP networking software, and microcontroller capability, prod

en.wikipedia.org

 

 

1. 펌웨어 업데이트

: ESP8266 ESP-10 모듈의 시리얼 통신 속도는 기본적으로 115200 bps 로 설정되어 있어 통신속도의 제한이 있는 소프트웨어 시리얼을 사용할 수 없다. 따라서 보드와 ESP-01 모듈 간의 소프트웨어 시리얼 통신을 위해서 ESP-01 모듈의 기본속도를 9600 bps로 설정하기 위해서 펌웨어를 업데이트 한다.

 

PS. 하드웨어 시리얼: 보드의 0번(RX), 1번(TX) 기능을 이용한 통신(Serial.명령)

소프트웨어 시리얼: MCU가 0,1번을 제외한 디지털 핀 통신. (13번은 수신동작하지 않음)

 

PS. 펌웨어 업데이트 할 때 핀설정.

- 펌웨어를 업데이트 할 때는 아래 경로로 펌웨어가 업데이트 됨.

. 아두이노 RX, TX와 ESP8266 RX, TX를 동일 핀으로 연결하면, USB자료가 최종 기기로 펌웨어를 업데이트 할 수 있음.

. PC -> USB -> 아두이노 Rx,TX -> ESP8266 RX, TX -> ESP8266모듈

- . TCP 나 wifi 코딩도 소프트시리얼이 아니라 ESP8266 으로 업데이트 된 펌웨어로 동작이 가능하고, (보드는 ESP8266 선택)

ESP8266 모듈에 기본적인 GIPO0과 GPIO1 2개의 디지털 인터페이스로 사용할 수 있음.

간단한 디지털인터페이스는 아두이노 없이, ESP8266모듈만으로 제어가 가능함.

- 소프트웨어 시리얼을 사용할 때는, RX, TX 제외한 핀으로 ESP8266과 연결하고 ESP8266의 기본 통신 기능만 사용함.

 

 

1.1 펌웨어 업데이트 준비

https://github.com/Stadslab/ESP8266_example/tree/master/ESP8266_flasher_V00170901_00_Cloud%20Update%20Ready

- 펌웨어 업데이트 툴: esp8266_flasher.exe

- 펌웨어 : v0.9.2.2 AT Firmware.bin

- 업데이트 핀 연결

1.2 업데이트 핀 설정

왼쪽: ESP8266 <-> 오른쪽:아두이노

VCC <-> 3.3V

CH_PD <-> 3.3V

GPIO0 <-> GND

GND <-> GND

RXD <-> RX

TXD <- > TX

 

a. 일부 책에서, RX, TX를 교차했는데, 그렇게 하면 Fail Connect 메시지 발생.

b. 아두이노IDE를 종료할 것. 아두이노IDE를 켜두면, Fail Connect 에러가 잘 발생함. 펌웨어 업데이트할 때는 종료한다.

c. esp8266_flasher.exe 실행하고, 업데이트할 펌웨어를 선택하고, download 버튼 클릭.

- firmware 파일의 경로에 한글 경로가 있으면 안됨.

d. 오류시, usb 연결을 on/off하거나, 외부 전원을 on/off 한 후 계속 download를 눌러 update 시도.

e. "Leaving... \n Failed to write to target Flash" 이면 외부 전원으로 변경후, 다시 시도.

"Leaving... \n Failed to leave Flash mode" 이면 무시,

 

2. 통신 테스트

2.1 동작(통신) 모드 핀 설정

왼쪽: ESP8266 <-> 오른쪽:아두이노

2.2 통신 테스트 스크립트

include <SoftwareSerial.h>

SoftwareSerial ESPserial(2, 3); // RX(2), TX(3)

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  ESPserial.begin(9600);

  Serial.println("");
  Serial.println("AT Command fro ESP8266 ESP-01 module");
  Serial.println("");
}

void loop() {
  // put your main code here, to run repeatedly:
  if(ESPserial.available()) {
    Serial.write(ESPserial.read());
  }

  if(Serial.available()) {
    ESPserial.write(Serial.read());
  }
}

 

 

2.3 통신 테스트

아두이노 시리얼 모니터 창을 실행하고, 창 왼쪽 하단에 "line ending 없음'을 "Both NL & CR"로 수정하고, AP명령을 실행한다.

AT 명령
기능
응답
AT
명령 테스트 (정상 동작 확인)
OK
AT+RST
리셋한다
OK
AT+GMR
펌웨어 버전 확인
OK+ADDR:MAC주소
AT+RESET
초기화 및 모듈 사용 준비
OK...ready
AT+CWMODE=모드
와이파이 모드 설정
1:Station
2:AP
3:Dual
+CWMODE:모드
OK
AT+CWMODE?
현재 와이파이 모드 확인
+CWMODE:모드
OK
AT+CWLAP
AP 목록 출력
OK
AT+CWJAP="SSID","비번"
AP에 연결
OK
AT+CWJAP?
연결된 AP 확인
+CWJAP:"AP SSID"
OK
AT+CWSTAMAC?
스테이션MAC주소획득
+CWSTAMAC:mac주소
OK
AT+CWAPMAC?
AP MAC 주소 획득
+CWAPMAC:mac주소
OK
AT+CWSAP=ssid,pwd,ch,ecn
- ch: channelid
- ecn :
. 0 = OPEN
. 2 = WPA_PSK
. 3 = WPA2_PSK
. 4 = WPA_WPA2_PSK
AT+CWSAP?
softAP모드 설정
예)
AT+CWSAP="esp_123","12345678",5,3
OK
AT+CIFSR
할당 받은 IP 주소 확인
+CIFSR:STAIP,IP주소
+CIFSR:STAMAC,MAC주소
OK
AT+CIPSTATUS
TCP/IP 연결 상태 확인
STATUS:2 (IP주소 얻어 옴)
OK
AT+CIPSTART=종류,주소,포트
TCP/UDP연결
OK+Set<파라미터>
AT+CIPSEND=크기....>데이터
특정 바이트 크기의 데이터 전송.
'>'프롬프트가 나올 때까지 기다린 후 데이터를 입력해야 함.
SEND OK
AT+CIPCLOSE
TCP/UDP 연결 해제
OK (ERROR/UNLINK)
+IPD,len:데이터
+IPD,id,len:데이터
수신 데이터

AT+CIPMUX=모드
다중 접속 설정
OK
AT+CIPSERVER=모드,포트
TCP 서버 모드로 설정
OK

 

PS. ESP8266 AT Command

https://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/

Index of all known AT commands

Basic
WiFI layer
TCPIP Layer
AT
AT+CWMODE
AT+CIPSTATUS
AT+RST
AT+CWJAP
AT+CIPSTART
AT+GMR
AT+CWLAP
AT+CIPSEND
AT+GSLP
AT+CWQAP
AT+CIPCLOSE
ATE
AT+CWSAP
AT+CIFSR

AT+CWLIF
AT+CIPMUX

AT+CWDHCP
AT+CIPSERVER

AT+CIPSTAMAC
AT+CIPMODE

AT+CIPAPMAC
AT+CIPSTO

AT+CIPSTA
AT+CIUPDATE

AT+CIPAP
+IPD

 

끝.

 

 

 

728x90
Posted by 하루y
728x90

 

ESP8266 라이브러리 버전이 많은 듯.... 안정적인 라이브러리가 필요함.

 

관련문서: http://docs.iteadstudio.com/ITEADLIB_Arduino_WeeESP8266/index.html

소스다운로드: https://github.com/itead/ITEADLIB_Arduino_WeeESP8266

 

/**
 * @example TCPServer.ino
 * @brief The TCPServer demo of library WeeESP8266. 
 * @author Wu Pengfei<pengfei.wu@itead.cc> 
 * @date 2015.02
 * 
 * @par Copyright:
 * Copyright (c) 2015 ITEAD Intelligent Systems Co., Ltd. \n\n
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version. \n\n
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

#include "ESP8266.h"

#define SSID        "ITEAD"
#define PASSWORD    "12345678"

ESP8266 wifi(Serial1);

void setup(void)
{
    Serial.begin(9600);
    Serial.print("setup begin\r\n");
    
    Serial.print("FW Version:");
    Serial.println(wifi.getVersion().c_str());
      
    if (wifi.setOprToStationSoftAP()) {
        Serial.print("to station + softap ok\r\n");
    } else {
        Serial.print("to station + softap err\r\n");
    }
 
    if (wifi.joinAP(SSID, PASSWORD)) {
        Serial.print("Join AP success\r\n");
        Serial.print("IP: ");
        Serial.println(wifi.getLocalIP().c_str());    
    } else {
        Serial.print("Join AP failure\r\n");
    }
    
    if (wifi.enableMUX()) {
        Serial.print("multiple ok\r\n");
    } else {
        Serial.print("multiple err\r\n");
    }
    
    if (wifi.startTCPServer(8090)) {
        Serial.print("start tcp server ok\r\n");
    } else {
        Serial.print("start tcp server err\r\n");
    }
    
    if (wifi.setTCPServerTimeout(10)) { 
        Serial.print("set tcp server timout 10 seconds\r\n");
    } else {
        Serial.print("set tcp server timout err\r\n");
    }
    
    Serial.print("setup end\r\n");
}
 
void loop(void)
{
    uint8_t buffer[128] = {0};
    uint8_t mux_id;
    uint32_t len = wifi.recv(&mux_id, buffer, sizeof(buffer), 100);
    if (len > 0) {
        Serial.print("Status:[");
        Serial.print(wifi.getIPStatus().c_str());
        Serial.println("]");
        
        Serial.print("Received from :");
        Serial.print(mux_id);
        Serial.print("[");
        for(uint32_t i = 0; i < len; i++) {
            Serial.print((char)buffer[i]);
        }
        Serial.print("]\r\n");
        
        if(wifi.send(mux_id, buffer, len)) {
            Serial.print("send back ok\r\n");
        } else {
            Serial.print("send back err\r\n");
        }
        
        if (wifi.releaseTCP(mux_id)) {
            Serial.print("release tcp ");
            Serial.print(mux_id);
            Serial.println(" ok");
        } else {
            Serial.print("release tcp");
            Serial.print(mux_id);
            Serial.println(" err");
        }
        
        Serial.print("Status:[");
        Serial.print(wifi.getIPStatus().c_str());
        Serial.println("]");
    }
}
728x90
Posted by 하루y