Skip to content

osnsyc/GrocyCompanionCN

Repository files navigation

特性

  • 条码识别,支持国产商品与进口产品;
  • Grocy物品扫码出库;
  • Grocy已有物品扫码入库,新物品自动获取商品详情并入库;(商品详情包括:条码,基础信息,图片,GPC类别,保质期判别等)

快速开始

Grocy配置,Web界面中:

  • 设置-管理API密钥-添加
  • 管理主数据-位置- 根据自身情况添加
  • 管理主数据- 自定义字段- 添加- 表单信息:实体:products;名称GDSInfo;标题:GDSInfo;类型:单行文本,勾选"在表格中显示此列"
  • 配置数量单位数量单位-添加
docker pull osnsyc/grocycompanioncn:latest

创建 config.ini 和 docker-compose.yml 文件

# config.ini
[Grocy]
GROCY_URL = https://EXAMPLE.COM
GROCY_PORT = 443
GROCY_API = YOUR_GROCY_API_KEY
# GROCY_DEFAULT_QUANTITY_UNIT_ID 在 shell内获取:
; curl -X 'GET' 'https://EXAMPLE.COM:PORT/api/objects/quantity_units' \  -H 'accept: application/json' \  -H 'GROCY-API-KEY:YOUR_GROCY_API_KEY' \  | echo -e "$(cat)"
GROCY_DEFAULT_QUANTITY_UNIT_ID = 1  # 默认的数量单位ID
GROCY_DEFAULT_BEST_BEFORE_DAYS = 365  # 默认的保质期天数
# 存储位置ID,与scanner.ino内的位置名称对应
# shell内获取,替换以下地址\端口\api_key:
; curl -X 'GET' 'https://EXAMPLE.COM:PORT/api/objects/locations' \
; -H 'accept: application/json' \
; -H 'GROCY-API-KEY:YOUR_GROCY_API_KEY' \
; | echo -e "$(cat)"
[GrocyLocation]
pantry = 1
temporary_storage = 2
fridge = 3
living_room = 4
bedroom = 5
bathroom = 6
# 注册RapidAPI账号,并在https://rapidapi.com/Glavier/api/barcodes1/的Pricing点击订阅(免费),复制Endpoints中的X_RapidAPI_Key于此处
[RapidAPI]
X_RapidAPI_Key = YOUR_RapidAPI_API_KEY

其中,GROCY_DEFAULT_QUANTITY_UNIT_ID的获取方法:

curl -X 'GET' 'https://EXAMPLE.COM:PORT/api/objects/quantity_units' \
  -H 'accept: application/json' \
  -H 'GROCY-API-KEY:YOUR_GROCY_API_KEY' \
  | echo -e "$(cat)"

其中,GrocyLocationid的获取方法:

curl -X 'GET' 'https://EXAMPLE.COM:PORT/api/objects/locations' \
-H 'accept: application/json' \
-H 'GROCY-API-KEY:YOUR_GROCY_API_KEY' \
| echo -e "$(cat)"
# docker-compose.yml
version: "3"
services:
  spider:
    image: osnsyc/grocycompanioncn:latest
    restart: always
    ports:
      - "9288:9288"
    volumes:
      - ./config.ini:/usr/src/app/config.ini
      # - ./u2net.onnx:/root/.u2net/u2net.onnx
    networks:
      - grocy_cn_campanion

networks:
  grocy_cn_campanion:

u2net.onnx为rembg的模型,程序第一次运行时会自动下载,下载缓慢的也可手动下载,放入docker-compose.yml同目录,并反注释以下一行

 - ./u2net.onnx:/root/.u2net/u2net.onnx
docker compose up -d

打开https://127.0.0.1:9288,看到页面显示GrocyCNCompanion Started!,服务已成功运行.

GrocyCompanionCN api测试

curl -X POST -H "Content-Type: application/json" -d '{"client":"temporary_storage","aimid":"]E0","barcode":"8935024140147"}' https://127.0.0.1:9288/add

刷新Grocy,出现新物品

硬件

条码/二维码扫描模块为GM805,带蜂鸣器和灯光,3.3V供电

https://img.alicdn.com/imgextra/i3/343151/O1CN01QbKGVt1Z9CkLwAzKp_!!343151.jpg

使用模块包括:

  • GM805
  • ESP01
  • AMS1117
  • 限位开关
  • 3.7V锂电池

以下为硬件接线示意图

Alt text

程序烧录

完成以下设置并烧入ESP01

// ./esp8266/BarcodeScanner.ino
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

#define SERVER "https://YOUR_SEVER_IP:9288" //GrocyCompanionCN api的地址
#define CLIENT "temporary_storage" //对应config.ini中GrocyLocation的值
#define GPIO0_PIN 0
#define LED_PIN 2 
#define HTTP_CODE_OK 200
#ifndef STASSID
#define STASSID "YOUR_SSID"  //WiFi名
#define STAPSK "YOUR_PASSWORD" //WiFi密码
#endif

扫码模块的设置

使用模块直接扫描以下二维码设置,设置成功,发出蜂鸣。

添加AIM ID(必选)

scanner-setting-1

添加串口输出(必选)

scanner-setting-2

照明(自选)

scanner-setting-3

扫码模块测试

  • 切换拨动开关至“出库”模式;(必须为“出库”模式才可正常启动)
  • 模块上电自动启动,并发出蜂鸣声,蓝灯亮起;
  • WiFi连接成功,蓝灯熄灭;
  • 扫码成功,模块发出蜂鸣声;
  • 请求成功,模块蓝灯常亮0.5秒后熄灭;
  • 请求错误,模块蓝灯连续闪烁2秒;
  • 按下微动开关,模块断电;
  • 切换拨动开关,切换“出库”和“入库”模式;

壳体

shell

物料清单与参考链接

序号 名称 参考链接
1 GM805 颜色分类:默认
2 ESP01 颜色分类:ESP-01S
3 AMS1117 颜色分类:AMS1117-3.3模块 3脚
4 拨动开关 颜色分类:柄高4mm
5 限位开关 颜色分类:KW12 3脚21mm圆弧柄
6 3.7V锂电池 颜色分类:3.7V并联加厚600mAh/XH2.54反向插
7 锂电池充电器 颜色分类:500mA/XH2.54反向母插转换头
8 PCB跳线
9 PCB洞洞板 颜色分类:双面喷锡 2x8cm
10 ESP烧录器 颜色分类:ESP-01/01S CH340芯片
11 注塑铜螺母 颜色分类:M2x4x3.5
12 螺丝 M2x6

鸣谢

About

条形码商品识别

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published