GrocyCompanionCN
条形码商品识别
Install / Use
/learn @osnsyc/GrocyCompanionCNREADME
特性
- 条码识别,支持国产商品与进口产品;
- Grocy物品扫码出库;
- Grocy已有物品扫码入库,新物品自动获取商品详情并入库;(商品详情包括:条码,基础信息,图片,GPC类别,保质期判别等)
快速开始
Grocy配置,Web界面中:
设置-管理API密钥-添加管理主数据-位置- 根据自身情况添加管理主数据-自定义字段-添加- 表单信息:实体:products;名称GDSInfo;标题:GDSInfo;类型:单行文本,勾选"在表格中显示此列"- 配置
数量单位:数量单位-添加
docker pull osnsyc/grocycompanioncn:latest
创建 config.ini 和 docker-compose.yml 文件
# config.ini
[Grocy]
GROCY_URL = http://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
打开http://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"}' http://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锂电池
以下为硬件接线示意图

程序烧录
完成以下设置并烧入ESP01
// ./esp8266/BarcodeScanner.ino
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#define SERVER "http://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(必选)

添加串口输出(必选)

照明(自选)

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

物料清单与参考链接
| 序号 | 名称 | 参考链接 | | ---- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 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 |
鸣谢
- https://github.com/tenlee2012/BarCodeQuery
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
