ESP-TCP (2/34) --- ESP-IDF 下基于 JSON 格式进行 TCP 数据交互

Part 1 : 前言

ESP32 是一颗性能优越的 WiFi+BT/BLE 的物联网芯片。主要特性有: 1) 2.4 GHz Wi-Fi 加蓝牙双模芯片; 2) 采用 TSMC 低功耗 40nm 技术; 3)功耗性能和射频性能最佳; 4) 安全可靠,易于扩展至各种应用。
ESP32 集成了双核 160 MHz MCU、两个浮点运算单元 (FPU)、硬件安全加速器、电容触摸传感器、霍尔传感器、ADC、DAC、蓝牙/Wi-Fi 协议栈、TR 滤波器、双工器、功率放大器、接收低噪声放大器、射频 balun 和天线开关。ESP32 的外围器件不超过 10 个,即可实现强大的处理性能、可靠的安全性能,以及 Wi-Fi 和蓝牙功能。ESP32 可作为独立系统运行应用程序或是主机 MCU 的从设备,通过 SPI / SDIO 或 I2C / UART 接口提供 Wi-Fi 和蓝牙功能。ESP32 专为移动设备、可穿戴电子产品和物联网应用而设计。该款芯片拥有业内最高水平的低功耗芯片的所有特征,比如精细分辨时钟门控、省电模式和动态电压调整等。ESP32 集成了更多的元器件,性能稳定,易于制造,工作温度范围达到 -40°C 到 +125°C。ESP32 还集成了先进的自校准电路,实现了动态自动调整,可以消除外部电路的缺陷以及适应外部条件的变化。

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

JSON 具有体积小,跨平台,组织结构自由的天然优势。 标准的 CJSON 库不到 100KB, 相比于其他的交换格式, 如 XML 交换格式,体积则大的多。 JSON 具有跨平台的优势,只要支持 C99 标准的地方都可以支持 CJSON,同时 CJSON 组织内容很自由,根下面可以有任意个 Item ,每个 Item 又可以有任意个 Item, 可自由递归,自由拼接。相比于传统的 Web 端数据交换方式,具有天然优势。

Part 2: 完整代码获取

完整代码见 github: JSON Parsing Demo

$git clone git@github.com:ustccw/ESP-TCP.git

Part 3: ESP32 端配置和运行

3.1 进入 JSONParsingDemo 目录
3.2 导出 IDF 路径,如

$ export IDF_PATH=~/esp/esp-idf

3.3 导出编译器路径,如

$ export PATH=/opt/xtensa-esp32-elf/bin/:$PATH

3.4 make menuconfig
- 配置 WiFi SSID
- 配置 WiFi Password
- 配置 USB 默认串口

3.5 make flash monitor 编译并运行

$make flash monitor

Part 4: TCP Client 端配置和运行

4.1 进入 TCP Client 目录
4.2 编译

$gcc client.c

4.3 运行

$./a.out "192.168.111.108" "{\"sample_para\":{\"value\":\"1\"}}"

Part 5: 结果展示

5.1 ESP32 端

ESP-TCP (2/34) --- ESP-IDF 下基于 JSON 格式进行 TCP 数据交互_第1张图片

5.2 TCP Client 端

ESP-TCP (2/34) --- ESP-IDF 下基于 JSON 格式进行 TCP 数据交互_第2张图片

Part 6: 说明

  • 在开始示例代码前,您需要熟悉 ESP-IDF 的开发环境,如 ESP-IDF 入门指南
  • 需要注意示例中的 README.md

你可能感兴趣的:(ESP-TCP,ESP32,JSON,IDF,ESP,TCP)