树莓派应用:无线扫描仪

不羁的心 提交于 2019-12-07 19:20:07

传统的扫描仪都是需要通过USB连接到PC上使用的。如果多人共用扫描仪,比如办公室里,需要经常插拔,更换PC,安装驱动,非常麻烦。现在搭载Android系统的智能扫描仪已经出现了,用户可以很方便的通过网络无线扫描。那么有什么办法让旧的扫描仪也智能化?使用35刀的树莓派可以提供一种廉价的解决方案 - 把扫描仪连接到树莓派上,通过树莓派控制扫描仪,并通过网络传输数据。这样就不需要花很多钱去购买新的扫描仪了。

测试环境

  • 设备: Raspberry Pi 2
  • 系统: RASPBIAN JESSIE 

传统扫描仪智能化解决方案

这是一套使用Dynamic Web TWAIN树莓派版本的解决方案。

优点

  • 扫描仪不需要通过USB接口连接到PC。
  • 在浏览器中操作扫描仪,不需要安装任何插件。
  • 树莓派即插即用。自动建立扫描以及网络连接服务。

无线扫描仪

安装删除服务

下载安装包

安装:

sudo dpkg -i dynamic_web_twain-arm-trial.deb

删除:

sudo dpkg -r dynamsoft-webtwain-service

代码示例

  1. Dynamic Web TWAIN中获取Resources资源目录。
  2. 创建工程目录。把Resources资源拷贝到工程根目录中,并创建一个index.html页面。
  3. 设置树莓派的IP地址。这里是我的:
    var remoteIP = "192.168.8.51";
  4. 禁用AutoLoad属性:
    Dynamsoft.WebTwainEnv.AutoLoad = false;
  5. 设置序列号。可以联系support@dynamsoft.com获取试用序列号。源码中已经包含试用序列号:
    Dynamsoft.WebTwainEnv.ProductKey = "";
  6. 创建Dynamic Web TWAIN对象:
    var HTTP_PORT = 18618;
            var HTTPS_PORT = 18619;
            window.onload = function() {
                Dynamsoft.WebTwainEnv.CreateDWTObject('dwtObjectContainer', remoteIP, HTTP_PORT, HTTPS_PORT, function(obj) {
                    DWObject = obj;
                    DWObject.Width = 270;
                    DWObject.Height = 350;
                    console.log('DWTObject created.');
                    if (DWObject) {
                        var count = DWObject.SourceCount;
                        if (count == 0 && Dynamsoft.Lib.env.bMac) {
                            DWObject.CloseSourceManager();
                            DWObject.ImageCaptureDriverType = 0;
                            DWObject.OpenSourceManager();
                            count = DWObject.SourceCount;
                        }
                        for (var i = 0; i < count; i++)
                            document.getElementById("source").options.add(new Option(DWObject.GetSourceNameItems(i), i)); // Get Data Source names from Data Source Manager and put them in a drop-down box
                    }
                }, function(es) {
                    console.log(es);
                });
            };
  7. 获取图像:
    function AcquireImage() {
                if (DWObject) {
                    var OnAcquireImageSuccess, OnAcquireImageFailure;
                    OnAcquireImageSuccess = OnAcquireImageFailure = function() {
                        DWObject.CloseSource();
                    };
     
                    DWObject.SelectSourceByIndex(document.getElementById("source").selectedIndex); //Use method SelectSourceByIndex to avoid the 'Select Source' dialog
                    DWObject.OpenSource();
                    DWObject.IfDisableSourceAfterAcquire = true; // Scanner source will be disabled/closed automatically after the scan.
                    DWObject.AcquireImage(OnAcquireImageSuccess, OnAcquireImageFailure);
                }
            }
  8. 把扫描仪连接到树莓派上。打开index.html就可以通过手机,平板或者PC远程扫描了。

视频

https://v.qq.com/x/page/r0341rlc3et.html

 

源码

https://github.com/dynamsoftlabs/raspberrypi-document-scanning

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!