가을은 점점 가득 찬다. 곱게 물들어가는 날이 빠르기만 하다. 무엇을 놓치고 사는 게 중요한 게 아니라 무엇을 가지고 살아가는지 돌아볼 일이다.
스마트 팩토리 센서 데이터 전송으로 한참을 고생하다가 결국 출장을 가서 겨우 코드를 만들어 왔다. 어차피 할 거라서 잘해야겠다.라고 생각할 필요도 없다. 무슨 일을 하느냐가 중요한 게 아니라 일을 어떻게 하느냐가 중요하다고 말은 한다. 말이 의미하는 그 겉멋에 감동받게 되지만 속지 않아야 한다. 아무리 그래도 무슨 일을 하는지가 더 중요하다. 돈을 버는 일인지, 낭비를 하는 일인지, 자신을 성장시키는지 여하튼 어떻게 하더라도 일 자체가 자지고 있는 특성은 변함이 없다. 그래서 그런지 무엇 하나 되더라도 너무 어렵게 된다.
데이터가 전혀 들어오지 않는다고 해서 출장을 왔다. 결국 문제를 알아내긴 했지만 왠지 썩 좋은 해결책으로 보이지 않는다. 아래는 돌아가는 소스코드를 올려둔다. 왜 돌아가는지도 모르는 코드라서.^^ 본격적으로 데이터를 보내는 일이 남았다. 이전까지는 대충 보냈거든.
/*
Web client
This sketch connects to a website (http://www.google.com)
using the WiFi module.
This example is written for a network using WPA encryption. For
WEP or WPA, change the Wifi.begin() call accordingly.
This example is written for a network using WPA encryption. For
WEP or WPA, change the Wifi.begin() call accordingly.
Circuit:
* Board with NINA module (Arduino MKR WiFi 1010, MKR VIDOR 4000 and UNO WiFi Rev.2)
created 13 July 2010
by dlf (Metodo2 srl)
modified 31 May 2012
by Tom Igoe
*/
#include <SPI.h>
#include <WiFiNINA.h>
#include <ArduinoJson.h>
#include "arduino_secrets.h"
///////please enter your sensitive data in the Secret tab/arduino_secrets.h
char ssid[] = SECRET_SSID; // your network SSID (name)
char pass[] = SECRET_PASS; // your network password (use for WPA, or use as key for WEP)
int keyIndex = 0; // your network key Index number (needed only for WEP)
int status = WL_IDLE_STATUS;
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128); // numeric IP for Google (no DNS)
char server[] = "jarvis.wepnp.com"; // name address for Google (using DNS)
//char server[] = "www.google.com";
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
WiFiClient client;
StaticJsonBuffer<200> jsonBuffer;
JsonObject& root = jsonBuffer.createObject();
void setup() {
//Initialize serial and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// check for the WiFi module:
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("Communication with WiFi module failed!");
// don't continue
while (true);
}
String fv = WiFi.firmwareVersion();
if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
Serial.println("Please upgrade the firmware");
}
// attempt to connect to Wifi network:
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid, pass);
// wait 10 seconds for connection:
delay(10000);
}
Serial.println("Connected to wifi");
printWifiStatus();
Serial.println("\nStarting connection to server...");
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.println("connected to server");
// Make a HTTP request:
root["machine"] = "gps";
root["temperature"] = 350;
root["humidity"] = 34;
root["power"] = 0;
root["count"] = 3;
client.print("GET /API/v2/kpi/data/insert?data={%22machine%22:%22");
client.print("print-02");
client.print("%22,%22temperature%22:");
client.print(350);
client.print(",%22humidity%22:");
client.print(34);
client.print(",%22power%22:");
client.print(0);
client.print(",%22count%22:");
client.print(3);
client.println("} HTTP/1.1");
//root.printTo(client);
//client.print(" HTTP/1.1");
client.println("Host: jarvis.wepnp.com");
client.println("Authorization: Basic YmVsbGFuZWxsYTplU21aNmJvMjFjVGt1dnA3bXM2ZFI0Snlabw==");
//client.println("Content-Type: application/x-www-form-urlencoded");
//client.println("Connection: close");
client.println();
//client.print("data=");
//JsonObject& root = jsonBuffer.createObject();
//root.printTo(Serial);
//root.printTo(client);
//data send
}
}
void loop() {
// if there are incoming bytes available
// from the server, read them and print them:
while (client.available()) {
char c = client.read();
Serial.write(c);
}
// if the server's disconnected, stop the client:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting from server.");
client.stop();
// do nothing forevermore:
while (true);
}
}
void printWifiStatus() {
// print the SSID of the network you're attached to:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// print your board's IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
// print the received signal strength:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
}
결과 화면을 참고하도록 올려둔다.


'개발자 > Arduino' 카테고리의 다른 글
| OpenWeatherMap 날씨 정보를 OLED 에 디스플레이, Nano 33 IoT (2) | 2020.10.24 |
|---|---|
| Nano 33 IoT 보드에서 아날로그 적외선 거리센서 (GP2Y0A21YK) (0) | 2020.10.20 |
| nano 33 iot 보드 타이머 인터럽트 예제 (0) | 2020.10.20 |
| 스마트 팩토리 연결도와 소스코드 20201018 (0) | 2020.10.18 |
| openweathermap 온도 데이터를 섭씨온도로 변환 (0) | 2020.10.13 |
| Decoding and Encoding JSON with Arduino Nano 33 IoT 3 (0) | 2020.10.12 |
| Decoding and Encoding JSON with Arduino Nano 33 IoT 1 (0) | 2020.10.10 |
| Decoding and Encoding JSON with Arduino Nano 33 IoT 2 (0) | 2020.10.09 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.
귀사가 성공하기까지의 긴 고난의 시간을 캐어랩과 함께 하세요.
캐어랩