【esp8266、arduino串口传递浊度、温度数据(json)】
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序列化
- 登录网站:Assistant | ArduinoJson 6
选择自己的开发板
选择序列化
选择输入数据类型
- 点击
输入自己的数据的json格式
- 点击
点击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)】相关推荐
- ESP8266 Arduino 串口监视器输出乱码原因
最近在学习ESP8266 Arduino的时候,发现串口输出乱码,原因是串口波特率不匹配,一般Arduino默认9600波特率,图示如下: 而ESP8266 波特率是115200,也有可能是其他波特率 ...
- matlab仿真浊度传感器,Arduino Turbidity sensor浊度传感器模块
外观 概述 浊度传感器是利用光学原理,通过液体溶液中的透光率和散射率来综合判断浊度情况. 传感器内部是一个红外线对管,当光线穿过一定量的水时,光线的透过量取决于该水的污浊程度,水越污浊,透过的光就越少 ...
- Arduino 浊度传感器 TS300B 的使用
最近在捣鼓一个好玩的东西--全自动鱼缸.从构思到现在各种传感器.控制器的代码.执行器.物联网.鱼缸傻傻的捣鼓的差不多一个月了.这过程中也走了一些弯路,脑阔疼--今天3D打印机趴窝了,脑阔更疼咯--正好 ...
- BlackBerry 10 BlackBerry OS 7 1 手机通过蓝牙串口读取Arduino 蓝牙传过来的温度
目标:BlackBerry手机通过蓝牙串口读取Arduino 蓝牙传过来的温度 湿度信息 硬件:Arduino主板 + DHT11温湿度传感器 + 蓝牙模块,开发工具C语言 手机:BlackBerry ...
- MJKDZ PS2手柄控制OskarBot小车(一):Arduino串口发送数据
MJKDZ PS2手柄控制OskarBot小车(一):Arduino串口发送数据 [目录] - 1.无线通信模块设置 - 1.1 设置参数 - 1.2 调试步骤 - 2.按键与通信格式 - 2.1 P ...
- 电极法测污水常规五参数(PH、电导率、溶解氧、温度、浊度)
检测水质常规五参数的意义: pH:地表水水质中pH值的变化会影响藻类对氧气的摄入能力及动物对食物的摄取敏感度: 电导率:主要是测水的导电性,监测水体中总的离子浓度.包含了各种化学物质.重金属.杂质等等 ...
- Arduino 串口数据接收并打印输出int类型数据
Arduino串口接收并打印输出int类型数据 相关文章 <Arduino读取串口接收到的数据并发送数据> <Arduino 基于Stream类的函数详细说明> <Ard ...
- 【Arduino串口数据保存到excel中常用三种方法】
[Arduino串口数据保存到excel中常用三种方法] 1. 前言 2. 利用excel自带Data Streamer读取 2.1 启用 Data Streamer 加载项 2.2 刷写代码并将微控 ...
- 基于在STM32下完成FreeRTOS的多任务程序开发,多任务串口以及AHT20封装库,原理图,PCB图以及AHT20(实际用到的是LMT70)及采集一次温度数据的模块实战
基于在STM32下完成FreeRTOS的多任务程序开发,多任务串口以及AHT20封装库,原理图,PCB图以及AHT20(实际用到的是LMT70)及采集一次温度数据的模块实战 序 言 1)FreeRTO ...
最新文章
- case when 效率高不高_南京薄蜂窝纸板效率高
- 读后感与机翻《人类因果学习的分解:自下而上的联想学习和自上而下的图式推理》
- Transformers 研究指南
- MapReduce之WordCount案例
- 2018年python工作好找吗-2018年最新数据:python、大数据、人工智能从业者薪资表...
- create-react-app 后需要npm run eject
- 贪吃蛇Python版 源码+代码分析
- 他山之石,小试ovi和app store
- matlab云端软件,关于云端软件上安装matlab
- linux软件安装文档总结
- 2021年中国遗嘱人群画像情况(附子女情况、婚姻状况、学历、年龄、性别及各学历段人数分布)[图]
- 辨识DV、OV、EV三种证书类型
- Ajax的readyState和status
- 查找共家庭组计算机,家庭组多台电脑共享方法
- 2018广告屏蔽软件
- 计量经济学笔记6-Eviews操作-自相关的检验与消除(DW、LM检验与FGLS、广义差分变换)
- 8086的储存器编址
- 阿里云域名使用cloudflare的DNS解析隐藏真实IP
- linux中zlib源码包安装
- HTML5 Canvas制作数独游戏(一)
热门文章
- 室内设计职业技能等级证书助力“十四五”技能人才培养
- linux mysql 卸载命令行,mysql卸载命令_Linux下卸载系统自带的MySQL数据库
- 微博互粉php,PHP+redis实现微博的推模型案例分析
- 我的新浪微博欢迎大家互粉
- Python实现批量图像文字识别并指定部分提取
- Tera CLOUD + Zotero 文献管理
- 计算机应用能力科目怎么选择,专业技术人员计算机应用能力考试科目类别
- ReactNative页面统计分析之Google Analytics集成
- 《图解HTTP》读感
- 01-21 IO流(字符流与字节流)