# esp8266-阿里云iot-python
**Repository Path**: andyxiaopeng/esp8266-alicloud-iot-python
## Basic Information
- **Project Name**: esp8266-阿里云iot-python
- **Description**: 使用esp8266WiFi模块连接阿里云iot并用python来接收流转数据
是一套物联网的解决方案
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 10
- **Forks**: 1
- **Created**: 2020-10-22
- **Last Updated**: 2024-05-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# esp8266+阿里云iot
> 前期准备:
>
> python3.6
>
> arduino
>
> pycharm
>
> 阿里云(淘宝)账户
>
> esp8266WiFi模块一个(淘宝购买)
>
> hdt11温控模块(淘宝购买)
>
> 红路灯模块(淘宝购买)
>
> 杜邦线(淘宝购买)
>
> 面包板(淘宝购买)
>
>
## 环境搭建
### 1、python3.6
- 在清华镜像站(https://mirror.tuna.tsinghua.edu.cn/help/anaconda/)中下载最新的anaconda
- 参照https://jingyan.baidu.com/article/d8072ac48e5433ec95cefdb4.html安装并正确配置环境
- 
- 并测试conda环境是否配置
- 下载numpy测试(首次下载会比较慢,conda会自动检测numpy的所有依赖包一起下载)

- 测试python
- 
### 2、arduino
- 在https://www.arduino.cn/thread-1066-1-1.html中下载ide

- 下载并安装

- 添加esp8266的开发板管理
- 参考:https://www.arduino.cn/thread-17884-1-1.html (不推荐)
- 
- 或者使用 .\材料.\软件\8266_package_2.7.1(双击打开)

等待插件安装完成后,再次打开arduino软件,点击 工具-开发板 就可以看到ESP8266 Boards 的开发板选项

### 3、组件展示
- esp8266

- hdt11温控模块

- 红路灯模块 & 面包板

- 杜邦线

## 一:配置阿里云iot
### 1、进入https://iot.aliyun.com/ 首页

### 2、进入控制台

### 3、点击立即开通(如果此处出现未实名制验证,则需要先去验证)

### 4、勾选已经阅读,并点击立即开通

### 5、点击管理控制台

### 6、 点击设备管理 – 产品

### 7、创建产品并且为其添加物模型

### 8、可以在物模型功能定义中看到我们刚刚创建的产品的信息和上传、设定的一些接口(不知道是不是免费版本的原因,这个产品的物模型代码不支持完全自定义修改,可以改一部分内容)


9、自定义添加了湿度的属性


### 10、然后我们在这个产品中添加设备,并获取到设备的三元组信息


--------------
## 二:初步体验
### 1、 阿里云设备创建完成图:
- 产品:

- 设备功能:

- 功能定义(需要先 编辑草稿 才可以操作):根据自己的需求和上传的数据类型来设定这里的功能。

### 2、 阿里云iot平台开发的接口;

1. SDK
wifi连接部分:
a) 引入依赖库:

b) 填入wifi账号密码:

2. DHT11感应器部分:
a) 根据esp8266开发板的开发文档得知dht11的扩展接口是5号针脚:

b) 在SDK中设定好dht11模块返回数据的脚位:

3. Mqtt传输部分:
a) 阿里云mqtt开发文档地址:https://www.yuque.com/cloud-dev/iot-tech/mebm5g
b) mqtt报文简介:

c) 链接所需准备的信息(使用阿里云物联网iot配置软件生成信息):
d) 生成mqtt的链接密码:
e) Mqtt反馈错误代码:
```
The value of rc indicates success or not:
0: Connection successful
1: Connection refused - incorrect protocol version
2: Connection refused - invalid client identifier
3: Connection refused - server unavailable
4: Connection refused - bad username or password
5: Connection refused - not authorised
6-255: Currently unused.
```

-----
## 三:运行esp8266
### 1、在arduino 文件-打开 选择打开.\材料\esp8266程序\AliyunSDK_item3\AliyunSDK_item3
- 打开显示界面

- 点击编译

### 2、配置讲解

### 3、配置完成后,插入esp8266烧录后到阿里云iot查看传输数据情况


--------
## 四、阿里云 iot Studio配置
### 1、进入

### 2、 进入iot studio页面后点击WEB可视化开发

### 3、创建web应用

### 4、 输入信息

### 5、web页面可视化编辑

1. 创建模板页面

2. 设计组件

3. 为组件配置数据
1. 获取数据

2. 发送数据

## 五、数据流转
### 1、阿里iot设定流转规则(创建流转订阅)

### 2、消费组设定

### 3、流转信息接受Demo
> 阿里云iot的开发手册提供了现在流行计算机语言的接收Demo
>
> Demo参考地址:https://help.aliyun.com/document_detail/175270.html
>
> AMQP客户端接入说明:https://help.aliyun.com/document_detail/142489.html?spm=a2c4g.11186623.6.623.4ade354eMNlXlz
>
> (以下以python为例)
### 1、python需要stomp.py的第三方库支持
1. 下载stomp.py

### 2、配置说明
1. 对阿里云账号的三组信息配置说明(以①、②、③为编号)

> - ① = AccessKey : 登录阿里云控制台,将光标移至账号头像上,然后单击**accesskeys**,跳转至用户信息管理页,即可获取。
> - ② = accessSecret : 您的阿里云账号的AccessKey Secret。登录阿里云控制台,将光标移至账号头像上,然后单击**accesskeys**,跳转至用户信息管理页,即可获取。
> - ③ = consumerGroupId : 消费组ID。请在控制台上查看您的服务端订阅消费组ID。
2. 个人信息配置(以①、②为编号)

> - ① = iotInstanceId :实例ID。仅您购买的实例需要传入。(我们测试都没有购买,所以只需要默认的空号即可)
>
> - ② = clientId :表示客户端ID,建议使用您的AMQP客户端所在服务器UUID、MAC地址、IP等唯一标识。长度不可超过64个字符。
>
> 控制台服务端订阅中消费组状态页将显示该参数,方便您识别区分不同的客户端。
3. 接入域名配置
1. 需要配置一个变量

2. 打开 .\材料\软件\阿里云物联平台配置_32
1. 软件使用

2. 生成

3. ① = Host :域名地址
1. 把从配置软件中获取到的字符除去端口,只保留地址
2. 例如:

### 3、获取信息
