728x90

목동코딩 : 무인키오스크 개발

이번에 개발해서 납품한, 무인스터디카페 시스템이 실제 운영을 시작했습니다.

개발을 하면서 운영 방식이 조금씩 바뀌다 보니, 미쳐 생각하지 못한 에러를 바로 잡느라고 2일 정도를 추가로 현장에서 작업을 했습니다.

이제 실제 모드로 바꾸어서 , 방문 하는 학생들이 회원 등록하고, 결제하고 , 자리 설정을 하고 하는 장면을 보니까 마음이 뿌듯합니다 ㅎㅎ.

부디 큰 에러 없이 시스템이 운영 되기를 바랍니다.

시스템이라는 말이 유기적인 연관성을 가지고 운영 된다는 말인 것 처럼, 이번에 개발한 무인스터디카페 시스템도 여러가지 모듈이 연결된 구성이라서 나름 재밌는 프로젝트 였습니다.

마스크 덕분에 모자이크 처리는 안 해도 되네요 ㅎㅎ.

 

목동코딩 키오스크개발
목동코딩 키오스크개발
목동코딩 키오스크개발
목동코딩 키오스크개발
목동코딩 키오스크개발

 

 

728x90
728x90

목동코딩: 내발산동 그랑데 무인스터디카페 오픈

2021.10.1 토요일 , 언택트메이커스 2호점을 오픈했습니다.

시스템 준비는 1호점을 위해서 시작했는데 실 적용은 2호점을 먼저 하게 되었습니다 ㅎ.

음악을 잘 모르는 나 이지만, 음악으로 설명하면 오늘 오케스트라 공연을 한거와 비슷할거 같습니다.

키오스크를 통한 사용요금 결제를 하고, 자리 설정을 통한 출입을 통제하고, 동시에 사용할 자리의 전등 제어까지 운영 시나리오에 따라서 시스템 테스트를 했습니다.

테스트 과정을 지켜본 관계자 분들이 코딩의 신기함에 얼굴에 미소가 번져갔습니다. 예전에 제회사 로고를 인쇄한 트럭들을 길에서 볼때의 설레임이 생각 났습니다. 이 시스템도 많은 회원들이 사용 하기를 바랍니다.

 

많은 프로젝트가 개발비를 들인다고 모두 만족할 만한 성과를 내지는 못하는데, 나름 만적한 모습 이었습니다.

시스템 테스트를 하는 동안, 내 머리속은 바쁘게 돌아 갔습니다. 오케스트라를 지휘하면서 악기 소리가 제대로 나느지도 체크하고, 그러면서 제대로 하모니가 이루어지는 지를 점검했습니다.

전과정을 혼자서 만들었기에 오히려 편했다는 생각입니다. 테스트 과정에서 보완 할 문제를 내 머리속에서만 해결하면 되니까 다른 팀 과의 인터페이스가 필요 없었습니다.

카드결제, 출입통제, 전등통제, 카톡을 통한 알림 등등이 통합된 시스템입니다. 이렇게 언택트로 ,하나 둘씩 제가 관리해야할 업체가 늘어 가는 모습에 만족한 하루 였네요.....

조만간 간석점도 오픈을 해야하니 이제 3호점에서 운영할 시스템을 또 준비해야겠습니다. 각각의 점포의 운영 방식이 조금씩 다르다 보니, 적용할 무인시스템도 약간의 커스터마이징이 필요하네요. 그래도 모 어때요 그게 다 돈인데 ㅎㅎㅎ.

 

목동코딩 코딩교육 키오스크개발
목동코딩 코딩교육 키오스크개발
목동코딩 코딩교육 키오스크개발
목동코딩 코딩교육 키오스크개발

 

목동코딩 코딩교육 키오스크개발
목동코딩 코딩교육 키오스크개발
목동코딩 코딩교육 키오스크개발

 

 

목동코딩: 그랑데 스터디카페 키오스크운영 테스트

 

목동코딩: 그랑데 스터디카페 키오스크운영 테스트

 

728x90
728x90

목동코딩학원 : 안드로이드 교육

안드로이드로 앱을 개발하다 보면, 안드로이드에서 제공하는 Toast 메시지로만 처리하기에는 조금 부족한 면이 있다. 그래서 Toast 역시 커스터마이징 해서 표시되는 위치나 글자 크기, 색상 등을 변경해서 사용하곤 했다.

이번에는 커스텀 다이얼로그를 만들어서 이미지 까지 포함하는 메시지를 사용하는 방법을 정리해둔다.

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="500dp"
    android:layout_height="500dp"
    android:gravity="center"
    android:layout_marginBottom="30dp"
    android:layout_marginTop="50dp"
    android:background="#ffffff"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:background="#ffffff"
        android:orientation="vertical">

        <TextView
            android:id="@+id/custom_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:text="이용약관"
            android:textSize="40dp" />

        <TextView
            android:id="@+id/custom_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:text="확인합니다"
            android:textSize="20dp" />

        <ImageView
            android:id="@+id/custom_image"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:src="@drawable/common_member" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:layout_marginTop="20dp"
        android:weightSum="100">

        <Button
            android:id="@+id/pbutton"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:text="확인" />

        <Button
            android:id="@+id/nbutton"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:text="취소" />
    </LinearLayout>
</LinearLayout>

 

목동코딩학원 코딩교육 키오스크개발

 

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //다이얼로그 밖의 화면은 흐리게 만들어줌
        WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
        layoutParams.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
        layoutParams.dimAmount = 0.8f;
        getWindow().setAttributes(layoutParams);

        setContentView(R.layout.custom_dialog);

        full_screen();

        //셋팅
        mTitle = (TextView)findViewById(R.id.custom_title);
        mText = (TextView)findViewById(R.id.custom_text);
        mImage = (ImageView)findViewById(R.id.custom_image);

 
        mTitle.setText(sTitle);
        mText.setText(sText);
        mImage.setImageResource(R.drawable.common);        

        mPositiveButton=(Button)findViewById(R.id.pbutton);
        mNegativeButton=(Button)findViewById(R.id.nbutton);

        //클릭 리스너 셋팅 (클릭버튼이 동작하도록 만들어줌.)
        mPositiveButton.setOnClickListener(mPositiveListener);
        mNegativeButton.setOnClickListener(mNegativeListener);
    }
String title = "구매등록";
String text1 = "이용권 구매를 완료했습니다";
customDialog = new CustomDialog(AmountActivity.this,positiveListener,negativeListener);
customDialog.setsTitle(title);
customDialog.setsText(text1);
customDialog.show();

목동코딩 언택트 코딩교육

 

728x90
728x90

목동코딩 : 안드로이드 코딩교육

안드로이드 앱을 개발하면서 아래 사진과 같은 체크박스를 만들고 싶어서, 구글 검색을 통해 체크박스 크기를 변경하는 방법을 찾다보니, background에 이미지를 넣어서 하는 방법이 있어서 정리해 둡니다.

 

 

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 체크박스 해제상태 -->
    <item android:drawable="@drawable/check_before" android:state_checked="false" />
    <!-- 체크박스 선택상태 -->
    <item android:drawable="@drawable/check_drop" android:state_checked="true" />
    <!-- 체크박스 기본상태 -->
    <item android:drawable="@drawable/check_before" />
</selector>

 

 

<CheckBox

android:layout_width="40dp"

android:layout_height="40dp"

android:text=""

android:id="@+id/term"

android:layout_marginLeft="76dp"

android:gravity="center"

android:button="@android:color/transparent"

android:background="@drawable/check_box"

android:layout_alignParentRight="true" />

 

목동코딩 안드로이드 앱개발 코딩교육

 

 

목동코딩 안드로이드 앱개발 코딩교육

 

 

목동코딩 안드로이드 앱개발 코딩교육

728x90
728x90

목동코딩:

오늘은 청라에 가서 무인 스터디카페 시스템을 종합 테스트를 진행했습니다. 그중에 입실.퇴실과 동시에 각각 회원의 자리의 전등제어를 하기 위해서 Sonoff의 펌웨어를 커스터마이징을 하였습니다.

이번 시스템은 중앙 집중적인 서버 방식에서 벗어나, 로컬방식으로 진행했습니다.

간혹 중앙 집중적인 서버에 문제가 생기면, 전체 스터디카페 프랜차이즈가 문제가 발생하는 것을 방지 하기 위하여, 로컬 방식으로 진행을 했습니다. 그리고 인터넷으로 인한 문제를 최소화 하기 위해서 3중 인터넷 방식으로 준비 하였습니다.

전등제어 전체 모듈에 펌웨어를 업로드 한후 , 자리예약, 입실, 퇴실을 테스트 해보니 다행스럽게 잘 동작 하였습니다.

이제 본격적으로 무인 스터디 카페가 오픈을 하면 , 조금 더 모니터링을 하면서 혹시 수정 사항이 있는지 , 다시 한번 체크할 예정입니다. 경험상 시스템의 가(假) 오픈에서 발견되지 않던 오류가 , 실제 오픈에서 발견되는 경우가 종종 있으니 신경을 더 많이 써야 하겠습니다 ㅎ.

 

 

목동코딩학원 무인스터티카페 전등제어 펌웨어 커스터마이징

 

728x90
728x90

목동코딩학원: 키오스크개발

스터디카페용 무인 키오스크 프로젝트를 하면서 전등 제어를 해야할 필요가 생겼다. 회원의 입실과 퇴실시 전기를 낭비하지 않기 위하여, 자동으로 전등을 On Off 하는 내용이 프로젝트에 포함 되어있었다.

그래서 새롭게 PCB를 설계하여 개발하려고 했으나 빠른 납기문제로 기존에 판매중인 와이파이 스위치를 사용하기로 했다.

현재 판매되는 제품은 거의 모든 제품이 와이파이 스위치를 판매하는 브랜드별로 컨트롤 앱을 별도로 제공을 한다. 일반 사용자는 간편하게 앱을 다운받아서 사용하면 된다. 하지만 여기에 문제가 있었다. 지금 내가 개발하는 스터디카페 키오스크시스템에 연동을 하기 위해서는 펌웨어를 반드시 바꿔야만 했다. 그래서 열심히 검색한 결과로 펌웨어를 교체하는 방법을 알게됐다. 오늘의 블로그는 단순하게 펌웨를 바꾸어서 테스트한 영상을 올립니다

 

 

 

 

 

 

 

728x90

+ Recent posts