Skip to content
@hanibi-app

Hanibi

Hanibi is a new and eco-friendly microbial food waste disposer.

Hanibi (ํ•œ๋‹ˆ๋น„)

Hanibi Thumbnail

1. ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

Hanibi๋Š” AIoT ๊ธฐ๋ฐ˜ ๋ฐ˜๋ ค ๋ฏธ์ƒ๋ฌผ ์Œ์‹๋ฌผ ์ฒ˜๋ฆฌ๊ธฐ๋กœ, ์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜์ง‘ยท๋ถ„์„ํ•˜์—ฌ ์•…์ทจ๋ฅผ ์˜ˆ๋ฐฉํ•˜๋Š” ์Šค๋งˆํŠธ ๋””๋ฐ”์ด์Šค์ž…๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด(Arduino ๊ธฐ๋ฐ˜ ์„ผ์„œ ์‹œ์Šคํ…œ), ๋ฐฑ์—”๋“œ(NestJS ๊ธฐ๋ฐ˜ ์„œ๋ฒ„), ํด๋ผ์ด์–ธํŠธ(React Native ๋ชจ๋ฐ”์ผ ์•ฑ)๋กœ ๊ตฌ์„ฑ๋œ ํ†ตํ•ฉ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

  • ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ: AIoT, ์Œ์‹๋ฌผ ์ฒ˜๋ฆฌ๊ธฐ, ์•…์ทจ ์˜ˆ๋ฐฉ, ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง, ๊ฐ์„ฑ ๋””์ž์ธ
  • ๊ธฐ์ˆ  ์˜์—ญ: ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ, ๋ฐฑ์—”๋“œ API, ๋ชจ๋ฐ”์ผ ์•ฑ
  • ํ†ต์‹  ๋ฐฉ์‹: RS485, Ethernet, WebSocket, REST API

2. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

์Œ์‹๋ฌผ ์“ฐ๋ ˆ๊ธฐ ์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์•…์ทจ๋Š” ์ฃผ๋กœ ๊ณผํˆฌ์ž…์ด๋‚˜ ์‚ฐ์„ฑ ์Œ์‹๋ฌผ๋กœ ์ธํ•œ pH ์ €ํ•˜, ํ˜๊ธฐ์„ฑ ๋ฏธ์ƒ๋ฌผ์˜ ์šฐ์„ธ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ์—์„œ ์•”๋ชจ๋‹ˆ์•„, ํ™ฉํ™”ํ•ฉ๋ฌผ, TVOC(Total Volatile Organic Compounds)๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ ์•…์ทจ์˜ ์›์ธ์ด ๋ฉ๋‹ˆ๋‹ค.

Hanibi๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์‚ฌํ›„ ๋Œ€์‘์ด ์•„๋‹Œ ์˜ˆ๋ฐฉ ์ค‘์‹ฌ์œผ๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ์˜จ๋„, ์Šต๋„, VOC, ๋ฌด๊ฒŒ ์„ผ์„œ๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฏธ์ƒ๋ฌผ ์ƒํƒœ๋ฅผ ์ ์ˆ˜ํ™”ํ•˜๊ณ , ์ด์ƒ ์ง•ํ›„๋ฅผ ์กฐ๊ธฐ ํŒ๋‹จํ•˜์—ฌ ๋ฏธ์ƒ๋ฌผ ์ƒํƒœ๋ฅผ ์•ˆ์ •ํ™”ํ•จ์œผ๋กœ์จ ์•…์ทจ๋ฅผ ์›์ฒœ์ ์œผ๋กœ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋‹จ์ˆœํ•œ ๊ธฐ๋Šฅ์„ฑ ๋””๋ฐ”์ด์Šค๋ฅผ ๋„˜์–ด ๊ฐ์„ฑ์  ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. LED ํ‘œ์ •๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ํ†ตํ•ด ๊ฐ์ •์„ ํ‘œํ˜„ํ•˜๋Š” ๋””์Šคํ”Œ๋ ˆ์ด UI๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ , ์˜์ธํ™” ๊ธฐ๋ฐ˜์˜ ๊ฐ์„ฑ ๋””์ž์ธ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์™€์˜ ์นœ๋ฐ€๊ฐ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ‘๊ทผ์€ ํ”„๋ ˆ์ž„ ๋น„์šฉ ์ ˆ๊ฐ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

3. ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

์•…์ทจ ์˜ˆ๋ฐฉ

  • ์„ผ์„œ ๊ธฐ๋ฐ˜ ์กฐ๊ธฐ ํƒ์ง€ ๋ฐ ์ด์ƒ ์ง•ํ›„ ํŒ๋‹จ
  • ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ†ตํ•œ ์ž๋™ ์ œ์–ด ๋ฐ ์•Œ๋ฆผ
  • ๋ฏธ์ƒ๋ฌผ ์ƒํƒœ ์•ˆ์ •ํ™”๋ฅผ ํ†ตํ•œ ์•…์ทจ ์›์ฒœ ์ฐจ๋‹จ

ํ†ตํ•ฉ ์—ฐ๋™

  • ํ•˜๋“œ์›จ์–ด(Arduino) โ†” ๋ฐฑ์—”๋“œ(์„œ๋ฒ„) โ†” ํด๋ผ์ด์–ธํŠธ(๋ชจ๋ฐ”์ผ ์•ฑ) ๊ฐ„ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”
  • WebSocket ๊ธฐ๋ฐ˜ ์–‘๋ฐฉํ–ฅ ํ†ต์‹  ๊ตฌํ˜„
  • ๋””๋ฐ”์ด์Šค ํŽ˜์–ด๋ง ๋ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ตฌ์ถ•

์‚ฌ์šฉ์„ฑ ๋ฐ ๊ฐ์„ฑ UX

  • ์ง๊ด€์ ์ธ ๋ชจ๋ฐ”์ผ ์•ฑ ์ธํ„ฐํŽ˜์ด์Šค
  • ์‹ค์‹œ๊ฐ„ ์ฐจํŠธ ๋ฐ ๋ฆฌํฌํŠธ ์ œ๊ณต
  • ๊ฐ์ • ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ๋””์Šคํ”Œ๋ ˆ์ด UI

4. ์ฃผ์š” ๊ธฐ๋Šฅ

ํ•˜๋“œ์›จ์–ด

  • ์„ผ์„œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘: ์˜จ๋„(SHT20), ์Šต๋„(SHT20), VOC(SGP40), ๋ฌด๊ฒŒ(HX711 ๋กœ๋“œ์…€) ์‹ค์‹œ๊ฐ„ ์ธก์ •
  • ์ƒํƒœ ๋จธ์‹  ์ œ์–ด: IDLE โ†’ INPUT โ†’ MEASURING โ†’ MIXING โ†’ IDLE ์ˆœํ™˜
  • ์ž๋™ ์ œ์–ด: ๋ชจํ„ฐ ์‚ฌ์ดํด(60์ดˆ ON / 60์ดˆ OFF), ๋ชฉํ‘œ ์˜จ๋„ 80ยฐC(์žฌ๊ฐ€์—ด 70ยฐC)
  • ์ด์ค‘ ๋ณด๋“œ ๊ตฌ์กฐ: Arduino Mega(๋ฉ”์ธ ์ œ์–ด) + Arduino Nano(์ž์œจ ์ œ์–ด), RS485 ํ†ต์‹ 
  • ๋””์Šคํ”Œ๋ ˆ์ด: Nextion ํ„ฐ์น˜์Šคํฌ๋ฆฐ, LED ํ‘œ์ •/์• ๋‹ˆ๋ฉ”์ด์…˜
  • ๋„คํŠธ์›Œํฌ: ENC28J60 Ethernet ๋ชจ๋“ˆ์„ ํ†ตํ•œ ์„œ๋ฒ„ ์—ฐ๋™

๋ฐฑ์—”๋“œ

  • ์„ผ์„œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘: ํ•˜๋“œ์›จ์–ด๋กœ๋ถ€ํ„ฐ ์‹ค์‹œ๊ฐ„ ์„ผ์„œ ๋ฐ์ดํ„ฐ ์ˆ˜์‹  ๋ฐ ์ €์žฅ
  • ์š”์ฒญ ๋กœ๊น…: API ์š”์ฒญ ๋ฐ ์—๋Ÿฌ ๋กœ๊น… ์‹œ์Šคํ…œ
  • ๋””๋ฐ”์ด์Šค ํŽ˜์–ด๋ง: ์‚ฌ์šฉ์ž-๋””๋ฐ”์ด์Šค ์—ฐ๊ฒฐ ๊ด€๋ฆฌ
  • ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ: Socket.io ๊ธฐ๋ฐ˜ WebSocket ํ†ต์‹ 
  • ์—์ฝ” ์Šค์ฝ”์–ด ๋ฐ ๋žญํ‚น: ํ™˜๊ฒฝ ์ ์ˆ˜ ๊ณ„์‚ฐ ๋ฐ ์‚ฌ์šฉ์ž ๋žญํ‚น ์‹œ์Šคํ…œ
  • API ๋ฌธ์„œํ™”: Swagger ๊ธฐ๋ฐ˜ REST API ๋ฌธ์„œ ์ œ๊ณต

ํด๋ผ์ด์–ธํŠธ

  • ๋””๋ฐ”์ด์Šค ํŽ˜์–ด๋ง: QR ์ฝ”๋“œ ๋˜๋Š” ์ˆ˜๋™ ์ž…๋ ฅ์„ ํ†ตํ•œ ๋””๋ฐ”์ด์Šค ์—ฐ๊ฒฐ
  • ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง: ์„ผ์„œ ๋ฐ์ดํ„ฐ ์‹ค์‹œ๊ฐ„ ํ‘œ์‹œ ๋ฐ ์ฐจํŠธ ์‹œ๊ฐํ™”
  • ๋””๋ฐ”์ด์Šค ์ œ์–ด: ์›๊ฒฉ ๋ชจํ„ฐ ์ œ์–ด ๋ฐ ์„ค์ • ๋ณ€๊ฒฝ
  • ์ฑ„ํŒ… ๊ธฐ๋Šฅ: ๋””๋ฐ”์ด์Šค์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค
  • ๋ฆฌํฌํŠธ ๋ฐ ๋žญํ‚น: ์ผ์ผ/์ฃผ๊ฐ„ ๋ฆฌํฌํŠธ ๋ฐ ์—์ฝ” ์Šค์ฝ”์–ด ๋žญํ‚น
  • ํ”„๋กœํ•„ ๊ด€๋ฆฌ: ์‚ฌ์šฉ์ž ํ”„๋กœํ•„ ๋ฐ ์„ค์ • ๊ด€๋ฆฌ

5. ํŒ€์› ์†Œ๊ฐœ

์ด๋ฆ„ ์—ญํ•  ๋น„๊ณ 
์ด์ƒ๋ฏผ ์ง€๋„๊ต์ˆ˜ -
์ •์ค€์ˆ˜ ์ฃผ ๊ธฐํš, ํ•˜๋“œ์›จ์–ด ๋‹ด๋‹น ํŒ€์žฅ
์œ ์•„๋ฆ„ ์บ๋ฆญํ„ฐ, ํ”„๋กœํ† ํƒ€์ž… ๋””์ž์ธ ํŒ€์›
์ด์ฃผ์„ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ, ์„œ๋ฒ„ ํ†ต์‹  ํŒ€์›
์ตœํ˜„์ค€ ์•ฑ ๊ธฐํš, ์•ฑ ๊ฐœ๋ฐœ ํŒ€์›

6. ๊ธฐ์ˆ  ์Šคํƒ

์ „์ฒด ์Šคํƒ ์š”์•ฝ

์˜์—ญ ๊ธฐ์ˆ  ์Šคํƒ
ํ•˜๋“œ์›จ์–ด Arduino Mega, Arduino Nano, RS485 ํ†ต์‹ 
์„ผ์„œ/๋ชจ๋“ˆ ENC28J60(Ethernet), HX711(๋กœ๋“œ์…€), SHT20(I2C), SGP40(I2C), Nextion(๋””์Šคํ”Œ๋ ˆ์ด)
๋ฐฑ์—”๋“œ NestJS, PostgreSQL, Redis, BullMQ, Socket.io, Swagger
ํด๋ผ์ด์–ธํŠธ React Native(Expo), TypeScript
์ธํ”„๋ผ Docker, Docker Compose

๋ฐฑ์—”๋“œ ์ƒ์„ธ

๊ธฐ์ˆ  ์šฉ๋„
NestJS REST API ๋ฐ WebSocket ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ
PostgreSQL ๋ฉ”์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (์„ผ์„œ ๋ฐ์ดํ„ฐ, ์‚ฌ์šฉ์ž ์ •๋ณด ๋“ฑ)
Redis ์บ์‹ฑ ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ
BullMQ ์ž‘์—… ํ ๊ด€๋ฆฌ (๋น„๋™๊ธฐ ์ž‘์—… ์ฒ˜๋ฆฌ)
Socket.io ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹  (WebSocket)
Swagger API ๋ฌธ์„œํ™” ๋ฐ ํ…Œ์ŠคํŠธ ์ธํ„ฐํŽ˜์ด์Šค

ํด๋ผ์ด์–ธํŠธ ์ƒ์„ธ

๊ธฐ์ˆ  ์šฉ๋„
React Native (Expo) ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ
TypeScript ํƒ€์ž… ์•ˆ์ •์„ฑ ๋ณด์žฅ
Zustand ์ƒํƒœ ๊ด€๋ฆฌ
TanStack Query ์„œ๋ฒ„ ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ์บ์‹ฑ
React Navigation ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ผ์šฐํŒ…
Axios HTTP ํด๋ผ์ด์–ธํŠธ
Socket.io Client ์‹ค์‹œ๊ฐ„ ํ†ต์‹  ํด๋ผ์ด์–ธํŠธ

7. ๋ฌธ์„œ ์ž๋ฃŒ

ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ


์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

graph TB
    subgraph "ํ•˜๋“œ์›จ์–ด ๊ณ„์ธต"
        A1[Arduino Mega<br/>๋ฉ”์ธ ์ œ์–ด]
        A2[Arduino Nano<br/>์ž์œจ ์ œ์–ด]
        S1[์„ผ์„œ ๋ชจ๋“ˆ<br/>์˜จ๋„/์Šต๋„/VOC/๋ฌด๊ฒŒ]
        D1[Nextion ๋””์Šคํ”Œ๋ ˆ์ด<br/>LED ํ‘œ์ •]
        A1 <-->|RS485| A2
        A1 <--> S1
        A1 <--> D1
    end
    
    subgraph "๋„คํŠธ์›Œํฌ ๊ณ„์ธต"
        E1[ENC28J60<br/>Ethernet ๋ชจ๋“ˆ]
        A1 <--> E1
    end
    
    subgraph "๋ฐฑ์—”๋“œ ๊ณ„์ธต"
        B1[NestJS Server<br/>REST API]
        B2[PostgreSQL<br/>๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค]
        B3[Redis<br/>์บ์‹ฑ/์„ธ์…˜]
        B4[Socket.io<br/>WebSocket]
        B5[BullMQ<br/>์ž‘์—… ํ]
        B1 <--> B2
        B1 <--> B3
        B1 <--> B4
        B1 <--> B5
    end
    
    subgraph "ํด๋ผ์ด์–ธํŠธ ๊ณ„์ธต"
        C1[React Native App<br/>๋ชจ๋ฐ”์ผ ์•ฑ]
        C2[Zustand<br/>์ƒํƒœ ๊ด€๋ฆฌ]
        C3[TanStack Query<br/>์„œ๋ฒ„ ์ƒํƒœ]
        C1 <--> C2
        C1 <--> C3
    end
    
    E1 <-->|HTTP/WebSocket| B1
    B4 <-->|WebSocket| C1
    B1 <-->|REST API| C1
    
    style A1 fill:#e1f5ff
    style B1 fill:#fff4e1
    style C1 fill:#e8f5e9
Loading

Hanibi - AIoT ๊ธฐ๋ฐ˜ ๋ฐ˜๋ ค ๋ฏธ์ƒ๋ฌผ ์Œ์‹๋ฌผ ์ฒ˜๋ฆฌ๊ธฐ ํ”„๋กœ์ ํŠธ

Pinned Loading

  1. client client Public

    ๋ฏธ์ƒ๋ฌผ ์Œ์‹๋ฌผ ์ฒ˜๋ฆฌ๊ธฐ [ํ•œ๋‹ˆ๋น„]๋ฅผ ์œ„ํ•œ ์•ฑ

    TypeScript 1

Repositories

Showing 3 of 3 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loadingโ€ฆ

Most used topics

Loadingโ€ฆ