ARDUINO获取的数据如何传到IOT平台

ARDUINO获取的数据如何传到IOT平台,第1张

Arduino 物联网的应用有很多实现方式,介绍一种简单的利用yeelink平台的方法。
1 先到yeelinknet根据注册要求,弄到属于你的API KEY(这个key负责把你和别人上传的数据区别开)。
2建立传感器的ID,并取得你的传感器所对应的URL地址。
3 把你的arduino接上传感器,并在获得传感器数据后,增加这样两行
serialprint("yeelink:");
serialprintln(传感器读数);
4打开Serial2yeelink工具,填入arduino的波特率,传感器url,api-key,点击connect。

注意,这种方法实际上是通过电脑做了中转,Serial2yeelink 把接收到的数据发送到了物联网。

IDE(Integrated Development Environment),中文名为集成开发环境,是用于提供程序开发环境的应用程序。
说白了就是你给arduino写程序然后烧录到开发板上的软件

项目需要的硬件如下:Arduino Uno Ethernet Shield LED灯 2个 电阻 2个 面包板(可选) 连接导线 路由器一个项目要的连接管脚如下:LED 1 --> pin 6 to ground LED 2 --> pin 7 to ground项目需要的软件如下:Eclipse IDE Arduino IDE 1xxLED 1 --> pin 6 to ground LED 2 --> pin 7 to ground项目需要的软件如下:Eclipse IDE Arduino IDE 1xxStep 1: 在 Arduino上编程如下:#include "etherShieldh"#include "ETHER_28J60h"int led2 = 7;int led1 = 6;static uint8_t mac[6] = {0xAA, 0xBB, 0xCC, 0xDD, 0xBB, 0xAA}; // this just needs to be unique for your network, // so unless you have more than one of these boards // connected, you should be fine with this value static uint8_t ip[4] = {192, 168, 0, 15}; // the IP address for your board Check your home hub // to find an IP address not in use and pick that // this or 100015 are likely formats for an address // that will workstatic uint16_t port = 80; // Use port 80 - the standard for >一、ShiftIn()函数

      将一个数据的一个字节一位一位的移入。从最高有效位(最左边)或最低有效位(最右边)开始。对于每个位,先拉高时钟电平,再从数据传输线中读取一位,再将时钟线拉低。

        注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。

  shiftIn(dataPin,clockPin,bitOrder)

  dataPin:输出每一位数据的引脚(int)

  clockPin:时钟脚,当dataPin有值时此引脚电平变化(int)

  bitOrder:输出位的顺序,最高位优先或最低位优先

二、74HC165概述

      74HC165是一款高速CMOS器件,74HC165遵循JEDEC标准no7A。74HC165引脚兼容低功耗肖特基TTL(LSTTL)系列
      74HC165是8位并行读取或串行输入移位寄存器,可在末级得到互斥的串行输出(Q7和Q7),当并行读取(PL)输入为低时,从D0到D7口输入的并行数据将被异步地读取进寄存器内。而当PL为高时,数据将从DS输入端串行进入寄存器,在每个时钟脉冲的上升沿向右移动一位(Q0→Q1→Q2,等等)。利用这种特性,只要把Q7输出绑定到下一级的DS输入,即可实现并转串扩展。
      74HC165的时钟输入是一个“门控或”结构,允许其中一个输入端作为低有效时钟使能(CE)输入。CP和CE的引脚分配是独立的并且在必要时,为了布线的方便可以互换。只有在CP为高时,才允许CE由低转高。在PL上升沿来临之前,不论是CP还是CE,都应当置高,以防止数据在PL的活动状态发生位移。
      SH/LD为低,并口数据存入8个位寄存器中。8个位寄存器分别为Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7。此时Q7里已经有值,可以直接读取了所以,逻辑可以是这样:

      读取Q7的数据,然后IN_CLK_LOW;IN_CLK_HIGH;制造一次上升沿,执行移位 *** 作,使Q6的值移位到Q7中。SH/LD为高,允许移位。一个时钟脉冲,QH向外输出一位数据,同时,从SER采集一位数据补充8位寄存器。

        如上级联情况,右边74HC165的SER悬空,采集数据为0。

        左边74HC165,一个脉冲,QH输出一位数据,同时,从SER采集一位数据补充低位。相当于如下:
开始前:

H1-G1-F1-E1-D1-C1-B1-A1H2-G2-F2-E2-D2-C2-B2-A2

开始传输:

1、1G-1F-1E-1D-1C-1B-1A-2H2G-2F-2E-2D-2C-2B-2A-0

2、1F-1E-1D-1C-1B-1A-2H-2G2F-2E-2D-2C-2B-2A-0-0

3、1E-1D-1C-1B-1A-2H-2G-2F2E-2D-2C-2B-2A-0-0-0

        ……

14、B2-A2-0-0-0-0-0-00-0-0-0-0-0-0-0

15、A2-0-0-0-0-0-0-00-0-0-0-0-0-0-0

16、0-0-0-0-0-0-0-00-0-0-0-0-0-0-0

这样,就把2个级联的74HC165的并口数据,全部以串口形式传输给了MCU。

三、实验

//定义你的PIN在哪儿

intlatchPin=8;

intdataPin=9;

intclockPin=7;

// 定义变量来保存数据 //移位寄存器//从一个非零数字开始可以帮助//故障排除byteswitchVar1=72;//01001000

void setup(){

//启动串行Serialbegin(9600);

//定义引脚模式pinMode(latchPin,OUTPUT);pinMode(clockPin,OUTPUT);pinMode(dataPin,INPUT);

}

void loop(){

//将其设置为1以收集并行数据digitalWrite(latchPin,1);

//将其设置为1以收集并行数据,等待

  delayMicroseconds(20);//设置为0以串行传输数据 digitalWrite(latchPin,0);

//移位寄存器为串行模式

  //将每个移位寄存器收集到一个字节

  //附在芯片上的寄存器最先出现。

switchVar1=shiftIn(dataPin,clockPin);

//打印结果

//(7, 6, 5等)将被丢弃 //具有高输入的第一个引脚

Serialprintln(switchVar1,BIN);

Serialprintln("-------------------");//因此,所有这些引脚都可以跟上 delay(500);

}

byteshiftIn(intmyDataPin,intmyClockPin){

inti;

inttemp=0;

intpinState;

bytemyDataIn=0;

pinMode(myClockPin,OUTPUT);pinMode(myDataPin,INPUT);  for(i=7;i>=0;i--)

{

digitalWrite(myClockPin,0);

delayMicroseconds(02);

temp=

digitalRead(myDataPin);

if(temp){

pinState=1;

//把比特设置为0

myDataIn=myDataIn|(1<<i);

}

else{

//关掉--只需要调试

pinState=0;

}

//调试打印语句

//串行打印(PopStand);

//串行打印(“”);

digitalWrite(myClockPin,1);

}

//调试打印语句空格

  returnmyDataIn;

}

首先要明白网关是什么,因为“物”本身也能接入网络,只是成本高,网管就是一个网络中转站,把网络数据转换成单片机流行通信的 wif i或 蓝牙 或 24L01 或 315M 或 485 通讯而已。arduino也好,其他单片机正好可以实现这样的功能。将来在硬件足够便宜时就不再需要这样的网关了。

LDR依赖于光电导性,就本项目来说,光电导性可以概括光敏电阻受到光线照射时具有低电阻值,没有受到光线照射时具有高电阻值。
在这两个临界点之间,有很大的空间来感知LDR所受到的实际光照强度。我使用的型号在完全无光的条件下电阻仅为~500千欧,在强烈的中午阳光下为~100欧姆。LDR的特点是其本身的温度会影响环境的温度,这导致光敏电阻不适合用于高精度光测量,但是还是可以用于很多应用程序中。
此外,请注意光敏电阻对光线变化的响应时间为~10ms,这也许会成为您应用中的影响因素。
另一个值得注意的事情是,LDR在较暗的环境下具有很高的电阻值,这种情况下您无法用手握住它们进行准确测量。您自身身体的电阻值相当高,约为2-3 兆欧,如果您用一只手握住一个万用表探头,触摸一根导线,同时与另外一个导线上的探头有皮肤接触,LDR将与您的身体并联连接。如果LDR会从手中滑脱,请使用灵活的钳形夹具。

物联网wifi模块,USBwifi模块开发板
行车记录仪、运动DV、投影仪可用到我司的WIFI模块产品有以下:
联发科(MTK)系列:
USB网卡:
TML1505C-MT7601系列;
瑞昱(Realtek)系列:
USB接口:
TML1510EU-RTL8188EUS系列; TML1511A-RTL8188ETV系列;
TML1515A-RTL8188FTV系列;
SDIO接口:
TML1516A-RTL8189ETV系列;TML1517A-RTL8189FTV系列;
TML1512A-RTL8189ES系列;
WIFI+BT蓝牙:
TML1509A-RTL8723BS系列;TML1509BU-RTL8723BU系列。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13295425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-09
下一篇 2023-07-09

发表评论

登录后才能评论

评论列表(0条)

保存