Ntrip Client for ESP32
개요
F9P도 나왔다.
ESP32의 WiFi로 RTCM3를 주워 와서, M8P라든지 F9P에 던질 수 있으면 최고군요··.
라든지 망상하고 있으면, 소스 코드를 공개하고 있는 분이 있었습니다.
이 자리를 빌려 감사를 전하고 싶습니다.
호랑이 기술 키트
Bluetooth SPP 정보
모처럼 시리얼의 RXD가 비어 있고 블루투스도 내장하고 있으니까··와, BluetoothSerial.h를 사용해 보았습니다만, 데이터 중단되고 프리즈 하고, 그대로는 사용물이 되지 않습니다. (2019/2현시점)
보드에 짜 보았다.
테스트 단계에서는 16시간 정도 움직였습니다.
데이터를 가지고 있지 않았기 때문에 자고 있거나 다른 작업하고 있는 동안의 거동이라든지는 모르지만, 동결하지 않고 가동하고 있었습니다.
전원 부분의 회로는 아키즈키 전자의 ESP8266의 회로도를 참고로 했습니다.
htp // 아키즈키덴시. 코 m/타타 g/g/gK-12236/
부품표
아키즈키 전자에서 살 수 있는 것은 [통판 코드]로서 기술했습니다.
호랑이 기술의 M8P
코드가 달린 시가 소켓
터미널 2P[P-01306]
RN42[M-07612]
3단자 레귤레이터[I-08678]
방열기[P-05052]
알루미늄 개체 커패시터 [P-09475]
3단자 레귤레이터[I-11299]
쇼트키 배리어 다이오드 [I-05951]
DIP 스위치 4P[P-08923]
칩 적층 세라믹 커패시터 [P-13374]
전해 콘덴서 [P-03177]
저항기 470 옴*2,10k 옴*4
RN42[K-07378]
UEW선 0.2mm 조금 주의:90mA 정도까지밖에 흘릴 수 없습니다.
주석 도금 선 0.6mm 조금
핀 헤더 약간
범용 기판
버튼 스위치 2개
Ambient로 보내려고 노력했습니다.
재료 원래는 여기.
ESP8266의 RXD에 NMEA를 흘려야합니다.
현재 직결하고 있습니다만, 전기적으로 이것으로 좋은 것인지는 모릅니다. 조언 해 주시면 도움이됩니다.
(거의 코피페의 키메라 상태)
출처
NTRIPClient_ambient_beta01.ino
/*
* NTRIP client for Arduino Ver. 1.0.0
* NTRIPClient Sample
* Request Source Table (Source Table is basestation list in NTRIP Caster)
* Request Reference Data
*
*
*/
/*
add AMBIENT
*/
#include <ESP8266WiFi.h> //Need for ESP8266
//#include <WiFi.h> //Need for ESP32
#include "NTRIPClient.h"
#include <TinyGPS++.h>
#include "Ambient.h"
const char* ssid = "your_ssid";
const char* password = "your_password";
char* host = "ntrip caster host";
int httpPort = 2101; //port 2101 is default port of NTRIP caster
char* mntpnt = "ntrip caster's mountpoint";
char* user = "ntrip caster's client user";
char* passwd = "ntrip caster's client password";
NTRIPClient ntrip_c;
WiFiClient connect2;
extern "C" {
#include "user_interface.h"
}
unsigned int channelId = 100;
const char* writeKey = "ライトキー";
TinyGPSPlus gps;
void sendInfo2Ambient();
Ambient ambient;
void setup() {
// put your setup code here, to run once:
Serial.begin(19200);
delay(10);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Requesting SourceTable.");
if(ntrip_c.reqSrcTbl(host,httpPort)){
char buffer[512];
delay(5);
while(ntrip_c.available()){
ntrip_c.readLine(buffer,sizeof(buffer));
Serial.print(buffer);
}
}
else{
Serial.println("SourceTable request error");
}
Serial.print("Requesting SourceTable is OK\n");
ntrip_c.stop(); //Need to call "stop" function for next request.
Serial.println("Requesting MountPoint's Raw data");
if(!ntrip_c.reqRaw(host,httpPort,mntpnt,user,passwd)){
delay(15000);
ESP.restart();
}
Serial.println("Requesting MountPoint is OK");
ambient.begin(channelId, writeKey, &connect2 );
}
void loop() {
// put your main code here, to run repeatedly:
while(ntrip_c.available()) {
char ch = ntrip_c.read();
Serial.print(ch);
}
if (gps.location.isValid()) {
sendInfo2Ambient();
}
while (Serial.available() > 0) {
if (gps.encode(Serial.read())) {
break;
}
}
}
void sendInfo2Ambient() {
char buf[16];
if (gps.location.isValid()) {
dtostrf(gps.altitude.meters(), 4, 2, buf);
ambient.set(1, buf);
dtostrf(gps.location.lat(), 12, 8, buf);
ambient.set(9, buf);
dtostrf(gps.location.lng(), 12, 8, buf);
ambient.set(10, buf);
ambient.send();
}
}
Reference
이 문제에 관하여(Ntrip Client for ESP32), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yasunori_oi/items/87e8a574f48bbbf5facf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ESP32의 WiFi로 RTCM3를 주워 와서, M8P라든지 F9P에 던질 수 있으면 최고군요··.
라든지 망상하고 있으면, 소스 코드를 공개하고 있는 분이 있었습니다.
이 자리를 빌려 감사를 전하고 싶습니다.
호랑이 기술 키트
Bluetooth SPP 정보
모처럼 시리얼의 RXD가 비어 있고 블루투스도 내장하고 있으니까··와, BluetoothSerial.h를 사용해 보았습니다만, 데이터 중단되고 프리즈 하고, 그대로는 사용물이 되지 않습니다. (2019/2현시점)
보드에 짜 보았다.
테스트 단계에서는 16시간 정도 움직였습니다.
데이터를 가지고 있지 않았기 때문에 자고 있거나 다른 작업하고 있는 동안의 거동이라든지는 모르지만, 동결하지 않고 가동하고 있었습니다.
전원 부분의 회로는 아키즈키 전자의 ESP8266의 회로도를 참고로 했습니다.
htp // 아키즈키덴시. 코 m/타타 g/g/gK-12236/
부품표
아키즈키 전자에서 살 수 있는 것은 [통판 코드]로서 기술했습니다.
호랑이 기술의 M8P
코드가 달린 시가 소켓
터미널 2P[P-01306]
RN42[M-07612]
3단자 레귤레이터[I-08678]
방열기[P-05052]
알루미늄 개체 커패시터 [P-09475]
3단자 레귤레이터[I-11299]
쇼트키 배리어 다이오드 [I-05951]
DIP 스위치 4P[P-08923]
칩 적층 세라믹 커패시터 [P-13374]
전해 콘덴서 [P-03177]
저항기 470 옴*2,10k 옴*4
RN42[K-07378]
UEW선 0.2mm 조금 주의:90mA 정도까지밖에 흘릴 수 없습니다.
주석 도금 선 0.6mm 조금
핀 헤더 약간
범용 기판
버튼 스위치 2개
Ambient로 보내려고 노력했습니다.
재료 원래는 여기.
ESP8266의 RXD에 NMEA를 흘려야합니다.
현재 직결하고 있습니다만, 전기적으로 이것으로 좋은 것인지는 모릅니다. 조언 해 주시면 도움이됩니다.
(거의 코피페의 키메라 상태)
출처
NTRIPClient_ambient_beta01.ino
/*
* NTRIP client for Arduino Ver. 1.0.0
* NTRIPClient Sample
* Request Source Table (Source Table is basestation list in NTRIP Caster)
* Request Reference Data
*
*
*/
/*
add AMBIENT
*/
#include <ESP8266WiFi.h> //Need for ESP8266
//#include <WiFi.h> //Need for ESP32
#include "NTRIPClient.h"
#include <TinyGPS++.h>
#include "Ambient.h"
const char* ssid = "your_ssid";
const char* password = "your_password";
char* host = "ntrip caster host";
int httpPort = 2101; //port 2101 is default port of NTRIP caster
char* mntpnt = "ntrip caster's mountpoint";
char* user = "ntrip caster's client user";
char* passwd = "ntrip caster's client password";
NTRIPClient ntrip_c;
WiFiClient connect2;
extern "C" {
#include "user_interface.h"
}
unsigned int channelId = 100;
const char* writeKey = "ライトキー";
TinyGPSPlus gps;
void sendInfo2Ambient();
Ambient ambient;
void setup() {
// put your setup code here, to run once:
Serial.begin(19200);
delay(10);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Requesting SourceTable.");
if(ntrip_c.reqSrcTbl(host,httpPort)){
char buffer[512];
delay(5);
while(ntrip_c.available()){
ntrip_c.readLine(buffer,sizeof(buffer));
Serial.print(buffer);
}
}
else{
Serial.println("SourceTable request error");
}
Serial.print("Requesting SourceTable is OK\n");
ntrip_c.stop(); //Need to call "stop" function for next request.
Serial.println("Requesting MountPoint's Raw data");
if(!ntrip_c.reqRaw(host,httpPort,mntpnt,user,passwd)){
delay(15000);
ESP.restart();
}
Serial.println("Requesting MountPoint is OK");
ambient.begin(channelId, writeKey, &connect2 );
}
void loop() {
// put your main code here, to run repeatedly:
while(ntrip_c.available()) {
char ch = ntrip_c.read();
Serial.print(ch);
}
if (gps.location.isValid()) {
sendInfo2Ambient();
}
while (Serial.available() > 0) {
if (gps.encode(Serial.read())) {
break;
}
}
}
void sendInfo2Ambient() {
char buf[16];
if (gps.location.isValid()) {
dtostrf(gps.altitude.meters(), 4, 2, buf);
ambient.set(1, buf);
dtostrf(gps.location.lat(), 12, 8, buf);
ambient.set(9, buf);
dtostrf(gps.location.lng(), 12, 8, buf);
ambient.set(10, buf);
ambient.send();
}
}
Reference
이 문제에 관하여(Ntrip Client for ESP32), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yasunori_oi/items/87e8a574f48bbbf5facf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
모처럼 시리얼의 RXD가 비어 있고 블루투스도 내장하고 있으니까··와, BluetoothSerial.h를 사용해 보았습니다만, 데이터 중단되고 프리즈 하고, 그대로는 사용물이 되지 않습니다. (2019/2현시점)
보드에 짜 보았다.
테스트 단계에서는 16시간 정도 움직였습니다.
데이터를 가지고 있지 않았기 때문에 자고 있거나 다른 작업하고 있는 동안의 거동이라든지는 모르지만, 동결하지 않고 가동하고 있었습니다.
전원 부분의 회로는 아키즈키 전자의 ESP8266의 회로도를 참고로 했습니다.
htp // 아키즈키덴시. 코 m/타타 g/g/gK-12236/
부품표
아키즈키 전자에서 살 수 있는 것은 [통판 코드]로서 기술했습니다.
호랑이 기술의 M8P
코드가 달린 시가 소켓
터미널 2P[P-01306]
RN42[M-07612]
3단자 레귤레이터[I-08678]
방열기[P-05052]
알루미늄 개체 커패시터 [P-09475]
3단자 레귤레이터[I-11299]
쇼트키 배리어 다이오드 [I-05951]
DIP 스위치 4P[P-08923]
칩 적층 세라믹 커패시터 [P-13374]
전해 콘덴서 [P-03177]
저항기 470 옴*2,10k 옴*4
RN42[K-07378]
UEW선 0.2mm 조금 주의:90mA 정도까지밖에 흘릴 수 없습니다.
주석 도금 선 0.6mm 조금
핀 헤더 약간
범용 기판
버튼 스위치 2개
Ambient로 보내려고 노력했습니다.
재료 원래는 여기.
ESP8266의 RXD에 NMEA를 흘려야합니다.
현재 직결하고 있습니다만, 전기적으로 이것으로 좋은 것인지는 모릅니다. 조언 해 주시면 도움이됩니다.
(거의 코피페의 키메라 상태)
출처
NTRIPClient_ambient_beta01.ino
/*
* NTRIP client for Arduino Ver. 1.0.0
* NTRIPClient Sample
* Request Source Table (Source Table is basestation list in NTRIP Caster)
* Request Reference Data
*
*
*/
/*
add AMBIENT
*/
#include <ESP8266WiFi.h> //Need for ESP8266
//#include <WiFi.h> //Need for ESP32
#include "NTRIPClient.h"
#include <TinyGPS++.h>
#include "Ambient.h"
const char* ssid = "your_ssid";
const char* password = "your_password";
char* host = "ntrip caster host";
int httpPort = 2101; //port 2101 is default port of NTRIP caster
char* mntpnt = "ntrip caster's mountpoint";
char* user = "ntrip caster's client user";
char* passwd = "ntrip caster's client password";
NTRIPClient ntrip_c;
WiFiClient connect2;
extern "C" {
#include "user_interface.h"
}
unsigned int channelId = 100;
const char* writeKey = "ライトキー";
TinyGPSPlus gps;
void sendInfo2Ambient();
Ambient ambient;
void setup() {
// put your setup code here, to run once:
Serial.begin(19200);
delay(10);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Requesting SourceTable.");
if(ntrip_c.reqSrcTbl(host,httpPort)){
char buffer[512];
delay(5);
while(ntrip_c.available()){
ntrip_c.readLine(buffer,sizeof(buffer));
Serial.print(buffer);
}
}
else{
Serial.println("SourceTable request error");
}
Serial.print("Requesting SourceTable is OK\n");
ntrip_c.stop(); //Need to call "stop" function for next request.
Serial.println("Requesting MountPoint's Raw data");
if(!ntrip_c.reqRaw(host,httpPort,mntpnt,user,passwd)){
delay(15000);
ESP.restart();
}
Serial.println("Requesting MountPoint is OK");
ambient.begin(channelId, writeKey, &connect2 );
}
void loop() {
// put your main code here, to run repeatedly:
while(ntrip_c.available()) {
char ch = ntrip_c.read();
Serial.print(ch);
}
if (gps.location.isValid()) {
sendInfo2Ambient();
}
while (Serial.available() > 0) {
if (gps.encode(Serial.read())) {
break;
}
}
}
void sendInfo2Ambient() {
char buf[16];
if (gps.location.isValid()) {
dtostrf(gps.altitude.meters(), 4, 2, buf);
ambient.set(1, buf);
dtostrf(gps.location.lat(), 12, 8, buf);
ambient.set(9, buf);
dtostrf(gps.location.lng(), 12, 8, buf);
ambient.set(10, buf);
ambient.send();
}
}
Reference
이 문제에 관하여(Ntrip Client for ESP32), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yasunori_oi/items/87e8a574f48bbbf5facf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
재료 원래는 여기.
ESP8266의 RXD에 NMEA를 흘려야합니다.
현재 직결하고 있습니다만, 전기적으로 이것으로 좋은 것인지는 모릅니다. 조언 해 주시면 도움이됩니다.
(거의 코피페의 키메라 상태)
출처
NTRIPClient_ambient_beta01.ino
/*
* NTRIP client for Arduino Ver. 1.0.0
* NTRIPClient Sample
* Request Source Table (Source Table is basestation list in NTRIP Caster)
* Request Reference Data
*
*
*/
/*
add AMBIENT
*/
#include <ESP8266WiFi.h> //Need for ESP8266
//#include <WiFi.h> //Need for ESP32
#include "NTRIPClient.h"
#include <TinyGPS++.h>
#include "Ambient.h"
const char* ssid = "your_ssid";
const char* password = "your_password";
char* host = "ntrip caster host";
int httpPort = 2101; //port 2101 is default port of NTRIP caster
char* mntpnt = "ntrip caster's mountpoint";
char* user = "ntrip caster's client user";
char* passwd = "ntrip caster's client password";
NTRIPClient ntrip_c;
WiFiClient connect2;
extern "C" {
#include "user_interface.h"
}
unsigned int channelId = 100;
const char* writeKey = "ライトキー";
TinyGPSPlus gps;
void sendInfo2Ambient();
Ambient ambient;
void setup() {
// put your setup code here, to run once:
Serial.begin(19200);
delay(10);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Requesting SourceTable.");
if(ntrip_c.reqSrcTbl(host,httpPort)){
char buffer[512];
delay(5);
while(ntrip_c.available()){
ntrip_c.readLine(buffer,sizeof(buffer));
Serial.print(buffer);
}
}
else{
Serial.println("SourceTable request error");
}
Serial.print("Requesting SourceTable is OK\n");
ntrip_c.stop(); //Need to call "stop" function for next request.
Serial.println("Requesting MountPoint's Raw data");
if(!ntrip_c.reqRaw(host,httpPort,mntpnt,user,passwd)){
delay(15000);
ESP.restart();
}
Serial.println("Requesting MountPoint is OK");
ambient.begin(channelId, writeKey, &connect2 );
}
void loop() {
// put your main code here, to run repeatedly:
while(ntrip_c.available()) {
char ch = ntrip_c.read();
Serial.print(ch);
}
if (gps.location.isValid()) {
sendInfo2Ambient();
}
while (Serial.available() > 0) {
if (gps.encode(Serial.read())) {
break;
}
}
}
void sendInfo2Ambient() {
char buf[16];
if (gps.location.isValid()) {
dtostrf(gps.altitude.meters(), 4, 2, buf);
ambient.set(1, buf);
dtostrf(gps.location.lat(), 12, 8, buf);
ambient.set(9, buf);
dtostrf(gps.location.lng(), 12, 8, buf);
ambient.set(10, buf);
ambient.send();
}
}
Reference
이 문제에 관하여(Ntrip Client for ESP32), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yasunori_oi/items/87e8a574f48bbbf5facf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)