孙亮亮
返回 小企业智能化

小企业智能化

小微企业仓库条码出入库实战:ESP32 + 扫码枪 + 轻量 WMS 做库存台账与低库存告警

2026年11月4日

ESP32 接扫码枪配合轻量 WMS,扫码即记账并自动低库存告警。

ESP32仓库管理WMS条码出入库

小微企业仓库条码出入库实战:ESP32 + 扫码枪 + 轻量 WMS 做库存台账与低库存告警

摘要:小仓库靠 Excel 记库存,常常对不上、盘点慢、断货才发现。本文用 ESP32 接串口扫码枪,配合一个轻量 WMS 接口,实现扫码即出入库、自动台账与低库存企微告警,硬件成本不到一百元。

一、为什么小仓库也要条码化

很多小微企业的仓库还在用纸质单 + Excel:货来了手写登记,发出去再补录。问题很明显:

  1. 账实不符。人工录入晚一步、录错一位,库存就失真,月底盘点差出一大截。
  2. 断货才发现。没有阈值预警,等销售要货时才知道某 SKU 已经见底。
  3. 盘点耗时。几百个品种挨个对,半天都未必搞得清。

条码化不是大企业的专利。一个扫码枪 + 一块 ESP32 + 一个极简后台,就能把"扫码—记账—告警"串起来,单人十分钟完成过去半小时的活。

二、总体架构

整体走"边缘采集 + 轻量服务端":

扫码枪(串口) ──► ESP32 ──MQTT/WiFi──► WMS 服务(Flask+SQLite) ──► 企微机器人告警
  • ESP32:读扫码枪输出,通过 WiFi 把条码和"入/出"动作发到 MQTT。
  • WMS 服务:一台内网小主机或同机 NAS 上的 Docker 容器,提供入库、出库、查询、盘点接口,数据落 SQLite。
  • 企微机器人:库存低于阈值时主动推送,不用人工盯。

三、硬件:ESP32 + 串口扫码枪

扫码枪选支持「串口(TTL)」输出模式的型号,很多二三十元的枪都能切到串口模式。ESP32 的 UART2(GPIO16 收、GPIO17 发)接枪的 TX/RX,注意交叉连接并且共地。

如果枪是 USB 口而 ESP32 没有 Host,有两个办法:一是直接买 TTL 串口版扫码枪;二是用带 USB Host 的 ESP32-S2/S3 配合 USBHost 库读 HID 数据。小批量落地推荐前者,省去驱动麻烦。

四、固件:读取扫码并上报

ESP32 端用 Arduino 框架,监听串口缓存区,遇到回车(扫码枪默认以 \r 或 \n 结尾)即认为一次扫码完成:

#include <WiFi.h>
#include <PubSubClient.h>
HardwareSerial扫码(2);
void setup(){
  扫码.begin(9600, SERIAL_8N1, 16, 17); // RX=16 TX=17
  WiFi.begin("仓库WiFi", "password");
  // ...连接 MQTT
}
void loop(){
  static String buf;
  while(扫码.available()){
    char c = 扫码.read();
    if(c=='\n' || c=='\r'){
      if(buf.length()>0){
        String topic = digitalRead(按键脚)==LOW ? "wms/in" : "wms/out";
        客户端.publish(topic.c_str(), buf.c_str());
        buf="";
      }
    } else buf += c;
  }
  客户端.loop();
}

用一个物理拨动开关区分"入库/出库"模式,避免误操作。扫码数据只传条码字符串,服务端再做 SKU 映射,前端设备保持"傻瓜化"。

五、轻量 WMS:库存台账与出入库接口

服务端用 Flask + SQLite,三张表足矣:sku(编码、名称、规格、阈值)、stock(当前库存)、log(流水)。核心出入库接口:

@app.post("/api/move")
def move():
    d = request.json
    sku, qty, typ = d["sku"], int(d["qty"]), d["type"]
    now = db.execute("SELECT qty FROM stock WHERE sku=?", (sku,)).fetchone()
    now = now[0] if now else 0
    new = now + qty if typ=="in" else now - qty
    if new < 0: return {"ok": False, "msg": "库存不足"}
    db.execute("INSERT OR REPLACE INTO stock VALUES(?,?)", (sku, new))
    db.execute("INSERT INTO log VALUES(?,?,?,?,datetime('now'))",
               (sku, qty, typ, new))
    db.commit()
    check_alert(sku, new)
    return {"ok": True, "stock": new}

前端给仓管一个极简网页:扫码框自动聚焦、回车即提交,下方实时显示当前库存和今日流水。

六、低库存告警与盘点

check_alert 在每次变动后比对 sku.threshold,低于阈值就调用企微机器人 Webhook:

def check_alert(sku, qty):
    row = db.execute("SELECT name,threshold FROM sku WHERE sku=?",(sku,)).fetchone()
    if qty <= row[1]:
        requests.post(WEBHOOK, json={"msgtype":"text",
            "text":{"content":f"低库存提醒:{row[0]}({sku}) 余 {qty},阈值 {row[1]}"}})

月度盘点时,仓管拿枪逐件扫一遍,系统自动生成"账面 vs 实扫"差异表,过去半天的工作现在二十分钟搞定。

七、落地避坑

  • 条码唯一性:自打印条码务必保证 SKU 与条码一一对应,重复编码会让台账全乱。
  • 网络抖动:ESP32 断网时先把扫码暂存进 SPIFFS,恢复后补发,避免漏单。
  • 并发写入:SQLite 单写者,接口加一把线程锁,防止高频扫码同时写库锁死。
  • 权限:WMS 仅内网开放,外网访问走 VPN,别把库存接口裸奔到公网。

小结

用 ESP32 + 扫码枪 + 轻量 WMS,小微企业能以极低成本把仓库管理从"人记 Excel"升级到"扫码即账、自动告警"。整套方案硬件不到百元,部署一天即可上线,是性价比极高的数字化切入点。

本模块其他文章

小微企业一体化监控实战:Prometheus + node_exporter + Grafana 监控主机、服务与设备并微信告警小微企业室内定位与电子围栏实战:蓝牙 Beacon + ESP32 网关做资产/人员区域定位与越界告警小微企业设备预测性维护实战:ESP32 + 振动传感器做异常监测、FFT 频谱与企微告警小微企业安灯(Andon)系统实战:ESP32 驱动三色报警灯做产线异常呼叫与看板小微企业设备二维码巡检系统实战:扫码点检、异常上报与维护台账小微企业智能车间照明实战:ESP32 + 继电器 + 人体感应做分区节能灯控门店电子价签与促销信息屏实战:ESP32 + 墨水屏无线刷新、断网缓存与批量管理小微企业用 ESP32 + 称重传感器做原料出入库自动计量:HX711 标定与微信日报实战小微企业本地大模型落地:用 Ollama 在工控机部署 Qwen 做制度问答助手小微企业用 4G DTU 实现异地设备远程采集:无公网 IP 的分散站点组网与告警实战小微企业用 Wiegand 读卡器 + ESP32 搭建门禁考勤台账:刷卡上报、后台统计与异常告警小微企业冷库无线环境监测实战:LoRa 温湿度节点 + 网关上报 + 超限微信告警小微企业用 ThingsBoard 搭建设备物联网平台:MQTT 遥测上报、规则链告警与可视化看板小微企业用 Node-RED 搭建设备联动中台:从 MQTT 到企业微信告警小微企业设备数据采集与看板上墙:用边缘网关把 Modbus PLC 接入 Grafana门店 AI 视觉智能化落地:用摄像头 + 轻量模型做客流统计与区域安防小微企业低成本环境监控实战:ESP32 + 温湿度/水浸传感器 + 微信告警小企业经营异常自动告警实战:企业微信机器人把问题主动推到群里给小企业搭一套本地 AI 知识库客服:用 Ollama + 向量检索把老员工经验变成可查答案用二维码+手机扫码给小企业做轻量库存盘点:零设备成本的智能化落地当老系统没有接口:用 RPA 补上自动化用实时看板取代每天手填的日报
小微企业仓库条码出入库实战:ESP32 + 扫码枪 + 轻量 WMS 做库存台账与低库存告警 · 孙亮亮