raspberrypi v3 nodejs stable version install ( 라즈베리파이 버전 3에 nodejs 최신 버전 설치하기 )

이미지
라즈베리파이 버전 3에 nodejs를 설치하기 입니다. default 로 설치되는 버전이 너무 옛날 버전이여서 최신 버전을 설치하는 방법을 정리 하였습니다. 1. 노드 사이트로 갑니다. https://nodejs.org/en/download/ LTS 탭을 선택하고 ARM 버전 중 ARMv7 을 선택하셔야 합니다. ( ARMv8을 선택하시면 동작하지 않습니다.) raspberry pi 의 터미널에서 아래와 같이 실행하시면 됩니다. 2. 파일을 다운로드 받는다. root@raspberrypi:~# wget https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-armv7l.tar.xz 2 3. 받은 파일의 압축을 푼다. root@raspberrypi:~# tar xvf node-v14.15.4-linux-armv7l.tar.xz 4. 압축을 푼 폴더로 이동한다. root@raspberrypi:~# cd node-v14.15.4-linux-armv7l/ root@raspberrypi:~/node-v14.15.4-linux-armv7l# 5. 모든 파일을 /usr/local 로 복사한다. root@raspberrypi:~/node-v14.15.4-linux-armv7l# cp -R * /usr/local/ 6. 실행이 잘 되는지 확인한다. root@raspberrypi:~# cd                    root@raspberrypi:~# pwd                  /root                                           ...

nodejs serial port program ( 노드 시리얼포트 프로그램)

 nodejs 로 serialport 통신을 할수가 있다. 동작 시키기 위해서는   아래의 사이트에 가서 module 을 받아야 한다. https://www.npmjs.com/package/serialport =>   npm i  serialport   을 실행하면 project 에서 serial port 를 사용할 수 있다. 사용방법은 간단하다. var   SerialPort   =   require ( ' serialport ' ) const   PORT   =   ' /dev/ttyS0 ' const   BAUDRATE   =   115200 var   serialport   =   new   SerialPort ( PORT ,{ baudRate : BAUDRATE } ) serialport . on ( ' open ' ,   function ()   {      console . log ( " open  " , serialport . isOpen ) ; } ) ; serialport . on ( ' data ' ,   function   ( data )   {      console . log ( "  receive  " , data ) ; } ) ; serialport . write ( ' Hello \n ' ) 아래와 같이 되어 있다. 1. 선언하고 2. 설정하고 3.열고 4. 읽고 5. 쓰고 추가로 error 와 close 를 사용할 수 있는데 방법은 아래와 같다. var   SerialPort   =   require ( ' serialport ' ) const   PORT ...

pyautogui 특정 이미지의 위치를 찾아서 색상값 확인하기

이미지
아래의 코드는  계산기 프로그램의 종료 시키는 위치를 찾아주는 내용입니다. 계산기 프로그램의 종료 표시 하는 부분만 이미지르 만듭니다. 저는 cloesX.png 라고 만들었습니다. 아래 프로그램은 1초에 한번씩 closeX.png 가 스크린에 있는지 확인하고  있으면 마우스 위치를 closeX.png 로 이동하는 내용입니다. 주의 화면이 빠르게 변경되거나 멀티 스크린을 이용해서 screen 이 여러개 인 경우  오류가 발생할수 있습니다. 그리고, closeX.png 를 잘 만들어야 한다.  정확하게 짤라서 만들어야 합니다. ( 프로그램 위에 위치할 경우 인식을 못합니다. ) import  pyautogui  from  time  import  sleep def   functionC ():     i  =   1      while  i  <   20 :            sleep ( 1 )         buttonX  =  pyautogui . locateOnScreen ( ' closeX.png ' )          print ( buttonX )          if  buttonX  !=   None   :              print ( buttonX . left , buttonX . t...

라즈베리파이 Serial 사용설정 ( raspberrypi serial setting)

이미지
 라즈베리파이 UART 사용 설정하는 방법입니다. 아래와 같이 실행하시면 됩니다.

pyautogui 예제 모니터 특정 위치 색상 구하고 비교해서 클릭 이벤트 하기

모니터에 특정 pixel에 색상을 확인하고  설정해 놓은 색이 나오면  색을 인식하여 클릭 이벤트가 동작하는 예제입니다. 알아야 하는 내용 1. 특정 pixel 에 좌표를 알아야 한다.  2. 특정 pixel 의 색상을 알아야 한다. 3. 마우스 click  event 가 발생해야 한다. 4. 주기적으로 특정 좌표의 색을 확인할수 있어야 한다. 위의 기능을 하나씩 확인해 보도록 하겠습니다. 설치해야 하는 package 는  Pillow pyautogui  2가지 입니다. https://pyautogui.readthedocs.io/en/latest/ https://pillow.readthedocs.io/en/stable/installation.html 실행 소스는 아래와 같다. import  pyautogui  # 현재 스크린의 사이즈를 확인한다. screenWidth ,  screenHeight  =  pyautogui . size ()   print ( screenWidth , screenHeight ) # 현재 스크린을 저장한다. im  =  pyautogui . screenshot () # 특정 영을만 저장할수도 있다. #im = pyautogui.screenshot(region=(0,0, 300, 400)) # 현재 마우스의 좌표를 구한다. cmpos  =  pyautogui . position () # 현재 좌표의 RGB 값을 구한다. rgb  =  im . getpixel ( cmpos ) # 무슨 색인지 출력한다. print ( rgb ) # 마...

reactjs ethereum QR Code ( 리액트 ether qrcode )

이미지
이더리움을 전송하기 위해 QRcode 를 만들어 보았습니다. https://youtu.be/WSiUFD0dcWM 우선 가져와야 하는 npm package 는  https://www.npmjs.com/package/ethereum-qr-code   입니다. nodejs 로 구현되어 있습니다. reactjs 로 그냥은 사용할 수가 없습니다. 나는 reactjs 로 사용하고 싶은데 다른것은 없나? 그래서 또 찾아 보았습니다. https://www.npmjs.com/package/react-ether-qrcode 있습니다. 그럼 이걸 사용해 보았습니다. 코드는  app.js 를 수정하였습니다. import   ' ./App.css '; import   EtherumQRCode   from   " react-ether-qrcode " function   App ()   {    return  (      < div   className = " App " >        < EtherumQRCode   value = { 1 }  gas = { 1300 }  to = { " 0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8 " }  />      </ div >   ) ; } export   default   App ; 동작하지 않습니다.  뭔가 문제가 있습니다. 이런 문제가 발생합니다. 또 찾아 보았습니다. https://github.com/remiroyc/react-ethereum 이건 동작 하겠지 하고 보았습니다. 실행하는 예제가 아닙니다. 그래서 만들었습니다. 실행하는 예제로  아래와...

reactjs 프로젝트 만들기

이미지
간단합니다. yarn create react-app my-app 이렇게만 입력하면 자동으로 프로젝트가 만들어 집니다. cd my-app yarn start    이 순서로 실행하면 reactjs app 가  현재 컴퓨터에 설치되어 있는 기본 browser 를 통해  http://localhost:3000 호출되면서 동작합니다. 여기서 부터 시작입니다. 아래 영상은 위에 내용을 실행한 내용입니다.

윈도우10 MySQL 서비스 중지하기 ( Window10 Mysql Service Start And Stop )

이미지
윈도우10 MySQL 서비스 중지하는 방법 MySQL Workbench에서 중지하는 방법이 있을 줄 알았는데 없어서 찾아 보았습니다. 그리고, 정리해 보았습니다. 1. 서비스창을 연다. ( 윈도우 검색창에 서비스라고 입력한다.) 2. 실행되고 있는 MySQL 서비스의 이름을 찾는다. (위에서 아래로 찾아보시면 MySQL 이라고 시작하는 서비스를 찾을 수 있습니다.  설치한 버전에 따라 MySQLXX 로 표시됩니다.    저의 경우는 MySQL80   입니다. ) 3.. 클릭하여 속성창을 연다. ( 시작 유형이 수동을 되어 있고 서비스가 실행 중 입니다. ) 4.. 중지 버튼을 선택한다. (서비스 상태가 중지됨 으로 변경된 것을 확인 할 수 있습니다. ) 이상이다. 기타 서비스 창을 열어서 실행 하기  1. cmd 창을 연다 ( 관리자 모드로 열어야 합니다.) 2. net stop MySQL80 ( 중지할때 ) 3. net start MySQL80 ( 시작할때 )

안드로이드 스튜디오에 jar가 동작하지 않을 경우

안드로이드 스튜디오에서  jar 파일을 복사해서 프로젝트에 넣어야 할 경우가 있습니다. 이 경우 복사한 jar가 정상적으로 동작하지 않는 경우가 발생합니다.

node sequelize model 생성

이미지
이것저것 하다보니까. 노드를 공부하게 되었고 sequelize 도 알게 되었다. 기존 db에 연동해서 할려고 하니 model 만드는게 귀찮은 일이되었다.  model을 자동으로 생성해서 사용하고 싶었는데 방법 설명이 되어 있는 곳이 별로 없어서 정리한다. 방법은 간단하다. sequelize-auto 를 사용하면 된다. 일종의 code generator 기능을 한다. model 만 만들어 주기 때문에 다른건 만들어 주지 않는다. 나의 경우는 mysql 을 연동해서 만들었는데 npm install -g mysql 을 해서 mysql 연동이 되도록 해야 한다. mysql2 를 사용하면 password 로 접속이 되지 않는다. 이것도 몰라서 한참 찾았다. https://github.com/sequelize/sequelize-auto 여기에 있는 방법 그대로 사용 sequelize-auto -o "./models" -d dbname -h localhost -u my_username -p 3306 -x my_password -e mysql mysql -u root -p 이런씩으로 접속했는데 여거서는 p 옵션이 포트를 뜻한다. 위에 있는 명령 실행하면 자동으로 만들어 진다. 실행화면입니다.

Context mContext 문제

안드로이드 신규 어플 하나 만들어 볼거라고 오랜만에 new project 하나 만들었는데 병신같은 android studio는 오늘도 문제다 new project 하고 activity 에 Context mContext; 하면 자동으로 import 되어야 하는 내용이 갑자기 만들어지지 않는 문제이다. 시발 뭘 업데이트 안해서 발생하는 문젠가??? 아 짜증나 또 지랄이네 뭐가 잘못된 거야 알수가 있나 그래서 3.2 버전 업데이트 하고 grandle 도 같이 업데이트 했는데 똑 같다. 짜증나 .... 뭘 바꾼 거야 이 개새끼들이 그래서 Event log 를 봤지 Disable Power save mode  란 놈이 있는데 이게 뭐야 검색하니까 뭐라 뭐라 나오네 알고 싶지 않다. 그냥 클릭 하면 이전 처럼 자동 업데이트 된다. 아 짜증나. 이 새끼들이 자기들이 업데이트 하면 수많은 엔지니어들이 하지도 않아도 되는 개 고생을 얼마나 해야 하는지 알까. 빌어 먹을 새끼들.

android 8.0 socket 통신 동작하지 않는 이유

oncreate 에 아래 2줄만 추가하며 동작한다. StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode. setThreadPolicy (policy); 병신같은 구글새끼들

c# mqtt client example

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using uPLibrary.Networking.M2Mqtt; using uPLibrary.Networking.M2Mqtt.Messages; namespace MQTTTest {     public partial class Form1 : Form     {         MqttClient client;         public Form1()         {             InitializeComponent();             //client = new MqttClient("broker.hivemq.com");             client = new MqttClient("192.168.0.83");             byte code = client.Connect(Guid.NewGuid().ToString());             client.ProtocolVersion = MqttProtocolVersion.Version_3_1;            ...

비글본 블랙 고정 아이피 설정

아래에 링크를 참조 하시면 됩니다. https://github.com/leesy24/BBB_Web_Manager/wiki/%5BBBB%5D-Set-static-IP-address-on-eth0 /etc/network/interfaces  를 변경하여도 정상적으로 동작하지 않습니다. 위에 링크에 있는 내용을 따라서 하시면 됩니다. 명령어  ip addr show dev eth0  을 입력하면 아래와 같이 나옵니다. 2: eth0: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000     link/ether de:ad:be:ef:ca:be brd ff:ff:ff:ff:ff:ff     inet 192.168.0.88/24 brd 192.168.0.255 scope global eth0        valid_lft forever preferred_lft forever     inet 192.168.0.112/24 brd 192.168.0.255 scope global secondary eth0        valid_lft forever preferred_lft forever     inet6 fe80::6a9e:19ff:fe6f:64f/64 scope link        valid_lft forever preferred_lft forever connmatctl services  해서 나오는  ethernet_689e196f064f_cable ( 이더텟 인터페이스) 을  아래와 같이 설정하면 됩니다. connmanctl config ethern...

sts error failed to load the jni shared library

윈도우 10 에서 STS 다운로드 받아서 실행하면  실행은 안되고  sts error failed to load the jni shared library 에러가 나온다. 원인은 java 실행 파일 패스가 64bit 로 되어 잇어서 발생하는문제이다. sts 쪽에 ini 파일을 고쳐야 하는데 어딜 수정해야 하는지 알고 싶지 않다. 그럼 어떻게  => 고급 시스템 설정 보기 누르고 ==> 환경 변수에서 ==> PAHT 에 자바 경로를        C:\Program Files\Java\jdk1.8.0_161\bin 로 변경한다.        이전에는       C:\Program Files (x86)\Java\jdk1.8.0_161\bin 아래에 있는 놈으로 해서 안되었다. 욕나와 STS 에서 이런건 고쳐서 배포해야 하는거 아닌가 싶다. 윈도우에서는 설치를 해보지도 않고 그냥 배포하는것 같다.

mt2523 hdk flashdown

이미지
mt2523 hdk flash tool download how to display_drawing_image.bin flash.bin flash_download.cfg mt2523_bootloader.bin must exist in the same folder.

SCAM-30 동작 영상

이미지
동작 확인이 힘든 제품입니다. 동작 시킨 환경 OS : Window7 64bit https://youtu.be/44AfyjiDEqk window 10 64bit 에서는 동작하지 않습니다. (저의 경우) 인터넷에 찾아봐도 되는지 확인할수 있는 영상이 없어서 올립니다.

java simpledateformat JAVA SIMPLEDATEFORMAT 자바 심플데이타 포맷

1. Date to String ====================================================== Date now = new Date(); String strnow =""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); strnow = sdf.format(now); Log.d("xxx"," strnow "+strnow); 2. String to Date ====================================================== try {       Date ddate = new Date();     String strdate= "2017-09-09 11:11:11";     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");       ddate = sdf.parse(strdate);     Log.d("xxx","ddate "+ddate .toString()); } catch (ParseException e) {     e.printStackTrace(); } 3. SimpleDateFormat ====================================================== SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); S...

HC-6, HC-10 change Name

HC-6  , HC-10  REF CODE #include <SoftwareSerial.h> SoftwareSerial BTSerial(2, 3); // SoftwareSerial(RX, TX) bool isSendMsg = false; byte buf[1024]; int cnt; void setup() {   Serial.begin(9600);     Serial.println("Hello!");   BTSerial.begin(9600);  // BTSerial.write("AT"); // write it to BT  cnt = 0; } void loop(){   while (BTSerial.available()){ // if BT sends something       byte data = BTSerial.read();       Serial.write(data); // write it to serial(serial monitor)     }   while (Serial.available()){ // if Serial has input(from serial monitor)       byte data = Serial.read();     buf[cnt++] = data;     //Serial.println("AT");       //BTSerial.write("AT");     //Serial.write(data);     //BTSerial.write(data); // write it to BT     isSendMsg = true;   ...

C# sound library ref

http://cscore.codeplex.com/ https://github.com/Alkalinee/Hurricane http://stackoverflow.com/questions/1525320/how-to-enumerate-audio-out-devices-in-c-sharp https://social.msdn.microsoft.com/Forums/vstudio/en-US/f402c024-1ac6-47c3-ab73-475ce207b004/how-to-change-default-sound-output?forum=csharpgeneral http://www.codeproject.com/Articles/31836/Changing-your-Windows-audio-device-programmaticall http://www.daveamenta.com/2011-05/programmatically-or-command-line-change-the-default-sound-playback-device-in-windows-7/ http://www.codeproject.com/Articles/22951/Sound-Activated-Recorder-with-Spectrogram-in-C http://stackoverflow.com/questions/32330511/c-sharp-microphone-noise-detection https://naudio.codeplex.com/