esp8266、arduino串口传递浊度、温度数据(json)

使用设备

  • Arduino uno

  • esp8266

    Arduino

代码部分

Arduino

/**************led灯**********************/
#define led_Pin  13 //数据引脚13
unsigned long oldtime=0;  //无阻塞
/***************DS18S20********************/
#define DS18S20_Pin  3//数据引脚3
/***************浊度仪********************/
int sensor_in = A0;
/**************数据发送********************/
#include <SoftwareSerial.h>
SoftwareSerial uart1(12,13);//RX=12,TX=13
#include <ArduinoJson.h>
StaticJsonDocument<48> doc;
/*
typedef struct Data
{char name[10];float temperature;float  turbidity;
}Data;
*//***************主要功能函数声明*************/
float getTemp(); //温度
float getTurbidutyA();  //浊度void setup() {pinMode(led_Pin,OUTPUT);Serial.begin(115200);while (!Serial);uart1.begin(9600);//初始化jsondoc["name"] = "sensor";doc["temperature"] = -1000;doc["turbidity"] = -1000;Serial.println("init OK");delay(1000);}void loop() {if(millis() - oldtime >3000){//发送json数据doc["temperature"] = getTemp();doc["turbidity"]= getTurbidutyA();String TxBuffer="";serializeJson(doc, TxBuffer);uart1.println(TxBuffer);Serial.println("");Serial.print("温度:");Serial.print(doc["temperature"].as<float>());Serial.println("°c");Serial.print("浊度:");Serial.print(doc["turbidity"].as<float>());Serial.println("TU");oldtime=millis();//更新时间点}
}

ArduinoJson序列化

  1. 登录网站:Assistant | ArduinoJson 6

  • 选择自己的开发板

  • 选择序列化

  • 选择输入数据类型

  1. 点击

输入自己的数据的json格式

  1. 点击

点击copy复制代码

参照这个代码,写自己代码

ArduinoJson反列化

void GetData()
{delay(500);RxBuffer=uart1.readStringUntil('\r');uart1.read();//清除/r/nuart1.read();//清除/r/nRepStr(&RxBuffer);  //替换前几位容易错乱的字符Serial.println(RxBuffer);DeserializationError error = deserializeJson(doc, RxBuffer);if (error) {Serial.print(F("deserializeJson() failed: "));Serial.println(error.f_str());return;}const char* name = doc["name"]; // "sensor"float temperature = doc["temperature"]; // 26.12float turbidity = doc["turbidity"]; // 1200.12Serial.print("温度:");Serial.print(doc["temperature"].as<float>());Serial.println("°c");Serial.print("浊度:");Serial.print(doc["turbidity"].as<float>());Serial.println("TU");
}void RepStr(String *RxBuffer)
{String RepStr = "{\"name\":\"";//{"name":"sensor","temperature":24.5,"turbidity":2720.375}//{"name":sensor","temperature":26.75,"turbidity":2336.397}int index= (*RxBuffer).indexOf("sensor");   //后期可替换成设备名(*RxBuffer) = (*RxBuffer).substring(index);(*RxBuffer) = RepStr+(*RxBuffer);
}

一样的操作,改一下第一步

参考链接:

  • Arduino Json串口 | explorerの博客 (ccsu.top)

  • https://arduinojson.org/v6/error/call-of-overloaded-println-is-ambiguous/

  • Arduino - Home

  • https://arduinojson.org/v6/assistant/

【esp8266、arduino串口传递浊度、温度数据(json)】相关推荐

  1. ESP8266 Arduino 串口监视器输出乱码原因

    最近在学习ESP8266 Arduino的时候,发现串口输出乱码,原因是串口波特率不匹配,一般Arduino默认9600波特率,图示如下: 而ESP8266 波特率是115200,也有可能是其他波特率 ...

  2. matlab仿真浊度传感器,Arduino Turbidity sensor浊度传感器模块

    外观 概述 浊度传感器是利用光学原理,通过液体溶液中的透光率和散射率来综合判断浊度情况. 传感器内部是一个红外线对管,当光线穿过一定量的水时,光线的透过量取决于该水的污浊程度,水越污浊,透过的光就越少 ...

  3. Arduino 浊度传感器 TS300B 的使用

    最近在捣鼓一个好玩的东西--全自动鱼缸.从构思到现在各种传感器.控制器的代码.执行器.物联网.鱼缸傻傻的捣鼓的差不多一个月了.这过程中也走了一些弯路,脑阔疼--今天3D打印机趴窝了,脑阔更疼咯--正好 ...

  4. BlackBerry 10 BlackBerry OS 7 1 手机通过蓝牙串口读取Arduino 蓝牙传过来的温度

    目标:BlackBerry手机通过蓝牙串口读取Arduino 蓝牙传过来的温度 湿度信息 硬件:Arduino主板 + DHT11温湿度传感器 + 蓝牙模块,开发工具C语言 手机:BlackBerry ...

  5. MJKDZ PS2手柄控制OskarBot小车(一):Arduino串口发送数据

    MJKDZ PS2手柄控制OskarBot小车(一):Arduino串口发送数据 [目录] - 1.无线通信模块设置 - 1.1 设置参数 - 1.2 调试步骤 - 2.按键与通信格式 - 2.1 P ...

  6. 电极法测污水常规五参数(PH、电导率、溶解氧、温度、浊度)

    检测水质常规五参数的意义: pH:地表水水质中pH值的变化会影响藻类对氧气的摄入能力及动物对食物的摄取敏感度: 电导率:主要是测水的导电性,监测水体中总的离子浓度.包含了各种化学物质.重金属.杂质等等 ...

  7. Arduino 串口数据接收并打印输出int类型数据

    Arduino串口接收并打印输出int类型数据 相关文章 <Arduino读取串口接收到的数据并发送数据> <Arduino 基于Stream类的函数详细说明> <Ard ...

  8. 【Arduino串口数据保存到excel中常用三种方法】

    [Arduino串口数据保存到excel中常用三种方法] 1. 前言 2. 利用excel自带Data Streamer读取 2.1 启用 Data Streamer 加载项 2.2 刷写代码并将微控 ...

  9. 基于在STM32下完成FreeRTOS的多任务程序开发,多任务串口以及AHT20封装库,原理图,PCB图以及AHT20(实际用到的是LMT70)及采集一次温度数据的模块实战

    基于在STM32下完成FreeRTOS的多任务程序开发,多任务串口以及AHT20封装库,原理图,PCB图以及AHT20(实际用到的是LMT70)及采集一次温度数据的模块实战 序 言 1)FreeRTO ...

最新文章

  1. case when 效率高不高_南京薄蜂窝纸板效率高
  2. 读后感与机翻《人类因果学习的分解:自下而上的联想学习和自上而下的图式推理》
  3. Transformers 研究指南
  4. MapReduce之WordCount案例
  5. 2018年python工作好找吗-2018年最新数据:python、大数据、人工智能从业者薪资表...
  6. create-react-app 后需要npm run eject
  7. 贪吃蛇Python版 源码+代码分析
  8. 他山之石,小试ovi和app store
  9. matlab云端软件,关于云端软件上安装matlab
  10. linux软件安装文档总结
  11. 2021年中国遗嘱人群画像情况(附子女情况、婚姻状况、学历、年龄、性别及各学历段人数分布)[图]
  12. 辨识DV、OV、EV三种证书类型
  13. Ajax的readyState和status
  14. 查找共家庭组计算机,家庭组多台电脑共享方法
  15. 2018广告屏蔽软件
  16. 计量经济学笔记6-Eviews操作-自相关的检验与消除(DW、LM检验与FGLS、广义差分变换)
  17. 8086的储存器编址
  18. 阿里云域名使用cloudflare的DNS解析隐藏真实IP
  19. linux中zlib源码包安装
  20. HTML5 Canvas制作数独游戏(一)

热门文章

  1. 室内设计职业技能等级证书助力“十四五”技能人才培养
  2. linux mysql 卸载命令行,mysql卸载命令_Linux下卸载系统自带的MySQL数据库
  3. 微博互粉php,PHP+redis实现微博的推模型案例分析
  4. 我的新浪微博欢迎大家互粉
  5. Python实现批量图像文字识别并指定部分提取
  6. Tera CLOUD + Zotero 文献管理
  7. 计算机应用能力科目怎么选择,专业技术人员计算机应用能力考试科目类别
  8. ReactNative页面统计分析之Google Analytics集成
  9. 《图解HTTP》读感
  10. 01-21 IO流(字符流与字节流)