๋ชฉ๋ก๐ฉ๐ป IoT (Embedded)/Raspberry Pi (42)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
โญ ํฐ๋ฏธ๋์ ๊ธฐ๋ณธ ์ ์ด kbhit() ํจ์๋ ํค๋ณด๋์ ์ ๋ ฅ์ ๊ฐ์งํ๋ ํจ์ (์ ๋์ค์์ fcntl() ํจ์์ ํฐ๋ฏธ๋ ์ ์ด๋ก ๊ตฌํ ๊ฐ๋ฅ) ํฐ๋ฏธ๋์ ๋ก์ปฌ์ด๋ ๋คํธ์ํฌ๋ฅผ ํตํด์ ์๊ฒฉ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์ ๋์ค ์์คํ ๊ณผ์ ๋ํ๋ฅผ ์ํด ์ฌ์ฉ๋๋ ๋๋ฐ์ด์ค๋ก /dev/tty ๋๋ฐ์ด์ค ํ์ผ ์ฌ์ฉํจ ํฐ๋ฏธ๋์ ๊ธฐ๋ณธ ์ ์ด๋ termios ๊ตฌ์กฐ์ฒด์ ๊ด๋ จ ํจ์๋ค์ ์ฌ์ฉํจ (ํ๋ฉด์ ์ถ๋ ฅํ ์ ์๋๋ก ํฐ๋ฏธ๋ ์ ์ด ํจ์์ธ tcgetattr, tcsetattr ์ด์ฉํด์ ํฐ๋ฏธ๋์ ๋ํ ๊ฐ์ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ค์ ํจ) // kbhit() ํจ์๋ ํค๋ณด๋์ ์ ๋ ฅ์ ๊ฐ์งํ๋ ํจ์ (์ ๋์ค์์ fcntl() ํจ์์ ํฐ๋ฏธ๋ ์ ์ด๋ก ๊ตฌํ ๊ฐ๋ฅ) // ํฐ๋ฏธ๋์ ๋ก์ปฌ์ด๋ ๋คํธ์ํฌ๋ฅผ ํตํด์ ์๊ฒฉ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์ ๋์ค ์์คํ ๊ณผ์ ๋ํ๋ฅผ ์ํด ์ฌ์ฉ๋๋ ๋๋ฐ์ด์ค๋ก /dev/..
โญ ํ์ผ ์ฒ๋ฆฌ์ ํ์ค ์ ์ถ๋ ฅ // ํ์ค ์ ์ถ๋ ฅ ํจ์๋ฅผ ์ด์ฉํด์ ํ์ผ์ ๋ณต์ฌํ๋ค // ์ถ๋ ฅ ๋ฐฉํฅ์ ์ ํ๋ ํจ์์ธ fprint() ํจ์์ ํ์ค ์๋ฌ(etreer) ์ด์ฉํด์ ์ ์ฅํ๋ค #include int main(int argc, char **argv) { int n; FILE *in, *out; char buf[BUFSIZ]; // ๋ช ๋ นํ ์ธ์๋ก ๋ณต์ฌํ ํ์ผ๋ช ์ด ์๋ ๊ฒฝ์ฐ์ ์๋ฌ๋ฅผ ์ถ๋ ฅํ๊ณ ์ข ๋ฃํ๋ค if (argc != 3) { fprintf(stderr, "Usage: fcopy file1 file2\n"); return -1; } // ๋ณต์ฌ์ ์๋ณธ์ด ๋๋ ํ์ผ์ ์ฝ๊ธฐ ๋ชจ๋๋ก ์ฐ๋ค // fopen() : ์ง์ ํ ๊ฒฝ๋ก์ ์๋ ํ์ผ์ ์คํธ๋ฆผ์ ์ด๊ณ ๋ฒํผ๋ฅผ ํ ๋นํ๋ค // (const char *path: ํ์ผ..
โญ ํ์ผ ์ฒ๋ฆฌ์ ํ์ค ์ ์ถ๋ ฅ // ํ๋์ ํ์ผ์ ๋ด์ฉ์ ๋ค์ ํ์ผ๋ก ๋ณต์ฌํ๋ ์ฝ๋๋ฅผ ์์ฑํด๋ณด์ // 2๊ฐ์ ํ์ผ๋ช ์ ์ ๋ ฅ๋ฐ๊ณ 2๊ฐ์ ํ์ผ์ ์ด๊ฑฐ๋ ์์ฑํ ํ ์ฒซ ๋ฒ์งธ ํ์ผ์์ ๋ฐ์ดํฐ ์ฝ์ด์ ๋ ๋ฒ์งธ ํ์ผ๋ก ์ด๋ค #include // ์ ๋์ค ํ์ค ์์คํ ์ฝ #include #include #include #include #include int main(int argc, char **argv) { int n, in, out; char buf[1024]; // ๋ช ๋ นํ ์ธ์๋ก ๋ณต์ฌํ ํ์ผ๋ช ์ด ์๋ ๊ฒฝ์ฐ์ ์๋ฌ ์ถ๋ ฅํ๊ณ ์ข ๋ฃ if (argc < 3) { // write() : ์ด๋ฆฐ ํ์ผ ๋์คํฌ๋ฆฝํฐ๋ฅผ ์ด์ฉํด์ ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ์ด ๋งํผ ํ์ผ ๋ด์ ์คํ์ ์ฆ๊ฐ // ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ ์ ๋ฐํ 0 & ์คํจ..
raspberry pi ๊ฐ broker ์ด๋ฏ๋ก raspberry pi ์์ sub ๋ก db๋ฅผ ๋ฐ๋๋ก ํฉ๋๋ค sqlite ๋ฅผ ํตํด db table์ ๊ฐ ์ ์ฅํ๊ธฐ! ๐ง๐ SQLite sudo apt-get install sqlite3 libsqlite3-dev sudo apt-get install libpaho-mqtt-dev ๐ง๐ main.c #include #include #include #include // C์ธ์ด๋ก ๊ตฌํ๋ SQL ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์ง #include #include #include // MQ Telemetry Transport ๋ฒ์ 3.1 ํ๋กํ ์ฝ์ ๋ํ // C ๊ตฌํ์ ํด๋ผ์ด์ธํธ ๊ธฐ๋ฅ์ด ํฌํจ๋ 32๋นํธ Windows ๋ผ์ด๋ธ๋ฌ๋ฆฌ #include #define MQTT_HOST "19..
๐ง๐ node ์ค์นํ๊ธฐ sudo apt update sudo apt upgrade -y sudo apt install -y ca-certificates curl gnupg curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg Current Release NODE_MAJOR=20 echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list sudo apt install nodejs node -v ๐ง๐ node red ์ค์นํ๊ธฐ https://nodered.org/docs/get..
๐ง๐ python paho-mqtt ์ฌ์ฉํ๊ธฐ sudo apt-get install python3-pip pip3 install paho-mqtt ๋ง์ฝ. ์์ ๊ด๋ จ๋ ์ค๋ฅ๊ฐ ๋์จ๋ค๋ฉด sudo rm /usr/lib/python3.11/EXTERNALLY-MANAGED ์ด๊ฑธ๋ก ํด๊ฒฐ! ๋ค์ paho-mqtt ์ค์นํ๋ฉด ๋๋ค ๐ง๐ pub์์ ๋ฐ์ ๊ฐ์ sqlite3์ ์ ์ฅํ๊ธฐ # main.c import paho.mqtt.client as mqtt import sqlite3 from time import time MQTT_HOST = '192.168.0.154' MQTT_PORT = 1883 MQTT_CLIENT_ID = 'sqlClient' MQTT_USER = 'YOUR MQTT USER' MQTT_PASS..
raspberry pi ip ๋. ๊ทธ ์ด๋๋ iptime? ์์ ์ฐพ์๋ณด์๊ธธ! ๐ง๐ Rasberry pi imager ๋ค์ดํ๊ธฐ https://www.raspberrypi.com/software/ Raspberry Pi OS – Raspberry Pi From industries large and small, to the kitchen table tinkerer, to the classroom coder, we make computing accessible and affordable for everybody. www.raspberrypi.com sd ์นด๋ ๋ฆฌ๋๊ธฐ๋ฅผ ๋ฝ๊ณ image install ํ๊ธฐ ์ค์ ์ wifi ์ค์ , host ์ค์ ๋ฑ๋ฑ .. ๐ง๐ ๋ช ๋ น ํ๋กฌํํธ์์ raspberry pi ์ ๋ค์ด๊ฐ๊ธฐ..
=> (22๋ 4์๊ธฐ์ค ์ต์ ๋ฐฉ๋ฒ) ์ค๋งํธ๋ฏธ๋ฌ ๋ง๋ค๊ธฐ #9 ๊ตฌ๊ธ ์ด์์คํดํธ ์ฐ๋ ๐ฑ ๊ตฌ๊ธ ์ด์์คํดํธ, ํฌํ ๋ฅผ ์ํ ๊ตฌ๊ธ ์ฝ์ ์ค์ ๐ซ 1. MMM-GoogleAssistant ๋ชจ๋ ์ค์น cd ~/MagicMirror/modules git clone https://github.com/bugsounet/MMM-GoogleAssistant cd MMM-GoogleAssistant npm install ๐ซ2. ์๊ฒฉ์ฆ๋ช ์ค์ ์๊น ๋ค์ด๋ก๋ํ JSON ํ์ผ ์ค๋น!! (์๋ค๋ฉด https://console.cloud.google.com/ - API ๋ฐ ์๋น์ค - ์ฌ์ฉ์ ์ธ์ฆ์ ๋ณด ์์ ๋ฐ์คํฌํฑ OAuth json ๋ค์ด๋ก๋) ํ์ผ์ MagicMirror/modules/MMM-GoogleAssistant ํด๋์ ์ฎ๊ฒจ์ฃผ๊ณ ์ด๋ฆ..