예제의 결과물
준비물 & 결선 & 세팅하기
아래 링크를 참고해서 준비해주세요.
* 준비물 구입 링크
https://smartstore.naver.com/frontiers/products/5380911083
소스코드 다운
iotfrontiers/popsign_examples (github.com)
위 링크에 들어가셔서 연두색의 Code 버튼을 누르시고
Download ZIP 버튼을 누르면 전체 예제 파일을 다운 받을 수 있습니다.
업로드 준비
① 파일 - 열기 항목을 눌러서 현재 진행하고 있는 예제의 ino파일을 선택합니다.
② 보드와 PC를 USB C타입 케이블로 연결합니다.
③ 장치관리자에서 보드가 연결된 포트를 확인합니다. USB-SERIAL-CH340 이라는 이름으로 표시되어 있습니다.
④ 위에서 확인한 포트번호를 IDE에 설정합니다
⑤ ESP-32 Dev Module 보드를 선택합니다.
⑥ 업로드 준비가 다 되었습니다. 업로드 버튼을 눌러서 업로드 할 수 있습니다.
시리얼 모니터
스케치 우측상단 돋보기 모양을 선택하면 시리얼 모니터를 실행할 수 있습니다.
시리얼 모니터의 보드레이트를 코드상에서 설정한 보드레이트 (115200) 와 동일하게 설정해야 합니다.
시리얼 모니터를 통해 보드가 컴퓨터로 보내는 내용을 볼 수 있고
전송 버튼 왼쪽에 있는 입력 창에 텍스트를 입력한 후 전송 버튼을 눌러서 보드로 내용을 전송할 수도 있습니다.
wifiScan 소스코드
#include <WiFi.h>
#include <Adafruit_GFX.h>
#include <P3RGB64x32MatrixPanel.h>
#include <Fonts/FreeSans9pt7b.h>
P3RGB64x32MatrixPanel matrix(25, 26, 27, 21, 22, 0, 15, 32, 33, 12, 5, 23, 4);
void setup()
{
Serial.begin(115200);
// Set WiFi to station mode and disconnect from an AP if it was previously connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Setup done");
}
void loop()
{
matrix.begin();
matrix.fillScreen(0);
Serial.println("scan start");
// WiFi.scanNetworks will return the number of networks found
int n = WiFi.scanNetworks();
Serial.println("scan done");
if (n == 0) {
Serial.println("no networks found");
} else {
Serial.print(n);
Serial.println(" networks found");
for (int i = 0; i < n; ++i) {
// Print SSID and RSSI for each network found
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.print(")");
matrix.setCursor(3, 8);
matrix.print("Scanning");
matrix.setCursor(3, 17);
matrix.print("WiFi");
Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*");
delay(10);
}
}
Serial.println("");
// Wait a bit before scanning again
delay(5000);
}
코드 살펴보기
ESP32는 Wi-Fi 범위 내에서 근처 Wi-Fi 네트워크를 검색 할 수 있습니다.
사용 가능한 네트워크와 RSSI (수신 신호 강도 표시기)를 확인할 수 있습니다.
int n = WiFi.scanNetworks();
WiFi.scanNetworks(); // 찾은 네트워크 수를 반환합니다.
Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*");
WiFi.encryptionType(); // 네트워크 암호화 유형을 반환합니다.
개방형 네트워크의 경우 *를 표시합니다.
Serial.print(WiFi.SSID(i));
특정 네트워크에 대한 이름을 반환합니다.
Serial.print(WiFi.RSSI(i));
RSSI는 R eceived S ignal S trength I ndicator를 의미합니다.
단말기에 수신되는 신호 세기(크기)를 나타냅니다.
아두이노 IDE에서 시리얼 모니터를 통해 와이파이가 잡히는 것을 확인할 수 있습니다.
네트워크 수신률이 의미하는 바를 살펴보겠습니다.
- 수신률 양호 : - 30 ~ - 80
- 수신률 불안정 : - 80 ~ -90
- 수신률 불량 : - 90 이하
댓글