搜索

tag 标签: 无线

相关帖子

版块 作者 回复/查看 最后发表
沁恒CH579M-R1开发板免费测评活动即将推出,快来说说你对这块板子的看法吧~ attachment 国产芯片交流 okhxyyo 2020-8-3 13 316 naga568 3 天前
有关无线发射器和接收器知识 attach_img RF/无线 Jacktang 2020-7-28 1 234 led2015 2020-7-29 00:33
Qorvo PAC芯片在无线吸尘器的应用 attach_img RF/无线 alan000345 2020-7-23 2 271 alan000345 2020-7-24 16:21
一种低功耗、无线型无线传感器网络设计 attach_img 无线连接 Jacktang 2020-7-5 1 293 宋元浩 2020-7-6 00:01
我国最新《微功率短距离无线电发射设备目录和技术要求》 attachment RF/无线 qwqwqw2088 2020-6-26 1 2025 qwqwqw2088 2020-6-26 08:16
如何提升无线模块的抗干扰能力 RF/无线 火辣西米秀 2020-6-25 1 284 alan000345 2020-6-30 10:43
射频无线传输距离 attach_img RF/无线 Jacktang 2020-6-24 3 365 btty038 2020-7-2 12:43
无线射频识别(RFID)是怎样工作的? attach_img 无线连接 qwqwqw2088 2020-6-14 4 396 alan000345 2020-6-30 10:57
ESP32-S2-Kaluga-1 乐鑫 新型多媒体开发板 attach_img 国产芯片交流 okhxyyo 2020-6-11 7 467 damiaa 2020-6-12 08:42
如何借助德州仪器无线连接平台创建强大的智能家居和楼宇安全系统 微控制器 MCU alan000345 2020-6-10 0 303 alan000345 2020-6-10 17:04
微型双模无线接收器 attach_img 无线连接 Jacktang 2020-6-10 1 278 MartinFowler 2020-6-10 15:55
结合zigbee和GPRS的无线传输网络 attach_img 无线连接 Jacktang 2020-6-8 1 390 alan000345 2020-6-11 11:33
无线通信库 micropython-radio attach_img MicroPython开源版块 dcexpert 2020-6-8 2 202 dcexpert 2020-6-8 13:45
有关混合动力汽车和电动汽车的无线BMS的三个问题 微控制器 MCU alan000345 2020-6-4 0 404 alan000345 2020-6-4 07:30
USB转UART技术和无线技术实现无线通讯终端系统的设计 RF/无线 fish001 2020-6-1 0 1010 fish001 2020-6-1 22:21
无线通信的一些基本原理 RF/无线 蓝先生 2020-5-20 1 788 containsmachine 2020-5-20 13:18
4G与5G 无线技术细节对比 RF/无线 蓝先生 2020-5-16 1 489 455850258 2020-6-30 15:31
LoRa Wireless物联网无线技术频段划分 attach_img RF/无线 Jacktang 2020-5-14 1 342 MartinFowler 2020-5-14 09:52
烟感做无线电源 安防电子 蜀禅文化 2020-3-27 3 547 yyqf2008 2020-4-26 16:06
用ESP32无线控制的旋转平台uPySteppers attach_img MicroPython开源版块 dcexpert 2020-6-18 1 216 toothache 2020-6-19 09:16

相关日志

分享 高交会某展会选择中兴新支点ICG解决方案实现无线网络覆盖
小小小极客 2018-5-21 14:45
高交会某展会选择中兴新支点ICG解决方案实现无线网络覆盖
被视为 “中国科技第一展”的高交会于每年 11 月 16 日上午都会在深圳会展中心主会场上举行开幕论坛,而最具科技味的展会也将会在接下来的 6 天时间里发布多项新技术新产品,描摹未来时代的全新面目。高交会是中国高新技术领域对外开放的重要窗口,集成果交易、产品展示、高层论坛、项目招商、合作交流于一体。 在如此重要的场合里,每一个参展的展商都希望在场馆里取得好的效果。大多数情况下,场馆都已经部署了运营商信号的 Wi-Fi 网络。但如此多的展商和参展人员共同使用场馆的 Wi-Fi 网络,连接的效果不是很好,相信很多与会人员都有所体会。因此,某展商与中兴新支点展开合作,通过部署中兴新支点领先的无线网络解决方案,实现展会无线网络全覆盖,使宾客在展会中可以随时随地访问无线网络,并能享受到更加周全、更加可靠、更加快速的服务,提高宾客满意度,从而进一步提升产品企业形象。 早在 2016 年,某展商就与中兴新支点合作进行了无线网络建设,并在展会上实现了无线网络全覆盖。在那次的合作中,中兴新支点 ICG 的高可靠、服务和技术支持的快速响应给展商留下了深刻的印象。 通过从技术先进性、服务高质量性、产品可靠性、管理便捷性、租赁成本等角度全面考虑,某展商决定与中兴新支点再度携手。中兴新支点的 ICG 无线解决方案实现了会场无线网络覆盖,在部署过程中充分体现了自身的突出优势,即插即用,开网 2 分钟就可使用。无需布线,尺寸小且轻,携带方便,支持电信联通移动 6 卡 2G/3G/4G 全网通混插。 在本次的合作中,某展商以最少的成本完成了实现稳定、可靠、快速的无线网络全覆盖的目标,不仅使产品完美地展示,提高员工工作效率,还吸引了大量的人员来观看和体验产品,获得了高度的赞誉。同时,良好的 WiFi 体验为来观看和体验产品的人员带来了更加愉悦、宾至如归的服务体验,无形中为展商带来了商机。
个人分类: WiFi|0 个评论
分享 (转发聚源电子)初步了解iPhone 8如何利用无线充电线圈来实行无线充电
juyuandianzi 2017-5-22 15:18
近期,一年一发布的 iPhone 8 传闻将实行无线充电,那我们就来 初步的了解下 iPhone 8是如何利用无线充电线圈来实行无线充电的 吧 iPhone 8 传闻将实行无线充电后,马上就有人爆料出了 一张 iPhone 8 的背部透视示意图。 从图片中我们可以看到其中最为显眼的就是中间部位那个巨大的无线充电线圈加上旁下方的无线充电模块,这两个元件几乎就元件占据了整个后壳将近三分之一的面积。而且从图中我们还可以看到无线充电线圈的走向无论是形状还是大小比例,这个 无线充电线圈 和无线充电模组都是与三星 S8 的无线充电组件特别的类似。 而这层无线充电线圈是在电池上面,可以拆卸下来的 那我们可以再来看下无线充电线圈的充电原理。 无线充电线圈的充电原理: 无线充电系统主要采用电磁感应原理,通过线圈进行能量耦合实现能量的传递。如图所示,系统工作时输入端将交流市电经全桥整流电路变换成直流电,或用24V直流电端直接为系统供电。 经过电源管理模块后输出的直流电通过2M有源晶振逆变转换成高频交流电供给初级绕组。通过2个电感线圈耦合能量,次级线圈输出的电流经接受转换电路变化成直流电为电池充电。 变化的磁场会产生变化的电场,变化的电场会产生变化的磁场,其大小均与它们的变化率有关系,而正弦函数的变化率是另外一个正弦函数,所以电磁波能够传播出去,而感应电压的产生与磁通量的变化相关,所以线圈内部变化的磁场产生感应电压,从而完成充电过程。 无线充电 是比较新颖的充电方式,其原理其实很简单,就是将普通的变压器主次级分开来达到无线的目的。当然,无线充的工作频率比较高,甚至可以抛弃铁心直接线圈之间就可以达到能量传递的作用 由此可见即将发布的iPhone 8要和三星一样将无线充电线圈放置于后部来进行无线充电也是可以的哦, 当然毕竟iPhone 8还没有上市呢?一切也都只能是猜测而已,不如我们就一起对iPhone 8的无线充电拭目以待吧!
421 次阅读|0 个评论
分享 KW41Z:真正的单芯片多协议无线通信MCU + 恩智浦KW41Z有奖创意征集令高能来袭
linghz 2017-1-5 09:15
KW41Z:真正的单芯片多协议无线通信MCU + 恩智浦KW41Z有奖创意征集令高能来袭 +http://www.eeworld.com.cn/huodong/201611_NXPKW41ZActivity1/index.html
431 次阅读|0 个评论
分享 NRF24l01无线温度
1320gzg 2016-11-10 10:24
统使用前先分别将无线发送、 接收程序通过 STC_ISP 软件下载烧录到 型号为 STC89C52RC 的单片机上。具体过程为:先查看 COM 号,再打开 STC_ISP 软件选择相应的串口号,选择好要下载的 16 进制文件,进行下载, 设置波特率为 115200 。参照下
309 次阅读|0 个评论
分享 基于XBee进行ZigBee组网——XBee介绍
Bitconn_Terry 2016-7-7 15:48
XBee模块是Digi公司的一款采用ZigBee技术的无线模块,通过串口与单片机等设备间进行通信,能够非常快速地实现将设备接入到ZigBee网络的目的,我最近做的一个项目使用了该模块,感觉非常的好用,开发基于ZigBee的无线通信来说是很easy了。此模块采用802.15.4协议栈,通过配置可以用作ZigBee网络中的Coordinator、Router或者End Device节点。XBee按照性能分为XBee和XBee pro两种,XBee pro相对于XBee具有更高的功耗和更远的传输距离,它们对外的接口基本相同,可以根据实际项目的要求来选择。 XBee的引脚如下图所示: 最简单的使用方式下只需要将单片机的串口与XBee模块的串口(Pin2、Pin3、Pin10)相连即可,另外也可通过RTS(Pin16)、CTS(Pin12)进行流控,单片机与XBee模块串口的连接如下图所示: XBee模块与单片机的串口通信有transparent和API两种操作模式: (1)transparent操作模式: 单片机直接通过串口将要传输的数据发送给XBee模块,XBee模块按照ZigBee协议将数据通过无线发送给远端的XBee模块,再通过串口发送给远程的单片机,就好像两个单片机之间通过XBee模块建立了一条透明传输通道。如果要通过串口配置本地XBee模块的参数,则可以向XBee模块输入+++,等待XBee模块返回OK后即可通过AT指令集对XBee模块进行参数的配置。这里使用Digi公司的XCTU软件进行演示(XCTU的具体使用以后再进行详细的介绍,其实就是通过串口与XBee模块交互的软件),如下图所示: (2)API操作模式: 在API操作模式下,所有发送给XBee模块的数据或是从XBee模块接收的数据都会封装成特殊的API帧的格式,包括ZigBee无线发送和接收的数据帧、XBee模块配置的命令帧(等同于transparent操作模式里面的AT指令)、命令响应帧、事件消息帧等。相比于transparent操作模式,API操作模式虽然相对复杂一点,但是提供很多transparent操作模式下无法完成的功能: API操作模式下,只需要改变API帧里面的目的地址,就可以将数据传输给多个不同的远程节点,而transparent操作模式下要改变远程目的地址只能先进入AT命令下配置目的地址,在进行数据传输。而且API可以接收数据是否发送成功的状态; 接收到的远程节点的数据可以获取远程节点的地址以确认是哪个节点发送的; 获取远程节点的IO采样数据; 通过API帧还可以配置远程XBee模块的参数。 API模式的使用将在以后的文章中进行详细介绍。 XBee模块还具有以下的一些比较实用的功能,简要介绍一下: (1)支持IO的输入输出,AD采样 上面引脚图中的Name列含有DIOx字样的引脚表示可以进行数字IO的采样输入或者输出高低电平,通过AT指令配置引脚复用的参数即可; 含有ADx字样的引脚表示可以进行模拟电压的AD采样输入,采样电压范围为0~1200mV,采样值范围0~0x3FF,此外还可以对Vcc电压进行采样。 XBee可以将采样数据直接通过ZigBee网络发送给远程节点。这样,在API操作模式下,可以使用远程配置命令控制远程XBee节点开启采样,采样后的数据直接传给本节点,还可以控制远程节点IO输出来控制远程XBee接的外围设备。 (2)ZigBee网络安全 XBee支持多个等级安全模式,加密方式采用128位的AES加密,如下图: (3)可通过串口Xmodem升级XBee的固件 将DTR(Pin9)、DIN(Pin3)置为低电平,RTS(Pin16)置为高电平后复位XBee模块即可进入XBee的bootloader,串口通信波特率变为115200,输入回车后可获得菜单,选择相应的选项后可以通过Xmodem将XBee固件传送给模块进行升级。
个人分类: digi zigbee|915 次阅读|0 个评论
分享 如何实现CAN总线设备无线连接Android手机
cankau 2016-7-5 12:05
CAN总线是由德国BOSCH公司为现实汽车测量和执行部件之间的数据通讯而设计的串行通讯网络。随着CAN的应用普及,其应用范围已不局限于汽车行业,正在向机械、纺织等行业发展,随着应用领域分布式控制系统的网络越来越庞大,CAN总线越来越受地域限制。如何能使CAN网络脱离地域局限性,最有效的方法当属将CAN现场控制总线与成熟网络结合,让CAN通讯的工业测控设备、汽车电子设备、医疗电子设备等也能在有、无线中进行信息传递。那么,如何能使CAN现场控制总线网络与有、无线网络转换,由于CAN总线协议数据与TCP/IP协议数据在桢结构上完全不同,所以我们必须使用转换接口对其数据包重新封装。 Android 是由 Google 公司主导的开放手机联盟于 2008 推出的移动手持终端操作系统。 Android 具有稳定、开放性、所有应用程序平等、应用程序间无界限、快速方便的应用程序开发等优点,故 Android已成为目前使用用户最多的嵌入式操作系统。 随着Android操作系统市场占有率的提高,Android设备性能的调高和价格的下降,使用手机、平板调试CAN设备以及进行数据采集和监控成为可能。 如何实现CAN总线设备无线连接Android手机? 1.通过使用K9130 CAN转WiFi CAN转WLAN无线数据采集收发器实现CAN总线设备无线连接Android手机 K9130是工业级CAN转WiFi无线数据采集收发器。内部集成一路CAN-bus接口,一路WiFi无线接口,及TCP/IP协议栈,符合 IEEE802.11b/g/n标准,具有传输速率高,接收灵敏度高等特点。K9130通过与无线路由器配合使用,设备可以在拥有相同SSID的接入点 之间自由漫游,通过无线WiFi把CAN接入Wireless Ethernet,也可以自建热点允许手机,平板,笔记本等设备连接组成无线局域网。用户可以使用K9130轻松完成CAN-bus网络和 Wireless Ethernet的互联互通,进一步拓展CAN-bus网络和WiFi网络的应用范围。 使用K9130实现CAN总线设备无线连接Android手机示意图如下: 2.通过使用K9150 CAN转蓝牙无线数据采集收发器实现CAN总线设备无线连接Android手机 K9150 CAN转蓝牙无线数据采集收发器。内部集成一路CAN-bus接口,一路蓝牙无线接口。因为支持传统蓝牙和BLE两种模式,可以在部分手机和平板上使用。 使用K9150实现CAN总线设备无线连接Android手机连接示意图如下: 总结 我们可以通过以上两种方式如何实现CAN总线设备无线连接Android手机,方便的实现调试CAN设备和对CAN设备进行无线数据采集和监控。
621 次阅读|0 个评论
分享 研究NRF24L01有很长一段时间了
热度 1 喵爱小鱼鱼 2016-5-1 14:45
然而,到现在已经是身心俱疲了,很早很早以前就调通过的程序不知道咋的就不见了,然后现在又调 啊调,MD一天火大,现在只希望天上掉个能够真正收发的例程就可以了。调这个无线 弄得我都开始思考人生了。╮(╯▽╰)╭哎,算了,还是自己滚去接着调哦。。。。2016年5月1号
个人分类: 自言自语|776 次阅读|2 个评论
分享 无线充电
luohaisong 2016-4-20 11:03
最近在搞无线充电,如果有做过的大神可以一起探讨一下
189 次阅读|0 个评论
分享 LED调光的方式
零下12度半 2016-1-21 17:14
LED的调光分为5类:模拟调光,PWM调光,数字调光,TRIAC调光(双向晶闸管调光),无线调光
406 次阅读|0 个评论
分享 CC2538之TinyOS例程实验:10-CoAPServer zigbee灯光无线控制实验
dan158185 2016-1-5 16:11
本例程的实验需要9-Ppprouter实验节点;通过边界路由来实现CoAPServer 的节点LED控制; 先烧写一个Ppprouter节点,连接PC,pppd拨号连接后;进行下面的操作;不清楚的朋友大家可以去看看视频部分; 例程目录: tinyos-main-release_tinyos_2_1_2\apps\cc2538_Test\CoapBlip Makefile文件; 任性的忽略 CoapBlipC.nc文件: view plain copy print ? #ifdefCOAP_RESOURCE_KEY #include"StorageVolumes.h" #endif #includeiprouting.h #include"tinyos_coap_resources.h" configurationCoapBlipC{ }implementation{ componentsMainC; componentsLedsC; componentsCoapBlipP; componentsLibCoapAdapterC; componentsIPStackC; CoapBlipP.Boot-MainC; CoapBlipP.Leds-LedsC; CoapBlipP.RadioControl-IPStackC; #ifdefIN6_PREFIX componentsStaticIPAddressTosIdC; #endif #ifdefRPL_ROUTING componentsRPLRoutingC; #endif #ifdefCOAP_SERVER_ENABLED componentsCoapUdpServerC; componentsnewUdpSocketC()asUdpServerSocket; CoapBlipP.CoAPServer-CoapUdpServerC; CoapUdpServerC.LibCoapServer-LibCoapAdapterC.LibCoapServer; LibCoapAdapterC.UDPServer-UdpServerSocket; #ifdefined(COAP_CONTENT_TYPE_JSON)||defined(COAP_CONTENT_TYPE_XML) componentsLocalIeeeEui64C; #endif #ifdefCOAP_RESOURCE_DEFAULT componentsnewCoapDefaultResourceC(INDEX_DEFAULT); CoapUdpServerC.CoapResource -CoapDefaultResourceC.CoapResource; CoapDefaultResourceC.Leds-LedsC; CoapDefaultResourceC.CoAPServer-CoapUdpServerC;//forPOST/DELETE #endif #ifdefined(COAP_RESOURCE_TEMP)||defined(COAP_RESOURCE_HUM)||defined(COAP_RESOURCE_ALL) componentsnewSensirionSht11C()asHumTempSensor; #endif #ifdefCOAP_RESOURCE_TEMP componentsnewCoapReadResourceC(uint16_t,INDEX_TEMP)asCoapReadTempResource; componentsnewCoapBufferTempTranslateC()asCoapBufferTempTranslate; CoapReadTempResource.Read-CoapBufferTempTranslate.ReadTemp; CoapBufferTempTranslate.Read-HumTempSensor.Temperature; CoapUdpServerC.CoapResource -CoapReadTempResource.CoapResource; #ifdefined(COAP_CONTENT_TYPE_JSON)||defined(COAP_CONTENT_TYPE_XML) CoapReadTempResource.LocalIeeeEui64-LocalIeeeEui64C; #endif #endif #ifdefCOAP_RESOURCE_HUM componentsnewCoapReadResourceC(uint16_t,INDEX_HUM)asCoapReadHumResource; componentsnewCoapBufferHumTranslateC()asCoapBufferHumTranslate; CoapReadHumResource.Read-CoapBufferHumTranslate.ReadHum; CoapBufferHumTranslate.Read-HumTempSensor.Humidity; CoapUdpServerC.CoapResource -CoapReadHumResource.CoapResource; #ifdefined(COAP_CONTENT_TYPE_JSON)||defined(COAP_CONTENT_TYPE_XML) CoapReadHumResource.LocalIeeeEui64-LocalIeeeEui64C; #endif #endif #ifdefined(COAP_RESOURCE_VOLT)||defined(COAP_RESOURCE_ALL)||defined(COAP_RESOURCE_IPSO_DEV_BAT) componentsnewVoltageC()asVoltSensor; #endif #ifdefCOAP_RESOURCE_VOLT componentsnewCoapReadResourceC(uint16_t,INDEX_VOLT)asCoapReadVoltResource; componentsnewCoapBufferVoltTranslateC()asCoapBufferVoltTranslate; CoapReadVoltResource.Read-CoapBufferVoltTranslate.ReadVolt; CoapBufferVoltTranslate.Read-VoltSensor.Read; CoapUdpServerC.CoapResource -CoapReadVoltResource.CoapResource; #ifdefined(COAP_CONTENT_TYPE_JSON)||defined(COAP_CONTENT_TYPE_XML) CoapReadVoltResource.LocalIeeeEui64-LocalIeeeEui64C; #endif #endif #ifdefCOAP_RESOURCE_ALL componentsnewCoapReadResourceC(val_all_t,INDEX_ALL)asCoapReadAllResource; componentsnewSensirionSht11C()asHumTempSensorAll; componentsCoapResourceCollectorC; CoapReadAllResource.Read-CoapResourceCollectorC.ReadAll; componentsnewCoapBufferTempTranslateC()asCoapBufferTempTranslateAll; CoapResourceCollectorC.ReadTemp-CoapBufferTempTranslateAll.ReadTemp; CoapBufferTempTranslateAll.Read-HumTempSensorAll.Temperature; componentsnewCoapBufferHumTranslateC()asCoapBufferHumTranslateAll; CoapResourceCollectorC.ReadHum-CoapBufferHumTranslateAll.ReadHum; CoapBufferHumTranslateAll.Read-HumTempSensorAll.Humidity; componentsnewCoapBufferVoltTranslateC()asCoapBufferVoltTranslateAll; CoapResourceCollectorC.ReadVolt-CoapBufferVoltTranslateAll.ReadVolt; CoapBufferVoltTranslateAll.Read-VoltSensor.Read; CoapUdpServerC.CoapResource -CoapReadAllResource.CoapResource; #ifdefined(COAP_CONTENT_TYPE_JSON)||defined(COAP_CONTENT_TYPE_XML) CoapReadAllResource.LocalIeeeEui64-LocalIeeeEui64C; #endif #endif #ifdefCOAP_RESOURCE_KEY componentsnewCoapFlashResourceC(INDEX_KEY)asCoapFlashResource; componentsnewConfigStorageC(VOLUME_CONFIGKEY); CoapFlashResource.ConfigStorage-ConfigStorageC.ConfigStorage; CoapBlipP.Mount-ConfigStorageC.Mount; CoapUdpServerC.CoapResource -CoapFlashResource.CoapResource; #endif #ifdefCOAP_RESOURCE_LED componentsnewCoapLedResourceC(INDEX_LED)asCoapLedResource; CoapLedResource.Leds-LedsC; CoapUdpServerC.CoapResource -CoapLedResource.CoapResource; #endif #ifdefCOAP_RESOURCE_ROUTE componentsnewCoapRouteResourceC(uint16_t,INDEX_ROUTE)asCoapReadRouteResource; CoapReadRouteResource.ForwardingTable-IPStackC; CoapUdpServerC.CoapResource -CoapReadRouteResource.CoapResource; #endif #ifdefCOAP_RESOURCE_ETSI_IOT_VALIDATE componentsnewCoapEtsiValidateResourceC(INDEX_ETSI_VALIDATE); CoapUdpServerC.CoapResource -CoapEtsiValidateResourceC.CoapResource; CoapEtsiValidateResourceC.Leds-LedsC; CoapEtsiValidateResourceC.CoAPServer-CoapUdpServerC; #endif #ifdefCOAP_RESOURCE_ETSI_IOT_SEPARATE componentsnewCoapEtsiSeparateResourceC(INDEX_ETSI_SEPARATE); CoapUdpServerC.CoapResource -CoapEtsiSeparateResourceC.CoapResource; #endif #ifdefCOAP_RESOURCE_ETSI_IOT_SEGMENT componentsnewCoapEtsiSegmentResourceC(INDEX_ETSI_SEGMENT); CoapUdpServerC.CoapResource -CoapEtsiSegmentResourceC.CoapResource; #endif #ifdefCOAP_RESOURCE_ETSI_IOT_LARGE componentsnewCoapEtsiLargeResourceC(INDEX_ETSI_LARGE); CoapEtsiLargeResourceC.Leds-LedsC; CoapUdpServerC.CoapResource -CoapEtsiLargeResourceC.CoapResource; #endif #ifdefCOAP_RESOURCE_ETSI_IOT_OBSERVE componentsnewCoapEtsiObserveResourceC(INDEX_ETSI_OBSERVE); CoapEtsiObserveResourceC.Leds-LedsC; CoapUdpServerC.CoapResource -CoapEtsiObserveResourceC.CoapResource; #endif #ifdefCOAP_RESOURCE_ETSI_IOT_MULTI_FORMAT componentsnewCoapEtsiMultiFormatResourceC(INDEX_ETSI_MULTI_FORMAT); CoapEtsiMultiFormatResourceC.Leds-LedsC; CoapUdpServerC.CoapResource -CoapEtsiMultiFormatResourceC.CoapResource; #ifdefined(COAP_CONTENT_TYPE_JSON)||defined(COAP_CONTENT_TYPE_XML) CoapEtsiMultiFormatResourceC.LocalIeeeEui64-LocalIeeeEui64C; #endif #endif #ifdefCOAP_RESOURCE_ETSI_IOT_LINK componentsnewCoapEtsiLinkResourceC(INDEX_ETSI_LINK1)asLink1Resource; CoapUdpServerC.CoapResource -Link1Resource.CoapResource; componentsnewCoapEtsiLinkResourceC(INDEX_ETSI_LINK2)asLink2Resource; CoapUdpServerC.CoapResource -Link2Resource.CoapResource; componentsnewCoapEtsiLinkResourceC(INDEX_ETSI_LINK3)asLink3Resource; CoapUdpServerC.CoapResource -Link3Resource.CoapResource; componentsnewCoapEtsiLinkResourceC(INDEX_ETSI_LINK4)asLink4Resource; CoapUdpServerC.CoapResource -Link4Resource.CoapResource; componentsnewCoapEtsiLinkResourceC(INDEX_ETSI_LINK5)asLink5Resource; CoapUdpServerC.CoapResource -Link5Resource.CoapResource; componentsnewCoapEtsiLinkResourceC(INDEX_ETSI_PATH)asPathResource; CoapUdpServerC.CoapResource -PathResource.CoapResource; componentsnewCoapEtsiLinkResourceC(INDEX_ETSI_PATH1)asPath1Resource; CoapUdpServerC.CoapResource -Path1Resource.CoapResource; componentsnewCoapEtsiLinkResourceC(INDEX_ETSI_PATH2)asPath2Resource; CoapUdpServerC.CoapResource -Path2Resource.CoapResource; componentsnewCoapEtsiLinkResourceC(INDEX_ETSI_PATH3)asPath3Resource; CoapUdpServerC.CoapResource -Path3Resource.CoapResource; #endif #ifdefCOAP_RESOURCE_ETSI_IOT_LOCATION_QUERY componentsnewCoapEtsiLocationQueryResourceC(INDEX_ETSI_LOCATION_QUERY)asLocationQueryResource; CoapUdpServerC.CoapResource -LocationQueryResource.CoapResource; #endif #ifdefCOAP_RESOURCE_ETSI_IOT_QUERY componentsnewCoapEtsiLocationQueryResourceC(INDEX_ETSI_QUERY)asQueryResource; CoapUdpServerC.CoapResource -QueryResource.CoapResource; #endif //IPSO #ifdefCOAP_RESOURCE_IPSO_DEV_MFG componentsnewCoapIpsoDevMfgResourceC(INDEX_IPSO_DEV_MFG)asDevMfgResource; CoapUdpServerC.CoapResource -DevMfgResource.CoapResource; #endif #ifdefCOAP_RESOURCE_IPSO_DEV_MDL componentsnewCoapIpsoDevMdlResourceC(INDEX_IPSO_DEV_MDL)asDevMdlResource; CoapUdpServerC.CoapResource -DevMdlResource.CoapResource; #endif #ifdefCOAP_RESOURCE_IPSO_DEV_SER componentsnewCoapIpsoDevSerialResourceC(INDEX_IPSO_DEV_SER)asDevSerialResource; CoapUdpServerC.CoapResource -DevSerialResource.CoapResource; #endif #ifdefCOAP_RESOURCE_IPSO_DEV_N componentsnewCoapIpsoDevNameResourceC(INDEX_IPSO_DEV_N)asDevNameResource; CoapUdpServerC.CoapResource -DevNameResource.CoapResource; #endif #ifdefCOAP_RESOURCE_IPSO_DEV_BAT componentsnewCoapIpsoDevBatteryResourceC(uint16_t,INDEX_IPSO_DEV_BAT)asDevBatteryResource; componentsnewCoapBufferVoltTranslateC()asCoapBufferVoltTranslate; CoapUdpServerC.CoapResource -DevBatteryResource.CoapResource; DevBatteryResource.Read-CoapBufferVoltTranslate.ReadVolt; CoapBufferVoltTranslate.Read-VoltSensor.Read; #endif #endif #ifdefCOAP_CLIENT_ENABLED componentsCoapUdpClientC; componentsnewUdpSocketC()asUdpClientSocket; CoapBlipP.CoAPClient-CoapUdpClientC; CoapUdpClientC.LibCoapClient-LibCoapAdapterC.LibCoapClient; LibCoapAdapterC.UDPClient-UdpClientSocket; CoapBlipP.ForwardingTableEvents-IPStackC.ForwardingTableEvents; #endif #ifdefPRINTFUART_ENABLED /*Thiscomponentwiresprintfdirectlytotheserialport,anddoes *notuseanyframing.Youcanviewtheoutputsimplybytailing *theserialdevice.UnliketheoldprintfUART,thisallowsusto *usePlatformSerialCtoprovidetheserialdriver. * *Forinstance: *$stty-F/dev/ttyUSB0115200 *$tail-f/dev/ttyUSB0 */ //componentsSerialPrintfC; /*Thisisthealternativeprintfimplementationwhichputsthe *outputinframedtinyosserialmessages.Thisletsyouoperate *alongsideotherusersofthetinyosserialstack. */ componentsPrintfC; componentsSerialStartC; #endif } 看着这是蛮多的,但是TinyOS的官方例程在Makefile指定了只有LED资源 CoapBlipP.nc文件: view plain copy print ? /******************************************************************************************************************************************************** *实验8----zigbeeCoAP实验(路由为roll) *节点需求数=2 *编译命令makecc2538cbblipcoapid.xx(xx为1~65533,注意此实验需要用到实验7,id勿与实验7重复) *测试命令: *1,先下载实验7的边界路由,sudo/usr/bin/pppd-hack/sbin/pppddebugpassivenoauthnodetach115200/dev/ttyUSB0nocrtsctsnocdtrctslcp-echo-interval0noccpnoipipv6::23,::24连接边界路由 *2,新打开shell,执行sudoifconfigppp0addfec0::100/64 *3,烧写实验8的bin到节点 *4,ping6ff02::xx(xx为1~65533,且为烧写的测试节点号(该步骤可省略) *5,参考网页测试;http://tinyos.stanford.edu/tinyos-wiki/index.php/CoAP_-17 *shell进入tinyos-main-release_tinyos_2_1_2\support\sdk\c\coap\examples目录 *5.1GETrequest测试:./coap-clientcoap:// /l其中xx为实验8的编译id *5.2PUTrequest:测试:./coap-client-mputcoap:// /l-e7其中xx为实验8的编译id,其中7为bit操作 *对应bit2:bit0分别为led2,led1,led0,置0为灭置1位亮,用户可以put以后再get一次,看看值是否正确,故7为全亮,0为全灭 *也可以参考\apps\cc2538_Test\PppRouter下的README.blip进行测试,但是注意第一步命令pppd的区别 * *通过例程的学习可以自己注册资源,如传感器,电机控制等,进行应用拓展 *******************************************************************************************************************************************************/ #includeIPDispatch.h #includelib6lowpan/lib6lowpan.h #includelib6lowpan/ip.h #include"blip_printf.h" #include"net.h" #include"resource.h" #ifdefCOAP_CLIENT_ENABLED #include"tinyos_net.h" #include"option.h" #include"address.h" #endif #ifndefCOAP_SERVER_PORT #defineCOAP_SERVER_PORTCOAP_DEFAULT_PORT #endif moduleCoapBlipP{ uses{ interfaceBoot; interfaceSplitControlasRadioControl; interfaceLeds; #ifdefCOAP_SERVER_ENABLED interfaceCoAPServer; #ifdefCOAP_RESOURCE_KEY interfaceMount; #endif #endif #ifdefCOAP_CLIENT_ENABLED interfaceCoAPClient; interfaceForwardingTableEvents; #endif } }implementation{ #ifdefCOAP_CLIENT_ENABLED uint8_tnode_integrate_done=FALSE; #endif eventvoidBoot.booted(){ callRadioControl.start(); printf("booted%istart\n",TOS_NODE_ID); #ifdefCOAP_SERVER_ENABLED #ifdefCOAP_RESOURCE_KEY if(callMount.mount()==SUCCESS){ printf("CoapBlipP.Mountsuccessful\n"); } #endif //needstobebeforeregisterResourcetosetupcontext: callCoAPServer.setupContext(COAP_SERVER_PORT); callCoAPServer.registerResources(); #endif #ifdefCOAP_CLIENT_ENABLED //needstobebeforeregisterResourcetosetupcontext: callCoAPClient.setupContext(COAP_CLIENT_PORT); #endif } #ifdefined(COAP_SERVER_ENABLED)defined(COAP_RESOURCE_KEY) eventvoidMount.mountDone(error_terror){ } #endif eventvoidRadioControl.startDone(error_te){ printf("radiostartDone:%i\n",TOS_NODE_ID); } eventvoidRadioControl.stopDone(error_te){ } #ifdefCOAP_CLIENT_ENABLED eventvoidForwardingTableEvents.defaultRouteAdded(){ //structsockaddr_in6sa6; coap_address_tdest; coap_list_t*optlist=NULL; if(node_integrate_done==FALSE){ node_integrate_done=TRUE; inet_pton6(COAP_CLIENT_DEST,dest.addr.sin6_addr); dest.addr.sin6_port=htons(COAP_CLIENT_PORT); coap_insert(optlist,new_option_node(COAP_OPTION_URI_PATH,sizeof("ni")-1,"ni"),order_opts); //thisstuffshouldmostlikelybePOST! callCoAPClient.request(dest,COAP_REQUEST_PUT,optlist,0,NULL); } } eventvoidForwardingTableEvents.defaultRouteRemoved(){ } eventerror_tCoAPClient.streamed_next_block(uint16_tblockno,uint16_t*len,void**data) { returnFAIL; } eventvoidCoAPClient.request_done(uint8_tcode,uint16_tlen,void*data){ //eventvoidCoAPClient.request_done(uint8_tcode,uint8_tmediatype,uint16_tlen,void*data,boolmore){ //TODO:handletherequest_done }; #endif } 一般来说我们在2538上都是运行CoAP Server,PC端运行client,通过边界路由来获取资源;get/put方法 tinyos_coap_resources.h文件: 太长了,只是弄出LED部分,让大家知道为什么测试的时候是coap ...l;这个"l"字符; view plain copy print ? #ifdefCOAP_RESOURCE_LED { INDEX_LED, "l",sizeof("l"), #ifdefined(COAP_CONTENT_TYPE_JSON)||defined(COAP_CONTENT_TYPE_XML) "","", #endif {0,0,0,0},//uri_keywillbesetlater COAP_DEFAULT_MAX_AGE, (GET_SUPPORTED|PUT_SUPPORTED), 1 }, #endif 测试部分大家可以参考TinyOS的官网,搜索CoAP部分测试方法,注意编译时候的CoapBlip的节点号(id.xx) 测试我们通过tinyos-main-release_tinyos_2_1_2\support\sdk\c\coap\examples下的coap-client;测试命令参考TinyOS官网;我们也可以按照视频介绍 在shell输入命令get方法,通过zigbee获取CoapBlip节点的三个LED的状态;也可以控制三个LED的亮灭(put方法),当然你也可以使用ping6命令来玩,或者路由读取命令查看网络; tinyos-main-release_tinyos_2_1_2\support\sdk\c\coap是已经编译过的,用户无需再进行make;这是CoAP的C语言版本-- libcoap ,可以通过他学习使用,注册资源, 自己动手注册温度或其他传感器资源;参考哥伦比亚大学的COAP框架(JAVA版本),或者其他你擅长的语言版本,可以去我的那篇帖子找见支持CoAP的其他语言开源 版本,自己编写PC端或安卓的浏览器插件,或者浏览器界面,应用软件界面,最近事情有点多,先放着,以后补充!
个人分类: CC2538之TinyOS例程|868 次阅读|0 个评论
分享 第四部视频,CC2538TinyOS之CoAP协议无线点灯例程+firefox网页访问(含CC2530 COAP)
dan158185 2015-11-27 19:33
http://v.youku.com/v_show/id_XMTM5NzU1OTY0NA==.html 此次补充的应用层,前面那些视频是作为铺垫,Ppprouter例程的时候 当时有route等命令,就可以自定义传感器命令等接口了,但是那不是标准做法 就像你玩TCP/IP或UDP自行处理接收数据命令一样,当然现在的zigbee的大部分做法也是如此 本例程使用COAP协议类似HTTP 网页访问采用coap://是不是很像http:// 当然方法也类似,put,get,post等方法 firefox集成了coap协议,赞一个!!! 不清楚整个流程,建议去我的优酷空间查看全部视频。并且看看那博客中写的 IETF工作组的介绍,获得全面地对6lowpan的了解!! 建议去我的优酷空间查看系列视频熟悉: 地址: http://i.youku.com/tinyos 基本框架 COAP || UDP || 6lowpan(roll路由) || IEEE802.15.4(zigbee)
554 次阅读|0 个评论
分享 无线能量传输
to_dream 2014-2-16 19:22
根据近磁场的定义可知,六分之一的波长范围内都属于近磁场,近磁场的特点是: 1)磁场强度大于电场强度; 2)磁场强度衰减的速度与距离的平方成正比; 3)磁场的分布是不均匀的。 如果在近磁场的范围内,我们放置一个本征频率与近磁场频率一致的螺旋线圈,那么螺旋线圈与场源之间会发生共振,能量可以实现完全传递,基于这个概念,我们可以实现能量的无线传输,在实际的应用中,螺旋线圈与场源之间的耦合程度决定了传输效率。
个人分类: 无线能量传输|86 次阅读|0 个评论

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-8-10 17:25 , Processed in 0.059249 second(s), 18 queries , Gzip On, MemCache On.

Powered by EEWORLD电子工程世界

© 2020 http://bbs.eeworld.com.cn/

返回顶部