【发布时间】:2017-11-19 08:43:48
【问题描述】:
我有一个名为“barrel”的导轨模型,它有一个属性“gallons”。我想从 arduino (Boarduino v2.0) 和 Adafruit CC3000 WiFi 模块更新某些桶的“加仑”属性。
我的 rails 应用程序位于计算机的 3000 端口。本地主机:3000/桶
我做了一个桶脚手架,所以它有一个带有更新方法的控制器:
# PUT /barrels/1
# PUT /barrels/1.json
def update
@barrel = Barrel.find(params[:id])
respond_to do |format|
if @barrel.update_attributes(params[:barrel])
format.html { redirect_to @barrel, notice: 'Barrel was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @barrel.errors, status: :unprocessable_entity }
end
end
end
在 arduino 方面,我正在发送一个 HTTP 请求。
Connect to 123.456.7.8:3000 (my IP edited out)
PUT /barrels/1?gallons=49 HTTP/1.0
Connected & Data sent
Closing connection
它说它已经发送成功,但是当我检查桶1的“加仑”属性时,它永远不会改变。我是否以错误的方式格式化 HTTP 请求?
编辑:
我从服务器收到一个错误:
[2013-11-30 14:47:45] ERROR WEBrick::HTTPStatus::LengthRequired
在我实际的 .ino 文件(我从 arduino 示例中获得)中,我注意到我发送了一个空白请求。目前正在调查删除它是否会解决 WEBrick 错误。
// Send request
if (client.connected()) {
client.println(request);
client.println(F(""));
Serial.println("Connected & Data sent");
}
注释掉:client.println(F(""));摆脱了这个错误。但是更新仍然没有发生。
【问题讨论】:
标签: ruby-on-rails arduino wifi