본문 바로가기

메이커 Maker

리필스테이션 V1.0 수정 코드 설명

반응형

 

 

리필스테이션 V1.0 수정 코드 설명 

 

시스템을 만드는 일은 어려운 일이다. 하나의 시스템을 만들기 위해 해야 하는 일은 정말 많다. 아무리 많은 시스템이 생겨난다고 해도 쉽게 만들어지는 시스템은 없다. 일처리의 시작과 끝이나, 일을 실행하는 단계와 절차의 총합은 언제든 만들 수 있지만 그게 시스템은 아니다. 

 

"시스템이란 관련된 요소들의 집합체이다. 굉장히 포괄적인 개념이다. 우리의 모든 일상이 시스템이라고 부를 수 있을 정도로 넓은 개념이다. 예를 들어, 김밥이라는 시스템은 관련된 요소가 김, 밥, 햄, 계란 등이다. 김과 밥이 각각 냉장고와 밥솥에 있으면 그것은 김밥이 아니다. 모아서 말아놓아야 김밥이다. 김밥 자체가 시스템이면 이것으로 끝나지만 여기에 유통과 남품과 브랜드, 대량생산과 HACCP과 제도와 법과 모든 비지니스가 결합한 시스템이 만들어진다. 다시 말해, 시스템이란 관련된 무언가를 모아둔 것이다." - 정보시스템이란? 참고

 

시스템을 많이 만들고 싶은 남자는 지난주 금요일 광명에 출장을 갔다. 다시 코드를 변경하고 마무리 지었다. 완벽함이란 단어를 조심스럽지만 어디서나 사용하기로 한다. 남은 몫 역시 남자의 일이다. 

 

1. Refillstation 제품의 모든 공유기 접속 아이디와 패스워드를 아래와 같이 통합하기로 한다. 원래 이런가? 다른 매장들은 이렇게 사용하지 않는데. 공개되는 것과는 다른 모양이다. 

 

#define SECRET_SSID "eco*******"
#define SECRET_PASS "pale******"

 

2. WiFi 접속은 거의 끊어지지 않는다. 진짜 며칠 동안 한 번도 끊어지지 않는다. 하지만 MQTT 서버와 연결은 자주 끊어진다. 고려해야 한다. 20초 이상 리필을 하고 나면 MQTT 서버와 연결이 끊어지는데 Nano 33 IoT 보드 특성인지, 서버 문제인지 아직은 찾지 못했다. 아래는 처음 코드인데 MQTT 서버와 연결이 안 되어 다시 연결하는 코드인데 제대로 되지 않아 수정하였다.

 

기계적 관점에서 표현해야 하나? 인간적인 관점에서 표현해야 하나?   

 

if(!client.connected()) 
    {
        client.connect(""); // 앞서 설정한 클라이언트 ID로 연결합니다.
        client.subscribe("operate"); // inTopic 토픽을 듣습니다. topic 츨 구독
    }

 

3. 아래 코드로 변경한다. MQTT 서버에 연결할 수 없을 때 다시 연결하는 reconnect( ) 코드가 잘 만들어져 있어서 교체한다. 그러니까 계속 MQTT 서버를 접속하기 위해 노력한다. 죽을 때까지. 이미 WiFi 연결은 앞에서 체크했으므로. 어랏! - 평생 해도 WiFi 가 연결되어 있어야 의미가 있는 거 아냐?

 

while(!client.connected()) 
    {
        reconnect();
        //client.connect(""); // 앞서 설정한 클라이언트 ID로 연결합니다.
        //client.subscribe("operate"); // inTopic 토픽을 듣습니다. topic 츨 구독
    }

 

참고로 MQTT 서버와 연결을 실행하는 reconnect( ) 코드를 참고한다. 연결을 실행하는 호출 함수의 인자는 모두 정해진 것이다. 

 

void reconnect()
{
     //setup MQTT server
     client.setServer(mqtt_server, 1883); // Wait----MQTT 서버에 연결합니다.
     if(client.connect(machine_code, mqtt_username, mqtt_password)) 
     {
        client.subscribe("operate"); //20210520 insert
        Serial.println("\tNot Connect... MQTT Connected");
     }
     client.setCallback(callback);
}

 

 

 

Nobody.2021

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

귀사가 성공하기까지의 긴 고난의 시간을 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩