여기서 F3:EA:9A:C0:FF:FF 형태의 MAC 주소는 demo의 tutorial1, ble_connect.py 를 실행하여 알아낼 수도 있으며, 또한 bluetoothctl 쉘에서 scan on 을 입력함으로써 주변 BLE 기기의 MAC 주소를 파악하여 알아낼 수도 있다.
#의존성패키지 설치
sudo apt install mariadb-server mosquitto nodejs -y
#다운로드 및 설치
git clone https://gitlab.com/JiNong_Public/farmosV2.git
cd farmosV2/scripts
sudo ./install.sh
실행
sudo service fui start
sudo service fcore start
sudo service cvtgate start
8081 포트로 웹 접속
유저정보 확인하라고 뜨며, 로그인 안됨.
mysql을 지우고, 재설치 시 작동
기본 아이디 비밀번호: farmos / farmosv2@
KSX3267에 따라 장비를 제작하고, NUC에 연결하였으나, 장비검색이 안됨
200424
각 페이지의 정보는 ui/src/views/app/page에 있음
200507
gate에 파이썬 코드가 있음. 파이썬2 환경에서 실행되는 듯
gate/connection.py를 실행하였을 때에, 오류가 발생
다음 명령 후 재부팅
sudo usermod -a -G dialout 사용자이름
여전히 장비검색 안 됨. 다음 스크립트 시도
sudo chmod 777 /dev/ttyACM0
여전히 장비검색 안 됨
200508
시작시 실행되는 스크립트는 fcore, fui , cvtgate인데, 이것들은 /etc/init.d 폴더에 포함돼 있다. 각 스크립트가 실행하는 코드는 다음과 같다.
여기서 WORK_DIR = “/home/changho/farmosV2/” 를 기본으로 한다.
소개한 모든기능이 올라가있는지? 아니다. 인공지능, 비표준 장비 업데이트 기능이 빠져있다. 비표준 장비는 오픈할 계획이 없다. 인공지능은 내년..
아키텍쳐
200612
백엔드 통신을 관장하는 cvtgate. ~gate/couplemng.py 코드를 실행하여 관리하는 구조.
couplemng.py 의 134줄
adaemon = Daemon('cpmng', runner)
from daemon import Daemon, Runner
같은 폴더 내의 daemon.py를 열어보니, #Daemon을 만들어주는 클래스를 정의함’ #이라고 돼 있음
class Daemon의 def __init__(self, pname, runner, stdin=’/dev/null’, stdout=’/dev/null’, stderr=’/dev/null’): 을 참조, couplemng.py 134줄의 Daemon 클래스의 인자 cpmng와 runner 는 class Daemon에서 pname, runner에 해당되는 것을 알 수 있다.
pidfile 은 self.pidfile = “/var/run/” + pname + “.pid”, 즉 /var/run/cpmng.pid 에 데몬 pid를 기록한다.
runner 정보는 ~/conf/cpmng.conf 에 json 형식으로 기록되어 있음. 아래와 같은 형식으로 되어 있음
iter은 수집한 샘플 데이터 중 몇 개의 후보군 중에 선택할 것인지, 후보군의 갯수 (couplemng.py 97 – 125줄) 후보군은 loadcandidates 로 불러오는데, 이는 ../conf/localcouple.json의 json정보를 불러와서, extracouples(gate) 함수를 호출한다. (여기서 gate 는 localcouple.json 파일의 내용) extractcouples 함수는 config.json에 정의된 couples 키가 없다면, localcouple.json 정보의 gate[“children”] 정보를 반환한다.
6월22일
localcouple.json 을 python에서 josn.loads로 읽어들이면 다음과 같다.
이 때에 conf 는 localcouple.json –>> children –>0–>> dsmate 혹은 ssmate 이며, dsmate일 경우 mod는 ‘mate_ksx3267v2‘로서 프로토콜을 반환한다. importlib.import_module(conf[‘mod’]) 줄에서 mate_ksx3267v2.py를 실행하는데, 해당코드는 표준센서노드와의 통신을 수행한다.
sudo apt install nginx sudo service nginx restart #이 명령으로 재시작 가능
Nginx 기본 설정은 /etc/nginx/etc/sites-available 에 저장되어 있으며, 기본 홈폴더는 /var/www/html 이다. sites-enable 에 사이트설정 symlink를 만듦으로서 사이트를 활성화할 수 있다.
사이트 설정
#디폴트 사이트 설정 복사 sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/flask #디폴트 사이트 설정 비활성화 sudo rm /etc/nginx/sites-enabled/default #새로운 사이트 설정 활성화 sudo ln -s /etc/nginx/sites-available/flask /etc/nginx/sites-enabled/flask
flask 웹사이트 정보 설정
/etc/nginx/sites-available/flask 파일의 내용을 다음과 같이 수정한다.
server { listen 80; listen [::]:80;
root /var/www/html; server_name 192.168.43.159; #접속할 주소 location / { include uwsgi_params; uwsgi_pass 127.0.0.1:60080; } }