周煒杰 周媛 余佳琦 楊嶺玉



摘? 要:以ATMEGA16A單片機、ESP8266 Wi-Fi模塊為核心,設計并制作基于Wi-Fi的多路二維碼讀取系統,實現無線化的數據接收與發送。通過多個二維碼掃描儀獲得相關數據并發送信息給服務器,服務器接收數據并導入數據庫。數據讀取與存儲和整合過程為自動化操作。系統配有簡潔易用的客戶端,用戶可通過客戶端操作,實時獲取信息。
關鍵詞:單片機;Wi-Fi;二維碼;物聯網;數據庫
中圖分類號:TP274 文獻標志碼:A? ? ? ?文章編號:2095-2945(2020)35-0027-02
Abstract: With ATMEGA16A single-chip computer and ESP8266 Wi-Fi module as the core, a multi-channel two-dimensional code reading system based on Wi-Fi is designed and manufactured to achieve wireless data reception and transmission. The related data is obtained through multiple two-dimensional code scanners and sent information to the server, which receives the data and imports it into the database. Data reading and storage and integration processes are automated. The system is equipped with a simple and easy-to-use client, through which users can obtain information in real time.
Keywords: single-chip computer; Wi-Fi; two-dimensional code; internet of things; database
引言
近幾年來,隨著互聯網的發展,在多數領域中有線連接的方式已經不能滿足科技高速發展的要求,無線通信的方式正進入到我們生活中的各個領域[1]。它與有線連接方式相比,具有全天候在線,不受傳輸線材約束的優點。二維碼作為一種新的信息承載者有著數據量大、應用方便、糾錯能力強等特點[2]。本文設計了一個以ATmega16A單片機和ESP8266 Wi-Fi模塊為主要功能器件的多路二維碼讀取系統。
1 系統總體設計
本系統主要實現兩個功能:接收讀取二維碼數據和發送數據到服務器。整個基于Wi-Fi的多路二維碼讀取系統的系統架構如圖1所示。多路二維碼讀取系統的具體工作過程如下:Wi-Fi模塊接收二維碼掃描器的數據,并發送當前狀態給單片機,單片機監測Wi-Fi模塊的狀態,并發送相應控制命令,使其進入對應的工作模式。處于Wi-Fi信號范圍內的Wi-Fi模塊再通過無線局域網把數據發送給服務器。服務器接收到數據后,會把數據導入數據庫,實現數據的管理、整合。客戶端服務器還會根據當前Wi-Fi模塊的連接狀態,顯示相應信息給用戶,如果連接異常,對應的警示燈就會亮起。
2 系統硬件設計
系統的硬件設計主要可以分為三個部分:單片機及其外圍控制電路,ESP8266 Wi-Fi模塊、二維碼數據接收電路。
2.1 單片機及其外圍電路
本設計選用高性能、低功耗的8位單片機——ATmega16A。該芯片為系統提供可靠控制與強大數據處理能力。單片機及其外圍電路包括ATmega16A最小系統、繼電器、狀態指示燈。主要功能實現部分,單片機的兩個串行通信接口和Wi-Fi模塊對應相連,通過發送AT指令來配置Wi-Fi模塊,實現連接Wi-Fi、進入透傳模式、發送數據等功能。狀態指示部分兩個高亮LED通過串聯一個限流電阻后與單片機的PA0、PA1口相連。在Wi-Fi模塊搜索到無線AP后并連接上服務器后,會返回給單片機一個指令,通過校驗返回指令末位的“OK”二字的ASCII碼,來判斷Wi-Fi模塊是否順利連接上服務器。如果連接上服務器,指示燈變綠表示工作正常,主程序的流程圖如圖2所示。
2.2 ESP8266 Wi-Fi模塊
目前,市面上可供選擇的Wi-Fi模塊有很多,在權衡設計成本和可靠性后,選擇ALIENTEK公司出品的一款串口轉無線模塊。通過ATK-ESP8266模塊,傳統的串口設備只需要簡單的串口配置,就可以方便快捷的通過Wi-Fi傳輸數據[3]。而且ATK-ESP8266模塊也支持串行接口,電源電壓可以匹配3.3伏特和5伏特單片微型計算機系統,可以很方便的和單片機進行連接。模塊支持串口轉Wi-Fi STA、串口轉AP和Wi-Fi STA+Wi-Fi AP的模式,從而可以高效的構建串口——Wi-Fi數據傳輸方案。本設計中利用單片機發送AT指令配置Wi-Fi模塊。
在實際調試中,發現單片機的RXD和TXD并聯Wi-Fi模塊的數據通路后可能會無法正常工作,于是加入1路繼電器模塊JQC-3FF來控制單片機的RXD,TXD與Wi-Fi模塊的數據線的通斷。JQC-3FF有受控側和控制側,控制側由單片機控制,低電壓低電流;受控側接入高電壓,高電流。控制側的三個端口分別接VCC,GND,單片機的PC0口,PC0作為控制信號的輸入端。受控側COM口并聯接在Wi-Fi模塊的RXD口,NO口接在單片機的TXD。每當接通電源時,配置PC0口輸出高電平,導通RXD與TXD。當單片機收到Wi-Fi模塊回傳Wi-Fi連接成功指令后,立即配置PC0口輸出低電平,斷開COM與NC之間的連接,即斷開單片機的TXD與Wi-Fi模塊的RXD的連接。
2.3 二維碼數據接收電路
二維碼掃碼器通過九針串口與Wi-Fi模塊和單片機連接。由于掃碼器和單片機提供的信號電平與RS232的標準不同,因此電平轉換應通過MAX232的芯片進行。掃碼器掃描到的二維碼數據通過電平轉換芯片MAX232轉換后,送入Wi-Fi模塊,并經內部微處理器處理后,發送給服務器。
在實際測試中,發現MAX32對電源十分敏感,一旦電源電壓不穩定,大概率導致MAX232芯片發熱嚴重,從而無法和Wi-Fi模塊和單片機通信,因此需要先經穩壓后再給MAX232和本系統供電。
3 客戶端軟件設計
本設計的服務器客戶端是用Visual Studio2019開發的。Client/Server是一種數據庫的結構,本設計的系統是使用這種數據庫結構將多個數據轉發模塊作為客戶端連接到PC端的服務器[4]。活動數據對象(ADO)可以對數據庫進行訪問,是一種自動化接口技術,ADO技術創建數據庫的使用程序速度非常快,也是最節省網絡流量的一種數據庫訪問技術,并且能為數據庫提供質量高的接口[5]。Wi-Fi模塊與計算機通信是依賴于TCP/IP協議,端口配置文件通過改寫文本文檔“port”來實現,每次軟件運行前會讀取文檔中的端口號,因此可以同時配置連接不同端口號的設備。設備上線后,顯示綠燈,離線顯示紅燈。軟件主面板會顯示設備的具體信息,包括端口號、IP地址。數據被接收后,會自動導入到數據庫,對數據分組顯示。客戶端界面如圖3所示。
4 結論
本系統在設計前期進行了充分的理論研究;驗證了其可行性后,設計并實現了基于Wi-Fi的多路二維碼讀取系統。整機在運行過程中,能正常處理數據并實時同步到服務器,可靠性高。本設計利用低功耗的單片機和Wi-Fi模塊,提供了一種新型物聯網設計方案,非常適合移動應用場景下的多路二維碼讀取。同時,因其硬件成本的低廉而具有很高的性價比。若能夠在本系統的基礎上,稍加擴展,便可組成覆蓋面積廣、超多路并行傳輸的二維碼讀取網絡。
參考文獻:
[1]王燕.基于Wi-Fi模塊的多路燈光控制系統開發[J].電子世界,2015,479(17):186-188.
[2]陳守喆.基于二維碼的信息管理系統[D].華南理工大學,2016.
[3]邱宏斌.一種基于ESP8266模塊的物聯網設計思路[J].電子世界,2017,000(007):157-157.
[4]羅亞非.基于TCP的Socket多線程通信[J].電腦知識與技術,2009,5(3):563-565.
[5]徐楓,馬國之,劉良旭.基于ADO技術的數據庫訪問研究與實現[J].計算機工程與設計,2004(01):107-110.