发 帖  
原厂入驻New

【大联大友尚REALTEK RTL8195AM WIFI开发板试用体验】基于RTL8195AM的疫情防控人员温度检测系统

2020-9-7 18:39:36  50 REALTEK RTL8195AM 测温 Ameba
分享
0
本帖最后由 小影效应 于 2020-9-7 19:23 编辑

Realtek RTL8195AM 开发板


零、摘要与背景介绍

1.随便讲一点


有幸收到电子发烧友论坛送来的Realtk RTL8195AM开发板,本文只做简单到货体验,其他内容随后一边开发测试,一边写帖子,希望各位能提出宝贵指导。
Realtek RTL8195AM开发板,是基于RTL8195主控为核心模块,构件的IOT开发板,Realtek自己搞了个系列,称作Realtek-Ameba,兼容Arduino,MbedOS,Google IOT等平台。

2.Ameba介绍

Ameba解决方案列表中有如下方案设计:
  • 基于Ameba-1的开发平台
    RTL8195AM/RTL8711AM/RTL8710AF支持Wi-Fi和NFC tag等高端功能,低功耗设计,应用场景包括安全,数据采集等场景,软件平台兼容Arduino,MbedOS,Google IOT等主流开放式平台
  • 基于Ameba-Z的开发平台
    RTL8710BN/RTL8711BU 支持Wi-Fi,低功耗设计,兼容Arduino平台
  • 基于Ambed-D的开发平台
    RTL8722DM/RTL8721DM/RTL8720DN支持Wi-Fi,以及BLE5.0,支持安全域和安全激动,低功耗
  • 基于Ambed-Z2的开发平台
    RLT8720CM/RTL8720CN/RTL8720CF 支持Wi-Fi以及BLE4.2,支持安全启动和低功耗模式。
3.随便说的话


根据个人对Ameba几日的了解来看,这是一个针对学习,原型开发,和产品快速成型特别合适的产品,其文档资料API很完整,在兼容Arduino上看,产品相当大程度解决了产品的入门门槛,现在Arduino和开源硬件在市场上做的火热,故这次能收到电子发烧友论坛送来的RTL8195AM DEV01,是很好的鼓励,感谢赋予的机会

一、硬件介绍与实物展示



1.硬件介绍
  • 来自ARM_Mbed平台的介绍
    Ameba是一款兼容Arduino的物联网开发板,除了WIFi连接外,还包含了NFC标签,并可以通过兼容Arduino的标头支持以太网。主板的大脑是Realtek RTL8195AM Wi-Fi SoC,内置Arm®Cortex®-M3 MCU,包括WiFi连接、硬件SSL、SRAM和flash。为创客社区和四轴飞行器、太阳能系统、传感器环境、自动化解决方案等提供解决方案。
  • 亮点:
    • 32-bit Arm®Cortex®-M3
    • up to 166MHz - 1MB ROM, 2MB SDRAM and 512KB SRAM
  • 特性:
    • 集成 with 802.11 b/g/n 1x1 Wi-Fi
    • NFC Tag with Read/Write Function NFC标签具有读写功能
    • 10/100 Ethernet MII/RMII/RGMII InteRFace 以太网接口
    • USB OTG
    • SDIO Device/SD card controller SDIO设备/SD卡控制器
    • Hardware SSL engine 硬件SSL引擎
    • Maximum 30 GPIOs 最多30个GPIOs
    • 2 SPI Interfaces and support both master and slave mode 2个SPI接口支持主从模式
    • 3 UART Interfaces including 2 HS-UART and one log UART 3个串口接口,包括2 HS-UART和一个Log UART
    • 4 I2C Interfaces and support both master and slave mode 4个I2C接口,支持主从模式
    • 2 I2S/PCM Interfaces and support both master and slave mode 2个I2S/PCM接口,支持主从模式
    • 4 PWM interfaces 4个支持PWM接口
    • 2 ADC interfaces 2个支持ADC接口
    • 1 DAC interfaces 1个支持DAC接口
2.实物展示
见正面图,可看到,RTL8195AM开发板采用长方形版型,长,宽,高, 大小恰好比手机小一圈,可直接观察到,板上左侧的2.4G天线,3XmicroUSB(Dowload_DAP,USB_HOST[背面],Power5VDC),中为独立模块,可见Reltek的目的是给模块的批量出货和可定制化铺好了道路,在板子的正上方区域,设计为NFC感应线圈,可识别NFC tag等支持的nfc标签
A00.jpg

⬆⬆⬆正面图



侧面为SAM接口,用于驳接Wifi天线,这里随板附送了一根SAM的胶棒天线,在细节处可看到,模块天线线路预留了转接电阻,可转为SAM口,板载天线或ipex口。
A04.jpg

⬆⬆⬆侧面图


下图了解到可根据调整电阻实现I-PEX,外接或PCB天线


A05.jpg

⬆⬆⬆天线切换图

开发板的接口版型与Arduino uno一致,这就很大程度减轻了开发负担,可对其直接叠加盾板或者其他控制板,增强扩展性能。
A06.jpg



开发文档内也提供了对于的传感器版的推荐图纸
版型型号为Extension board: RTL-AMEBA_EXT B2_2V0


A07.jpg



可见开发板正面有这两个microUSB接口,左侧MicroUSB功能为DAP+SerialUSB+DC_Power 隔壁为DAP update button ,右侧microusb为DC 5V power无其他功能,隔壁为DAP reset button,反面可见一个用于USB Host的MicroUSB接口,调试使用CON2接口


A08.jpg



板子反面标记了引脚功能定义,在反面左下方预留了Jtag接口,方便对板子做其他高级开发,右下侧标记了Log Uart接口,丝印标记了Mbed EnabLED 支持Mbed开发

A03.jpg

整个板子核心控制模块在板子中央,模块左上角有着ipx座,同时可看出模块上印有PCB天线,模块上贴标Realtek-Ameba-8195AM,开发板通过左下角LPC11U35FHI33微控制器转接出,实现DAP mode下载功能和其他USB相关功能

A09.jpg


二、详细介绍



1.硬件部分根据官方提供的硬件文档,详细介绍了板卡的功能区块和引脚功能
硬件框图
  • IC: RTL8195AM
  • Module HDK version: HDK-AM95A03_1V0
  • DEV HDK version: RTL-AMEBA_DEV01_1v1

A10.jpg

Pin IO功能图

能看到接口和Arduino Uno版型吻合,I2C SPI AREF UART等

A11.jpg


在MbedOS在线编译环境中,接口被定义为和Arduino类似的D0-D19 兼容Uno的版型
定义如下图,可对简化接口配置,方便后期扩展

A12.jpg

Mbed上有更清晰的接口配置图  图片如下
左侧IO配置图片

A13.jpg

右侧IO配置图片

A14.jpg

2.硬件图纸
模块原理图如下,核心为RTL8195AM 98TFBGA 6X6MM,外部晶振源40M,并配有个flash

A15.jpg

从官方的打包内可以看到板层设计为四层板,长度为19mmX22.25mm
可直观看到模块上设计有PCB的wifi天线

A16.jpg

三维图中可以看到设计有屏蔽罩焊盘,以及bga焊盘的走线

A17.jpg

模块反面可更清晰看出邮票孔设计

A22.jpg

从板层原理可看出,电源分5V和3.3V两路,3.3V由5V通过G5728转化来,模块提供的Uart和JTAG由LPC单片机控制,同时单片机提供烧录固件的DAP功能

A18.jpg

主板长度91.7mm宽度54.5mm,4层板设计,有4个定位孔,NFC天线板设计有V-cut,用作后期掰开分离NFC天线,模块位于板子中央

A19.jpg

三维图中可看到丝印螃蟹logo,型号为RTL-AMEBA_DEV01_1V0

A20.jpg

反面可视引脚定义和Mbed Enabled标注

A21.jpg

3.软件部分Ambed支持传统的IAR,Arduino,MbedOS Google IOT,这里我只展示ArduinoIDE的载入方式

A23.jpg

这里附加了
https://github.com/Ameba8195/Arduino/raw/master/release/package_realtek.com_ameba_index.json
这个库

然后通过开发板管理器安装
A24.jpg

安装完成后即可成功载入实例


另外,在Ameba的支持网站上找到了Fritzing的矢量图支持

A25.jpg


8195的图包连接如下
https://github.com/Ameba8195/Arduino/raw/master/misc/Fritzing/Ameba.fzpz


三、项目内容




1.简单说明
目标是通过8195+MLX90614 实现简单的人体测温+人员打卡
框图如下

A26.jpg

MLX90614是一个红外测温传感器,通过I2C并入Ameba8195
A27.jpg

连接示意如下图


A25.jpg


2.代码示例

连接后测试代码如下

注:此代码为互联网收集的测试传感器的代码,实际测试时请自行测试和鉴别
详细代码因项目需要暂时不公开,后续修改后大概率会公开
* Non-contact Thermometer with GY - 906 module

* Support for the MLX90614 sensor on the I2C bus

* SDA line = A4

* SCL line = A5

* Sensor supply with 5V

*/

#include

#include

LiquidCrystal lcd (8, 9, 4, 5, 6, 7);

int address = 0xb4; // Sensor address MLX90614

int erc = 0; // Variable holding the PEC value

int dataH = 0; // The second byte of data

int dataL = 0; // The first byte of data

double tempnalsb = 0.02; // Variable by which the digital value will be multiplied

double temperature = 0; // Variable holding the temperature

void setup ()
{

    i2c_init (); // Initialization of the I2C bus

    lcd.begin (16, 2); // Initialize the display
}

void loop ()
{

    i2c_start_wait (address + I2C_WRITE); // Start I2C communication in write mode

    i2c_write (0x07); // Write the value 0x07 (select the register Tobj1)

    i2c_rep_start (address + I2C_READ); // Restart I2C communication at the read address

    dataL = i2c_readAck (); // Read the first byte of data

    dataH = i2c_readAck (); // Read the second byte of data

    erc = i2c_readNak (); // Read the third (unimportant) data byte

    i2c_stop (); // End of I2C transmission

    temperature = (double) (((dataH & 0x007F) 《《 8) + dataL); // Create a 16-bit variable consisting of two one-byte variables

    temperature = temperature * tempnalsb; // For one bit 0.02 K, the result of this operation is the temperature in Kelvin

    temperature = temperature - 273.15; // Conversion to Celsius degrees

    lcd.setCursor (0,0); // Display (first LCD line)

    lcd.print (“Object =”);

    lcd.print (temperature);

    lcd.print (“”);

    lcd.write (0xDF); // Degree sign

    lcd.print (“C”);

    i2c_start_wait (address + I2C_WRITE);

    i2c_write (0x06); // Select the ambient temperature register

    i2c_rep_start (address + I2C_READ);

    dataL = i2c_readAck ();

    dataH = i2c_readAck ();

    erc = i2c_readNak ();

    i2c_stop ();

    temperature = (double) (((dataH & 0x007F) 《《 8) + dataL);

    temperature = temperature * tempnalsb;

    temperature = temperature - 273.15;

    lcd.setCursor(0,1); // Display (second LCD line)

    lcd.print (“Ambient =”);

    lcd.print (temperature);

    lcd.print (“”);

    lcd.write (0xDF);

    lcd.print (“C”);

    delay (200); // Delay 200ms
}

测试实物如下图
A29.jpg



随后通过联合NFC库 Wifi库 等 实现功能


A30.jpg



通过和数据库和无线服务NFC服务联合,实现打卡时完成测温的服务
A31.jpg


效果还是可以的,8195在很大的情况下省去了单独的Wifi+NFC两部分需要配置的难点,在小型区域内,单设备可以完成大量工作,在成本压缩上有很大的好处



随后项目如果有问题,可以相互交流,如有不足,欢迎指教,最后感谢论坛给我的试用机会



封面图.jpg





只有小组成员才能发言,加入小组>>

85个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表