'FQDN'에 해당되는 글 2건

  1. 2020.04.21 Hardware | ESP32 NTP Server 이용한 시간 맞추기
  2. 2018.03.25 Hardware | Cross cable 로 MediaWiki 서버 연결해 보기

Hardware | ESP32 NTP Server 이용한 시간 맞추기

|

지금까지 ESP32 에 관한 글은 아래를 참고해 주세요.


* Hardware | ESP32 Deep sleep 알아보기
    - https://chocoball.tistory.com/entry/Hardware-ESP32-Deep-sleep

* Hardware | ESP32 Cryptographic HW 가속 확인해 보기
    - https://chocoball.tistory.com/entry/Hardware-ESP32-Cryptographic-HW-acceleration

* Hardware | EPS32 PWM 기능 확인해 보기
    - https://chocoball.tistory.com/entry/Hardware-EPS32-PWM

* Hardware | ESP32 의 internal sensor 확인해 보기
    - https://chocoball.tistory.com/entry/Hardware-ESP32-internal-sensors

* Hardware | ESP32 의 Dual core 확인해 보기
    - https://chocoball.tistory.com/entry/Hardware-ESP32-Dual-core

* Hardware | ESP32 스펙 확인해 보기
    - https://chocoball.tistory.com/entry/Hardware-ESP32-spec-check

* Hardware | ESP32 간단 사용기
    - https://chocoball.tistory.com/entry/Hardware-simple-review-ESP32


이 글을 마지막으로 ESP32 에 대해 대략적인 내용은 얼추 확인해 본 것 같습니다.

이후에는 WiFi 이용한 활용시에는 가능한 ESP32 를 사용해 보려 합니다.




1. NTP


본 포스트는 아래 글을 참조 하였습니다.


* Getting Date & Time From NTP Server With ESP32

- https://lastminuteengineers.com/esp32-ntp-server-date-time-tutorial/



NTP 서버란 인터넷에서 시간을 동기화 시켜주는 서버를 말합니다.
인증, GPS 위치와 연관된 시간 정보, 동기화와 관련된 timestamp 등, 인터넷 서비스의 거의 모든 기능들이 동일한 "시간" 정보가 필요합니다.


동일한 시간 기준으로 동작해야 하는 서비스를 위해, 인터넷에서는 NTP 라는 서비스가 지원되고 있습니다.


* Network Time Protocol

- https://en.wikipedia.org/wiki/Network_Time_Protocol


이를태면, 정확한 시간 정보를 가져올 수 있는 서버들이 존재한다는 것이죠.




2. WiFi



"인터넷" 을 통해 시간 정보를 가져와야 하므로, WiFi 등의 인터넷 연결이 필수 입니다.

ESP32 는, WiFi 연결을 위해 "WiFi.h" 라이브러리를 지원합니다. 이를 통해 쉽게 WiFi 연결을 실현해 줍니다.

지금까지 Arduino + ESP8266 에서는 AT command 를 이용하여, 하나하나 명령어를 정의해야 했었는데, 그럴 수고를 덜어줍니다.


const char* ssid       = "YOUR_SSID";
const char* password   = "YOUR_PASS";


인터넷 접속을 위한 WiFI SSID 및 비번 정의를 하면 끝 입니다. 정말로 이걸로 끝입니다.




3. NTP


NTP 서버를 통해 시간을 가져오는 소스는 다음과 같습니다.


#include "WiFi.h"
#include "time.h"

const char* ssid       = "YOUR_SSID";
const char* password   = "YOUR_PASS";

const char* ntpServer = "pool.ntp.org";
const long  gmtOffset_sec = 3600;
const int   daylightOffset_sec = 3600;

void printLocalTime() {
	struct tm timeinfo;
	if(!getLocalTime(&timeinfo)) {
		Serial.println("Failed to obtain time");
		return;
	}
	Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
}

void setup() {
	Serial.begin(115200);
	
	// connect to WiFi
	Serial.printf("Connecting to %s ", ssid);
	WiFi.begin(ssid, password);
	while (WiFi.status() != WL_CONNECTED) {
		delay(500);
		Serial.print(".");
	}
	Serial.println(" CONNECTED");
	
	// init and get the time
	configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
	printLocalTime();
	
	// disconnect WiFi as it's no longer needed
	WiFi.disconnect(true);
	WiFi.mode(WIFI_OFF);
}

void loop() {
	delay(1000);
	printLocalTime();
}


위의 소스를 각 로컬 상황에 맞게 설정해줘야 합니다.


const char* ntpServer = "pool.ntp.org";
const long  gmtOffset_sec = 3600;
const int   daylightOffset_sec = 3600;


우선, NTP 서버는 "pool.ntp.org" 로 정의 합니다. 이 FQDN 을 통해 NTP 서버를 할당 받습니다.


"gmOffset_sec" 는 GMT 기준으로 얼마나 차이나는지를 확인합니다.

한국은 그리니치 천문대 기준 9시간 추가된 시간대인, "GMT+9" 이므로 "3600 * 9 = 32400" 만큼 더해주면 됩니다.


또한, "daylightOffset_sec" 은, 서머타임 적용 지역이면, 한시간인 3600 을 적용하면 됩니다.

우리나라는 서머타임 적용은 80년대에 일시적으로 적용하고, 그 이후 사용되지 않으므로 "0" 으로 정의합니다. (옛날 사람...)


위의 내용을 적용하고 실행하면 다음과 같이 됩니다.



한국 상황에 맞게, 요일까지 정확히 표시할 수 있는 것을 확인했습니다.



FIN

ESP32 의 WiFi 구현이 얼마나 간단한지를 확인해 보기 위해 NTP 서비스를 활용해 봤습니다.
앞으로는 ESP32 를 통하여 다양한 project 를 해봐야 겠네요.

끝.


And

Hardware | Cross cable 로 MediaWiki 서버 연결해 보기

|

1. 시작


Raspberry Pi 3 model B를 사용하여 MediaWiki 를 개인 서버로 활용하고 있습니다.

도메인은 아직 구입하지 못했지만, "www.chocoball.com" FQDN 을 치면, Host 파일에서 해당 IP를 할당받은

Raspberry Pi 3 model B 로 접속합니다.


이제 회사에서 보안 문제로 IP를 할당받기 어려워 고민에 빠졌습니다.





2. Crossover cable


크로스 케이블은 중간에 hub 를 거치지 않고, 직접 PC to PC, PC to Server 로 연결할 수 있는 방법입니다.

실제 IP 를 받지 않아도 PC / Laptop 과 직접 연결하여 통신할 수 있습니다.


원리는 Hub 를 통해서 in / out 이 연결 되면, RX/TX 를 교환해 주는데,

Crossove 케이블을 직접 연결하면, Hub 를 통한 것 처럼 되는 원리 입니다.



알리익스프레스에서 cross cable 로 검색해 보니, 다음과 같은 제품이 있네요!


원래는 크로스 케이블 전체를 구입해야 하나,

기존 LAN선 끝부분에 어뎁터처럼 연결하여 크로스 케이블 RX/TX 를 교환해주는 효과를 내는 제품이었습니다.


* RJ45 CAT5 CAT5E Network Ethernet Connector male to female Cable cross Adapter New Free Shipping

https://ko.aliexpress.com/item/RJ45-CAT5-CAT5E-Network-Ethernet-Connector-male-to-female-Cable-cross-Adapter-New-Free-Shipping/32830530823.html




기존 Lan 케이블을 사용할 수 있고, 이 어뎁터만 끼우면 Crossover 케이블이 되므로 좋아 보이네요.



아래는 제품 설명입니다.


RJ45 crossover In-line Coupler provides a Male-to-Female feed-through connection.

Enable connecting 2 LAN cables to become an extension.

Compatible with all routers/hubs/network RJ45 connections.


The adapter will allow you to connect 2 PCs or hubs with regular network cables instead of crossover cables

Convert your patch cable into a crossover cable by connecting it to this adapter

Gold plated connectors

Meets draft 11 of the EIA / TIA 586A category and specification


Color : blue. Type : Adapter.


외형입니다.

왠만하면 중국어로 되어 있습니다. 중국어를 이제 공부해야 할것 같습니다.






3. 도착


한 3주만에 도착했습니다. 뽁뽁이로 잘 쌓여서요.



확대한 사진입니다. 제조 마무리는 잘 되어 있는것 같습니다.



조그마한 때도 같이 왔네요.






4. 연결


일반 Lan 케이블 끝에 이번에 구입한 어뎁터를 끼우고, Raspberry Pi 3 model B 의 Wired Lan port 에 접속시킵니다.



Lan 케이블 한쪽 끝은 노트북 Wired Lan port 에 연결합니다.






5. 설정


Raspberry Pi 3 model B 에서도 인터넷을 사용할 수 있도록 공유 설정을 해 줍니다.


* Control Panel > Network 와 Internet > Network 접속



무선 네트웍 아이콘을 오른클릭 하여, 설정 메뉴로 진입합니다.



공유 탭에서 인터넷 접속을 "로컬 네트웍" 접속에 공유하기를 설정해 줍니다.



이제 Windows 7 에서 설정이 완료 되었습니다.

이제 유선랜은 무선랜의 인터넷이 공유됩니다.




6. 유선랜 연결


Raspberry Pi 3 model B 에서 확인해 봅니다

IP를 잘 할당 받았네요..



인터넷 외부와 접속 되는지 ping 으로 확인해 봅니다.

성공입니다~!!!






7. 역으로 접속


이제 Laptop 에서 Raspberry Pi 3 model B 에서 돌아가는 MediaWiki 에 접속하기 위해 IP 를 찾아 봅니다.


이미 위에서 직접 Raspberry Pi 에 consol 연결하여 확인해 보았지만,

그렇지 않을 경우는 이렇게 arp 명령어를 이용하여 찾을 수 있습니다.



Host 파일을 이용하여 직접 접속할 수 있도록 resolver 를 설정해 줍니다.


- C:\Windows\System32\drivers\etc\hosts



짜잔~~~.

이제 직접 접속할 수 있게 되었습니다.



이제 따로 IP 를 할당받지 않고, 명함 크기만한 Raspberry Pi 3 model B 를 직접 가지고 다니면서 활용할 수 있게 되었습니다.

사실, VMware 같은 가상 서버를 만들면 되지만...





8. 번외


손 맛사지기 USB 충전기를 이번에 사용했더니, 다음과 같은 dmesg 메시지가 나오네요.

Under voltage 워닝도 나오고 Raspberry Pi 3 model B 와 Ubuntu Mate 의 페어는 괜찮은것 같습니다.






FIN


Raspberry Pi 시리즈는 Model A 1+ > Model B 1 > B 1+ > B 2 까지,

안전성을 위해서 비싸더라도 아래 제조사의 통 알루미늄 케이스를 구입해서 사용하고 있었습니다.


* Pi Holder (Pi 3 B only) SECURE Case with Heat Dissipation

https://wickedaluminum.com/



Model 3 B+ 가 새로 나왔다 하니, 이제 통알루미늄 케이스를 구입해서 쉽게 가지고 다닐수 있게 할까 생각해 봅니다.


And
prev | 1 | next