4월, 2023의 게시물 표시

T-PICOC3(MICROPYTHON)으로 온습도(SHT30) 테스트. (1)

이미지
 T-PICOC3(MICROPYTHON)으로 온습도(SHT30) 테스트. (1) 나는 알리익스프레스 쇼핑을 참 좋아한다. 한달에 한건 이상은 무조건 사고 싶은걸 보고 주문  하는것 같다.  이번에 산건 라즈베리파이 피코 같은 녀석인데. LILYGO 라는 회사에서 만든 제품인듯 하다. 이녀석이고 대략 15000~20000원 선 인듯 하다.  난 17000원에 샀는데 다른 판매자들은 조금씩 다르게 판다. 그리고 또 산건  이녀석 온습도 센서다. I2C로 통신하고, 전원은 2.5 ~ 5V 까지라고 한다. 일단 wire로 각각의 위치에 맞게 땜을 날려줬다.  일단 하드웨어 준비는 마쳤고. C 타입 USB 로 전원을 연결하면, 처음에 아래의 동영상 처럼 동작 한다. 처음에 제조사에서 wifi등을 테스트 하기 위한 프로그램인것 같다. 어딘가로 연결 하려고 시도하였으나, 실패. 저기서 계속 기다리고 있는것 같다.  여튼 위의 프로그램은 밀어 버릴거고, 디스플레이는 생각보다 나쁘진 않다. 자 이제 프로그래밍 모드로 들어가고 싶은데 도대체 어떻게 연결해야 프로그래밍 모드로 동작하는건지 한참 해맸다. 일단 usb c type 의 방향에 따라, RP2040 에 연결 되거나, ESP32-C3 에 연결된다.  연결후 파란색 LED 가 켜지면 RP2040 , 초록색 LED 가 켜지면 ESP32-C3 에 연결 되는데, 난 RP2040 만 연결하면 되니, 그방향으로 연결하고, 프로그래밍 툴은 thonny 라는 python ide 가 있다.  이녀석을 일단 설치,  https://thonny.org/  T-picoC3 의 예제 및 기타 폰트 소스가 있는 곳은 https://github.com/Xinyuan-LilyGO/T-PicoC3   여기 일단 프로그래밍 툴 및 예제 파일 까지 다운 받았으니,  준비는 마쳤고, 다음에 연결해서 기본 예제를 돌려봐야 겠다. 저 git 저장소엔...

C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (6)

이미지
   C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (6) 이전 (이전포스트) 엔 지정한 회차 수만큼 읽어서 데이터 값을 텍스트 박스에 뿌렸는데 , 이번엔 텍스트 박스를 과감히 지우고 차트를 한번 만들어 봤다. 마지막 회차를 알아 내는걸 만들려다가 귀찮아서 포기, 크롤링을 하던지, 회차들 읽다가 데이터 없는 회차를 확인 하던지 할려고 했는데 흥미가 떨어져 이번 차트까지만 만들고 다른걸 해봐야 겠다. 일단은 차트는 구글링으로 또 찾아보니... LIVECHART 라는 녀석이 있었다. 설치 방법은 그냥 검색만 하면 바로 나온다. visual studio 에서 상단 도구 탭 -> NuGet 패키지 관리자 -> 솔루션용 NuGet 패키지 관리 에서 찾아보기 한다음 LiveCharts.WpF 를 설치하면  LiveCharts , LiveCharts.WpF 가 둘다 설치  된다고 하는데 난 LiveCharts 부터 설치해서 그냥 다 설치 했다. 그리고 시작은  XAML 에 xmlns:lvc1="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" 를 추가한다. xmlns: 뒤에 lvc1 은 그냥 아무거나 하고 싶은대로 난 이것저것 테스트하다가 lvc1 으로  그리고 난 내가 원하는 탭의 그리드 안쪽에 차트를 추가하는데, 도구상자에 없으니깐 좀 귀찮 추가하니 이러한 모양의 그래프가 생성되었다. 근데 난 막대 그래프를 원한다.  그건 series 에서 추가 하면 되는거 같으니 뒤에서 cs 소스에서 추가 해보자.......  세로축 value 값과, 가로축 값은 라벨로 일단 적용 했드아. 차트에 series 와 밸류가 없어서 임의로 저런 모양의 차트가 나오는것 같다. 그리고 원래 데이터 값을 바인딩 하여 쓰려고 했는데.. 테스트 해보다가 ... 값이 적용이 잘안되 그냥 매번 클리어 하고 새로 추가 하는 방식으로 했다. 이전 소스에서 스레드의 마...

C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (5)

이미지
   C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (5) 이전 (이전포스트) 엔 동행복권에서 제공하는 API 라고 하긴 좀 그렇지만 여튼 그걸로 회차를 입력해서 당첨 번호를 가져왔는데,  이번엔 회차 범위를 지정하고 그중 당첨번호만 따로 저장해놓고 몇번이 얼만큼 나왔는지 확인 해보려고 한다.  그리구 이 다음엔 그 번호들로 그래프를 그려봐야겠다.  점점 초보의 한계가 보이기 시작한다....  그래도 공부니깐 Try 해야지. 늘 다른분들의 예제를 참고하여 진행 하는데.. 이번엔 진행하다가 backgroundworker에서 progressbar 의 수치를 변경하는 예제를 해보다가 안되서... 그냥 가라로 해버렸다. 나중에 더 테스트 해봐야겠다. ㅠㅠ  검색할 시작 회차와 끝 회차를 기입후 회차 검색 버튼을 눌르면 진행바가 진행되고, 완료가  되면 텍스트 박스에 각 번호별로 얼만큼 나왔는지 확인해 보자. private void button_Click ( object sender, RoutedEventArgs e) { if ( (! string .IsNullOrEmpty(textBox_num.Text)) && ( int .TryParse(textBox_num.Text, out _)) && (! string .IsNullOrEmpty(textBox_num2.Text)) && ( int .TryParse(textBox_num2.Text, out _))) { button.IsEnabled = false ; worker = new BackgroundWorker(); worker.WorkerReportsProgress = true ; worker.DoWork += worker_dowork; worker.ProgressChanged += worker_progress; } else { textBox_js...

C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (4)

이미지
    C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (4) 이전 (이전포스트) 엔 선택한 버튼의 숫자를 텍스트 박스에 넣어주는 것과, 6개의 번호를 다 랜덤으로 만들어 주는 메소드를 만들었었다.  이번엔 몇개의 특정 번호는 내가 선택하고 나머지 숫자들을 랜덤으로 만들어 주는 버튼의 이벤트 메소드를 만들어야 겠다. 근데 저번에 만든 소스에서 조건만 넣어주면 될 것 같아서 메소드에 매개변수를 추가 해서 조건만 넣어 주었다. private void rand_num_create ( bool bAll_rand) { Random cRandomobj = new Random(); int [] iaRand_num = new int [ 6 ]; int iRandbuff = 0 ; int iBoxCount = 1 ; if (bAll_rand== true ) { button_clear(); iCount = 0 ; } else if (iCount< 6 ) { int iRandA_count_buff = 0 ; for ( int k = 1 ; k < 46 ; k++) { if (baLotto_number[k] == true ) { iaRand_num[iRandA_count_buff++] = k; } } } while (iCount < 6 ) { iRandbuff = cRandomobj.Next( 1 , 46 ); if (!Array.Exists(iaRand_num, x => x == iRandbuff)) { iaRand_num[iCount++] = iRandbuff; baLotto_number[iRandbuff] = true ; caButton[iRandbuff].Background = new SolidColorBrush((Co...

C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (3)

   C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (3) 이전 (이전포스트) 엔 클릭한 버튼 색상을 변경하고, 6개 이상 눌르면 더 선택 못하게 팝업창을띄웠었다.  이제 클릭한 버튼의 텍스트를 텍스트 박스에 넣어봐야겠다. 버튼을 클릭할때마다 박스에 순차로 채우는것 보단, 아무래도 내림차순으로 채워 주는게 좋을듯 싶어 버튼 클릭 이벤트 마다 박스 내용을 지우고, for 문을 돌려 상태값을 저장한 배열에서 선택된 애들만 박스에 순차로 넣으면 내림차순으로 채워질것 같다. 일단 텍스트 박스도 클래스로 배열을 만들어 각각의 텍스트 박스를 넣어줘야겠다. TextBox[] caBox = new TextBox[ 7 ]; 역시 0부터 하면 가끔 햇갈려서 1부터 하려고 박스는 6개지만 배열을 7개를 만들었다. private void create_array () {      for ( int i = 1 ; i< 7 ; i++)      { caBox[i] = this .FindName( "textBox" + i.ToString()) as TextBox;      } } 위처럼 메소드를 하나 만들어서 위에 만든 배열에 나의 텍스트 박스들을 넣어줬다. 인터넷에 찾아보니, 위의 FindName 을 써서 xaml 에서 이름을 찾아서 넣을 수 있는것 같다.그리고 저 메소드를 메인 윈도우 메소드에서 실행하게 해놨다. 그렇게 만든 텍스트 박스 배열들로 버튼 이벤트가 발생되면 박스내용을 초기화 하고 상태값을 저장한 배열에서 변경된 애들만 검색해서 텍스트 박스에 순차로 집어넣자 private void button1_Click ( object sender, RoutedEventArgs e) {           Button cButton = (Button)sender; ...

C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (2)

이미지
  C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (2) 저번에 레이아웃만 대충 잡아놨었다..  이전글 혼자서 끙끙알면서 대충 UI 를 꾸며봤다.  아무리봐도 난 디자인에 소질이 없다. 기능은  1. 일단 버튼을 누르면 색이 변하자. (버튼 이벤트를 하나로 만들자.) 2. 버튼은 총 6개 까지만 선택이 가능하게. 3. 6개 이상 눌르면 팝업창을 띄우자. 4. 아래 6개의 텍스트 박스에 내가 클릭한 번호들을 넘겨주자. 낮은 번호 순으로 5. auto all number 버튼은 1~45까지의 난수를 생성한다. 값이 중복되면 다시 시도한다.   생성한 난수 별로 버튼 색을 변경 시키고, 텍스트 박스에 넘겨주자. 6. auto fill number 는 수동으로 몇개의 숫자를 선택후 나머지 숫자에 대해 난수를 생성하여 버튼 색을 변경 시키고, 텍스트 박스에 넘겨주자. ➤ 버튼을 누르면 색이 변하고 6개까지만 선택 가능하게, 6개 이상 눌르면 팝업창. 버튼을 더블클릭하니 클릭 이벤트가 xaml.cs 에 하나 생성 되었다.  버튼이 무려 45개나 되어, 이것들의 이벤트를 일일이 다 만들긴 귀찮을 거 같으니, 인터넷 서치를 했다. private void button1_Click ( object sender, RoutedEventArgs e) { Button cButton = (Button)sender; } 저 메소드를 모든 버튼에 연결 시켜 주고 매개변수 sender 를 새로운 버튼 클래스를 만들어  넣어주는것 같다. 확실히 기초가 부족하니 내가 하는 말이 맞는지 모르겠다. 그후에 새로 만든 버튼 클래스를 이용해 변경 해주면 되는것 같다. 일단 버튼 색을 무슨색으로 변하게 할지 선정부터 했다. 음 디자인에 소질이 없는 나는 그냥 대충 저색이다. #FFE67474 이게 내 버튼색 cButton.Background = new SolidColorBrush((Color)Col...

C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (1)

이미지
C# (WPF)으로 로또 번호 생성 프로그램을 만들어 보자 (1) 프로그램 C# 을 공부 하기위해 그냥 책보고 예제를 따라 하는건 재미가 없다고 생각하여.. 간단하게 WPF 로 로또 프로그램을 만들어 볼 생각. 인터넷에 알아보니 이전 회자 번호도 조회하는 API 가 있다고 한다. 그래서 구상은. 탭을 나눠  1번 탭은 번호들이 45개가 있고 그걸 선택하는 버튼들이 있고, 랜덤으로 번호 생성버튼, 몇개 번호를 선택후 나머지 번호를 채워주는 버튼 정도. 2번 탭은 이전 회차들을 조회해서 당첨 번호들의 통계같은걸 만들어 봐야겠다. 데헷 이번에 처음으로 visual studio 2022 를 커뮤니티 버전으로 깔았다. 일단은 새프로젝트를 만들고 WPF 애플리 케이션, WPF 클래스 라이브러리, WPF 앱(.NET Framework) 가 있네?  뭔지 모를땐 인터넷 검색 ㄱㄱ 음 찾아보니  WPF 애플리 케이션은 크로스 플랫폼용으로 개발 할때 쓰는거라고 하는것 같고 WPF 클래스 라이브러리는 아무래도 WPF용 DLL 만드는거 같다  WPF 앱(.NET Framework)로 보통 windows 용으로 만들때 쓰는거라고 하니. WPF 앱(.NET  Framework)로 시작 해보자. 이름은 LOTTO_TEST 로 ㅎㅎ 음 처음 보이는게 디자인 창이구나,, 예전에 PYTHON 으로 Qtdesigner 로 간단한 UI 프로그램 을 만들어 본적이 있어 비슷하겠다고 생각. 일단 프로젝트는 만들었고 기본 레이아웃은 잘 모르겠으니 일단 세로가 기본 450 으로 되어 있는거 같으니 450 x 450 으로 변경 해야겠다. 안에 그리드가 자동으로 생성 되네 지워 버리고 탭탭탭....... 탭 컨트롤이구나. 아직까진 좋구여. 테스트로 버튼 깔아서 실행만 시켜봐야겠다 잉 ? 난 좌측처럼 디자인 했는데 실행하니 우측이 좀 짤린다??? 화면을 좀 늘려보니 좌우측 대칭이 맞는걸 보니 자동으로 축소 되는가 싶어 구글링을 해봤는데 내 서치 실력이 딸려서 인가 ...