Linux/Ubuntu2024. 8. 16. 17:22

ctrl-alt-(f2~f6) 로 /dev/tty로 접속했을때

마우스가 되지 않아 불편했는데 gpm 을 설치하면 커서가 생긴다고 해서 시도

드래그 하면 복사되고 우클릭하면 붙여 넣기가 된다.

 

 이걸 이용하면 터미널 간 명령어 복사도 가능해서 조금은 편해질 듯

 

[링크 : https://www.linux.org/threads/mouse-in-tty.18319/]

[링크 : https://wiki.archlinux.org/title/General_purpose_mouse]

[링크 : https://manpages.ubuntu.com/manpages/trusty/man8/gpm.8.html]

Posted by 구차니
프로그램 사용/Blender2024. 8. 16. 11:22

캐드 하다 보면 딱딱 면이나 점에 달라붙는데 그런 기능을 snap이라고 하는 듯.

 

좀 더 사용법을 찾아보고 익숙해져야 겠지만

face나 edge로 하면 해당 면이나 선에 붙게 되니 좀 편하려...나?

[링크 : https://docs.blender.org/manual/en/latest/editors/3dview/controls/snapping.html]

'프로그램 사용 > Blender' 카테고리의 다른 글

blender set origin  (0) 2024.08.23
blender 4.x 구동 실패  (0) 2024.08.20
블렌더 축이동 제한하기  (0) 2024.08.14
blender cloth simulation  (0) 2024.08.08
blender cut loop 와 fill  (0) 2024.08.06
Posted by 구차니

일본 오페라 나비부인이 먼진 모르겠다만

그걸 15일 새벽에 틀었어야 했을까.

도대체 누가 누구의 지시로, 혹은 과잉충성으로 한걸까?

 

다만 태극기는 정서적으로는 아닐수도 있지만 미묘...

 

日 기미가요→엉터리 태극기…KBS, 광복절 찬물 끼얹고 "실수" 

[링크 : https://v.daum.net/v/20240815163724061]

 

광복절에 기미가요·뒤집힌 태극기...KBS 결국 사과

[링크 : https://v.daum.net/v/20240815181323700]

Posted by 구차니

chatGPT는 먼가 성능이 좋지도 신뢰도 할 수 없는 적토마 라는 느낌인데

claude는 제법 똑똑하고 미음이 가는 경주마 라는 느낌?

 

4~5번의 대화 끝에 아래의 소스를 생성해준다. 이정도면 chatGPT보다 빠르고 나름 믿고 쓸만한 듯?

네, 요청하신 대로 DHT22에서 습도를, BMP280에서 온도와 기압을 측정하고, 이를 원격 라즈베리 파이 데이터베이스 서버로 전송하는 전체 시스템에 대한 개별 소스코드를 작성해 드리겠습니다.

1. 센서 데이터 수집 (클라이언트 라즈베리 파이):

```python
# sensor_client.py

import Adafruit_DHT
import Adafruit_BMP.BMP280 as BMP280
import time
import requests
import uuid

# 센서 설정
DHT_SENSOR = Adafruit_DHT.DHT22
DHT_PIN = 4  # GPIO 핀 번호
bmp = BMP280.BMP280()

# 클라이언트 ID 설정
CLIENT_ID = str(uuid.uuid4())

# 서버 설정
SERVER_URL = "http://your_server_ip:5000/api/weather"

def get_sensor_data():
    humidity, _ = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)
    temperature = bmp.read_temperature()
    pressure = bmp.read_pressure() / 100  # hPa로 변환

    return {
        "client_id": CLIENT_ID,
        "temperature": round(temperature, 2),
        "humidity": round(humidity, 2) if humidity is not None else None,
        "pressure": round(pressure, 2)
    }

def send_data(data):
    try:
        response = requests.post(SERVER_URL, json=data)
        print(f"Data sent. Status code: {response.status_code}")
    except requests.RequestException as e:
        print(f"Error sending data: {e}")

if __name__ == "__main__":
    while True:
        data = get_sensor_data()
        send_data(data)
        time.sleep(300)  # 5분마다 데이터 전송
```

2. 서버 API (서버 라즈베리 파이):

```python
# server_api.py

from flask import Flask, request, jsonify
import psycopg2
from psycopg2.extras import RealDictCursor

app = Flask(__name__)

# 데이터베이스 연결 설정
DB_PARAMS = {
    "host": "localhost",
    "database": "weather_db",
    "user": "your_username",
    "password": "your_password"
}

def get_db_connection():
    return psycopg2.connect(**DB_PARAMS)

@app.route('/api/weather', methods=['POST'])
def add_weather_data():
    data = request.json
    conn = get_db_connection()
    cur = conn.cursor()
    try:
        cur.execute(
            "INSERT INTO weather_data (client_id, temperature, humidity, pressure) VALUES (%s, %s, %s, %s)",
            (data['client_id'], data['temperature'], data['humidity'], data['pressure'])
        )
        conn.commit()
        return jsonify({"message": "Data added successfully"}), 201
    except Exception as e:
        conn.rollback()
        return jsonify({"error": str(e)}), 400
    finally:
        cur.close()
        conn.close()

@app.route('/api/weather', methods=['GET'])
def get_weather_data():
    conn = get_db_connection()
    cur = conn.cursor(cursor_factory=RealDictCursor)
    try:
        cur.execute("SELECT * FROM weather_data ORDER BY timestamp DESC LIMIT 100")
        data = cur.fetchall()
        return jsonify(data)
    finally:
        cur.close()
        conn.close()

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
```

3. 데이터베이스 설정 (서버 라즈베리 파이):

PostgreSQL을 사용한다고 가정하고, 다음과 같이 데이터베이스와 테이블을 설정합니다:

```sql
CREATE DATABASE weather_db;

\c weather_db

CREATE TABLE weather_data (
    id SERIAL PRIMARY KEY,
    client_id VARCHAR(50),
    temperature FLOAT,
    humidity FLOAT,
    pressure FLOAT,
    timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```

4. 필요한 라이브러리 설치:

클라이언트 라즈베리 파이:
```
pip install Adafruit_DHT Adafruit_BMP280 requests
```

서버 라즈베리 파이:
```
pip install flask psycopg2-binary
```

5. 시스템 실행:

클라이언트 라즈베리 파이:
```
python sensor_client.py
```

서버 라즈베리 파이:
```
python server_api.py
```

이 시스템에서:

- 클라이언트 라즈베리 파이는 센서에서 데이터를 수집하고 5분마다 서버로 전송합니다.
- 서버 라즈베리 파이는 API를 통해 데이터를 받아 데이터베이스에 저장합니다.
- GET 요청을 통해 최근 100개의 데이터를 조회할 수 있습니다.

실제 구현 시 고려할 점:
1. 오류 처리와 로깅을 더 강화하세요.
2. HTTPS를 사용하여 데이터 전송을 암호화하세요.
3. 클라이언트 인증을 추가하여 보안을 강화하세요.
4. 데이터베이스 연결 풀링을 사용하여 성능을 개선하세요.
5. 환경 변수를 사용하여 설정을 관리하세요.

이 코드는 기본적인 구조를 제공합니다. 실제 환경에 맞게 수정하여 사용하시기 바랍니다.

 

Posted by 구차니
프로그램 사용/Blender2024. 8. 14. 11:37

g 누르고 마우스를 옮기면 바로 xyz축 다 이동하는데

이래저래 불편해서 찾아보니

g - x / y / z 누르면

특정 축으로만 이동한다고

그리고나서 숫자를 누르면 원하는 거리로 치수 입력을 통해 이동이 가능하다

 

gx1 (이러면 x축으로 1m 이동. 기본 단위 m일 경우)

g shift x (x축을 제외한 yz 평면에서 이동하게 하기)

[링크 : https://snow8village.tistory.com/86#google_vignette]

'프로그램 사용 > Blender' 카테고리의 다른 글

blender 4.x 구동 실패  (0) 2024.08.20
blender snap(붙이기)  (0) 2024.08.16
blender cloth simulation  (0) 2024.08.08
blender cut loop 와 fill  (0) 2024.08.06
blender uv editing  (0) 2024.08.03
Posted by 구차니

뉴라이트 따위가 아니라 완전 친일파라고 이야기 나올정도인데

어떻게 되려나. 아마도.. 강행하겠지? 여태까지 그래왔듯...

[링크 : https://v.daum.net/v/20240813172510998]

Posted by 구차니
이론 관련/전기 전자2024. 8. 13. 17:59

BJT 와 FET는 반대 개념인가?

일단은 biploar와 unipolar 차이가 존재한다.

 

bipolar junction transistor (BJT) is a type of transistor that uses both electrons and electron holes as charge carriers. 
In contrast, a unipolar transistor, such as a field-effect transistor (FET), uses only one kind of charge carrier.

[링크 : https://en.wikipedia.org/wiki/Bipolar_junction_transistor]

[링크 : https://terrypack.tistory.com/5]

[링크 : https://blog.naver.com/seokhoo/221534345997]

'이론 관련 > 전기 전자' 카테고리의 다른 글

spi 통신 cpol cpha  (0) 2024.08.28
NPN TR.... 2?  (0) 2024.08.20
clock is gated  (0) 2024.07.19
싱크 인터페이스, 소스 인터페이스  (0) 2024.07.11
shunt(션트) 저항  (0) 2024.07.11
Posted by 구차니
embeded/esp322024. 8. 13. 15:46

'embeded > esp32' 카테고리의 다른 글

esp32devkitc v4  (0) 2025.01.06
esp32cam sdio wifi  (0) 2024.09.11
esp32 at 소스 빌드(윈도우)  (0) 2023.12.19
esp32 at source 빌드(리눅스)  (0) 2023.12.19
esp-idf on linux  (0) 2023.12.19
Posted by 구차니

신호는 5V를 넣었으니 5V가 나오는데, 증가하는 방향으로 세게 돌려서 알아서 멈출때 까지의 파형

노란색이 A 단자, 파란색이 B 단자

 

값 증가 + 가속

증가 방향에 대해서는 A phase가 먼저 rise 한다.

 

값 증가 + 감속

 

오실로가 아니라 로직 애널라이저로 봐야하려나..?

증가

감소

 

테스트 해보니, A와 B 상을 동시에 넣어야지 회전이 되지 A나 B만 연결해서는 안된다.

당연히(?) A/B 상 따로니까 하나만 넣으면 될줄알았더니.. 머냐 이런 개뼉다구 같은 설계는 -_-

 

[링크 : https://mysku.club/blog/aliexpress/94835.html]

 

제품

라운드당 100펄스. 그런데 모터 컨트롤러에서 1000 이하로 못해서 멘붕중(!)

[링크 : https://item.gmarket.co.kr/Item?goodscode=3888740898]

'하드웨어 > PLC (미츠비시)' 카테고리의 다른 글

MR-J4-70A-TR 펄스 신호 설정  (0) 2024.07.09
MR-J4-A-RJ DI 경유 2.. 성공  (0) 2024.06.25
MR-J4-A-RJ DI 경유  (0) 2024.06.24
MR-J4-A-RJ modbus 설정 실패  (0) 2024.06.21
MR-J4-RJ DI 경유  (0) 2024.06.18
Posted by 구차니

'Programming > javascript & HTML' 카테고리의 다른 글

js DataView()  (0) 2024.08.21
qr decoder  (0) 2024.04.19
QR decoder로 로또 추첨하기  (0) 2024.04.16
javascript 집합(set) 내용 출력하기  (0) 2024.04.16
js split()  (0) 2024.04.12
Posted by 구차니