- 条码识别,支持国产商品与进口产品;
- 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)"
其中,GrocyLocation
id的获取方法:
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锂电池
以下为硬件接线示意图
完成以下设置并烧入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
使用模块直接扫描以下二维码设置,设置成功,发出蜂鸣。
- 切换拨动开关至“出库”模式;(必须为“出库”模式才可正常启动)
- 模块上电自动启动,并发出蜂鸣声,蓝灯亮起;
- 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 |