【问题标题】:Storing data from arduino in mysql using python on raspberrypi在 raspberrypi 上使用 python 将来自 arduino 的数据存储在 mysql 中
【发布时间】:2014-01-04 15:20:04
【问题描述】:

我已经从这个链接中引用了代码:http://www.daviom.com/tutorial/tutorial-store-arduino-data-with-raspberry-pi-to-mysql/ arduino 代码工作正常,但是 python 代码通过给出以下输出执行,但不将值存储在数据库中,即使 arduino 上的 tx 灯在 python 代码执行时闪烁,但值没有存储在数据库中

请有人帮助我,因为我是 python 新手

在python代码中取消注释打印语句后的输出 #print("收到的值:"+string+" 解释为:项目 Id = "+projectId+" 和 value = "+value) 不显示任何输出 arduino 的值不一致,第二个打印语句

【问题讨论】:

  • 你怎么知道它们没有被存储?在完成脚本的 50 次循环后,您得到的输出似乎是正常的。
  • 我检查了数据库,但没有任何值存储在其中
  • 你检查循环运行了吗? (在循环中取消注释打印以检查程序正在编写的内容)。
  • 我没有注释循环 print(ardString) 语句正在输出来自 arduino 的值,但字符串不一致有时显示为:x-50,有时显示为 x50 第二个打印语句“ print("收到的值:"+string+" 解释为:project Id = "+projectId+" 和 value = "+value)" 没有显示任何输出我已按照您所说的取消注释 print 语句后附上输出的屏幕截图。
  • 检查 all 打印:确保输入if len(valueMatrix)> 1,这是在数据库中插入数据所必需的。如果ardString 正是您报告的内容,那么它将不符合if,因为valueMatrix 将等于1。另一个问题:x50 中的x 来自哪里?在 arduino 代码上,您应该有 Serial.println("xyz123 " + tempAsString);。这应该在 ardString 中返回类似“xyz123 50”的内容。你写的正是这个吗?你注意到 123 后面的空格了吗?

标签: python mysql python-2.7 arduino raspberry-pi


【解决方案1】:

你的 arduino 代码

Serial.println("xyz123 " + tempAsString);

发送

"xyz123 value"     ("value" is any float value)

到您的 rasbperry,此字符串存储在 ardString
如果你写的不是上面的:

Serial.println("xyz123" + tempAsString);

然后

ardString  ->  "xyz123value"

valueMatrix = ardString.split(' ')  -> ["xyz123value"]

因此,len(valueMatrix) 等于 1,因此不会在数据库中写入任何内容。


相对于您在更正 arduino 代码时在打印中遇到的下一个错误,将打印语句修改为(将 string 更改为 ardString):

print("value received:" + ardString + " interpreted as: project Id = " + projectId + " and value = " + value)

【讨论】:

  • 谢谢兄弟,最后我只需要从代码中删除外键就可以了,无论如何感谢您的所有指导,它帮助我们了解了代码的作用
猜你喜欢
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多