搜啊搜,终于找到可用的 Arduino 直接访问 mysql 方案, 简单易行,摆脱对于各种 MQTT IOT 平台的依赖。目前暂时先考虑实现, 安全什么的以后完善吧:

测试环境:

1.Arduino UNO + W5100 (有空再测试 ESP8266 ESP32 )

2.Arduino IDE1.8.10

3.Arduino 在线安装库 mysql.h (几天不见,再次在另外一台电脑搭建环境,发现下载的库居然变了,没细看,估计基本思路是对的,可能变量什么的需要改一下,再说再说。。。)

4.mysql-4.1.22-win32-Setup (这个大坑,必须老版本的才行,新的8.0连接不上,估计是arduino 库 的安全设置没搞定,等等党就等大神们)

测试步骤:

-----------------------------------------PC端 操作-----------------------------------------------------

1.本地电脑安装mysql 4.0 。 windows10_x64_pro 实测没问题,也不用改防火墙什么的。

2.MySQL命令行进行配置,估计有图形化的,就几句命令,懒得去找了。 看到如下mysql> 提示符 就成功了第一步

Enter password: *****

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 15 to server version: 4.1.22-community-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

3.创建一个实例

mysql> create database IOT default character set utf8;

4.创建一个表

mysql> CREATE TABLE `DHT22`(`D_time` varchar(20) ,`D_temperature` varchar(20) ) charset=utf8;

5.写点数据进表

mysql> INSERT INTO dht22 VALUES ('2020-09-11','29.25℃');

mysql> INSERT INTO dht22 VALUES ('2020-09-11','29.25℃');

6.查询看看

mysql> select * from iot.dht22;

+------------+---------------+

| D_time | D_temperature |

+------------+---------------+

| 2020-09-11 | 29.25℃ |

| 2020-09-11 | 29.25℃ |

| 2020-09-11 | 29.25℃ |

| 2020-09-11 | 29.25℃ |

| 2020-09-11 | 29.25℃ |

+------------+---------------+

5 rows in set (0.00 sec)

正式开始前可以清除表里的内容(删除表是 DROP TABLE xxx)

delete from dht22;

------------------------------------------------Arduino----------------------------------------------------

上传arduino程序, UNO程序把数据写入, select * from iot.dht22; 会看到越来越多的条目在增加, 以后就可以上传 传感器的读数啦。

附 Arduino 程序:例程简单修改而成, 有些库没有在线安装即可,估计也有用不上的比如sha1.h, 可能原例程里其他语句需要

目前遇到小问题:

℃ arduino存进表里乱码,但从PC存进表里不是乱码。。。

加入 NTPClient.h , 可以从网络获取时间。。。不过串口输出的时间显示和写进mysql 的时间不一样,等调好了再贴程序吧

SQL 函数 now() 直接就可以生成时间戳, 所以NTPClient.h 不用了

#include

#include

#include

#include

#include

byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress server_addr(10,176,29,102);

char user[] = "root";

char password[] = "mysql";

Connector my_conn; // The Connector/Arduino reference

//const char INSERT_DATA[] = "INSERT INTO iot.dht22 VALUES (CURDATE(),'10.11℃')"; // CURDATA()获取的是当前日期 "年-月-日", 2020-09-11 , 只能在sql语句中使用

const char INSERT_DATA[] = "INSERT INTO iot.dht22 VALUES (now(),'10.11℃')"; // now()也可以获取当前的时间,| 2020-09-11 20:12:12, 只能在sql语句中使用

void setup() {

Ethernet.begin(mac_addr);

Serial.begin(115200);

Serial.println("Connecting MySQL4.0...");

if (my_conn.mysql_connect(server_addr, 3306, user, password)) {

delay(1000);

}

else

Serial.println("Connection failed.");

}

void loop() {

my_conn.cmd_query(INSERT_DATA); // success insert to MySQL!!

delay(10000);

}

/*************************************

MySQL8.0 failed

MySQL4.0 OK

Connecting...

Connected to server version 4.1.22-community-nt

**************************************/

arduino如何调用mysql,【 实测可用 】Arduino 直接访问 mysql相关推荐

  1. php访问mysql数据库实验报告,php访问mysql数据库

    //建一个连接,造一个连接对象 $db = new MySQLi("localhost","root","123","mydb&q ...

  2. vb访问mysql容易死机_VB访问MySQL

    最近研究的东西中, 有一部分涉及到用VB访问MySQL数据库, 今天研究了一下小有收获, 共享出来供大家参考首先下载 MySQL 的 ODBC 驱动, 我下载的是 MySQL ODBC 3.51 wi ...

  3. mysql odb驱动_odb C++访问mysql数据库,从安装到写入

    一:ubuntu下odb 安装 get-apt install gcc get-apt install g++ get-apt install odb 生成的odb位于:/usr/odb 生成的库(l ...

  4. spark to mysql date_[Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子:

    [Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子: mydf001=sqlContext.read.format("jdbc").o ...

  5. mysql高可用面试题_MySQL - MySQL面试题

    MySQL面试题 列举几种数据库存储引擎,并说一说InnoDB和MyISAM的区别 存储引擎:MyISAM.InnoDB.HEAP.BOB.ARCHIVE.CSV等. MyISAM是非事务的存储引擎, ...

  6. 云函数连接mysql超时_云函数访问MYSQL数据库出错?

    // 云函数入口文件 const cloud = require('wx-server-sdk') const mysql=require('mysql2/promise') cloud.init() ...

  7. cpp mysql fetch row_Linux下C++访问MySQL

    今天给大家演示在linux下如果用C++操作mysql 1:安装MySQL 挂载光盘: mkdir /cdrom mount /dev/hdc /cdrom cd /cdrom/Server rpm ...

  8. mysql数据库open函数_C#访问Mysql数据库方法,以及库函数

    先说说在C#当中需要准备的工作吧.在这里我分为了四个步骤: 1.网上下载MySql.Data.dll 2.在项目当中添加引用MySql.Data.dll 3.在操作类当中添加: using MySql ...

  9. MySQL高可用和读写分离

    MySQL 高可用和读写分离 文章目录 MySQL 高可用和读写分离 一.从单机到集群 1.1 单机MySQL数据库到几个问题 1.2 单机MySQL到技术演进 二.MySQL的主从复制 2.1 核心 ...

  10. 企业主流MySQL高可用集群

    选型 10款常见MySQL高可用方案选型解读 MYSQL(高可用方案) 目前最流行的是:主从复制.基于Galera的方案 企业主流MySQL高可用集群 了解 MySQL 集群之前,先看看单节点数据库的 ...

最新文章

  1. 初学者怎么学单片机,嵌入式单片机培训机构有用吗?
  2. 小程序在wxml里转数字_2020年利用名片小程序开启数字化营销的方法
  3. 吵翻了!AI 顶会设置媒体静默期,作者不信邪提前宣传被拒稿,加强盲审是促进公平还是阻止了学术交流?...
  4. AJAX的异步请求小例子
  5. 域名反向解析在自建邮件群发服务器中的应用
  6. esxi直通 gen8_HP MicroServer Gen8与ESXI采坑之旅
  7. python sort 多级排序_Python sort和class实现多级排序
  8. hive数据库numeric_hive中常用的函数
  9. SQL Server-聚焦IN VS EXISTS VS JOIN性能分析(十九)
  10. SakaiCLE2.9数据库迁移
  11. python中从键盘输入的代码_python如何从键盘获取输入实例
  12. [代码发布]中文文字转换组件 1.0,支持VB/ASP编程
  13. python读取excel绘图y轴设置_python读取并定位excel数据坐标系详解
  14. 【非长篇大论】X3D - Web3D标准的发展
  15. ic启动器怎么导入模组_icmod模组管理器最新版下载-ICMOD管理器(Inner Core)下载v1.5-阵 安卓版-西西软件下载...
  16. 让惊艳无处不在 Win7桌面便签操作技巧
  17. 【嵌入式模块】ESP8266完整教程
  18. 糖友每天早上坚持去做这4件事情控糖事倍功半。
  19. NIO源码解析-FileChannel
  20. 实现愤怒的小鸟:我们有很多种小鸟(Bird类),每种小鸟都有飞的行为(fly()方法),还有一个弹弓(Slingshot类),弹弓有一个弹射的行为(shot()方法:调用fly()方法)

热门文章

  1. 《精通Unix下C语言与项目实践》读书笔记(16)
  2. qwe qwe qw
  3. HDU-1789-Doing Homework again
  4. centos6.5 安装mysql5.6单实例和多实例(单配置文件)
  5. FTPHelper-FTP帮助类,常用操作方法
  6. 你用什么态度去看待世界,你就会得到什么样的世界
  7. Html2excel 1.4.1 发布,Html 转 Excel 工具包
  8. 旷视砸20亿进军AIoT,发布国内首个机器人协作大脑河图
  9. C#实现微信AES-128-CBC加密数据的解密
  10. 软件工程概论 课后作业1