Spara data för temperatur och luftfuktighet på MySQL med Arduino Uno och Wifly (6 / 7 steg)
Steg 6: Koder för arduino
Om du vill använda den här koden kräver följande bibliotek:
- OneWire librarie
- Wifly librarie
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Tja, jag kommer att kort förklara koden för arduino, använder klienten som ger oss sköld Wifly att skicka data in det digitala stiftet 3 och pin analoga 0, dessa skickas som en meningar till filen "agregar.php" för detta använder vi client.print.
Jag måste komma ihåg att ändra de data som skrivits i fetstil i koden:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#ifndef __CREDENTIALS_H__
#define __CREDENTIALS_H__
char lösenfras [] = "pass_WIFI"; lösenord Wi-Fi
char ssid [] = "name_WIFI"; namn Wi-Fi
#endif
#include
#include "WiFly.h"
int sensorPin = A0;
int sensorValue = 0;
int DS18S20_Pin = 3;
OneWire ds(DS18S20_Pin);
Klienten klienten ("your_server_web", 80);
int loopas = 1;
void setup()
{
Serial.BEGIN (9600);
WiFly.begin();
IF (!. WiFly.join (ssid, lösenfras))
{
Serial.println ("Association misslyckades.");
samtidigt (1)
{
Hänga på misslyckande.
}
}
}
void loop()
{
om (client.connect())
{
sensorValue = analogRead(sensorPin);
float temp = getTemp();
Serial.println (temp);
Serial.println(sensorValue);
client.Print ("GET /add.php?");
client.Print("temp1=");
client.Print (temp);
client.Print ("& &");
client.Print("moi1=");
client.Print (sensorValue);
client.println ("HTTP/1.1");
client.println ("Host: your_server_web");
client.println ("Content-Type: application/x-www-formuläret-urlencoded");
client.println ("anslutning: Stäng");
client.println();
client.println();
client.stop();
}
fördröjning (5000);
}
float getTemp() {
Returnerar temperaturen från en DS18S20 i grader Celsius
byte data [12].
byte addr [8].
om (! ds.search(addr)) {
Inga fler sensorer på kedja, Återställ sökning
DS.reset_search();
återvända-1000;
}
om (OneWire::crc8 (addr, 7)! = addr[7]) {
Serial.println ("CRC är inte giltig!");
återvända-1000;
}
om (addr [0]! = 0x10 & & addr [0]! = 0x28) {
Serial.Print ("enhet identifieras inte");
återvända-1000;
}
DS.Reset();
DS.Select(addr);
DS.write(0x44,1); Starta konvertering, med parasit driver på i slutet
byte närvarande = ds.reset();
DS.Select(addr);
DS.write(0xBE); Läs Scratchpad
för (int jag = 0; jag < 9; i ++) {/ / vi behöver 9 byte
data [i] = ds.read();
}
DS.reset_search();
byte MSB = data [1].
byte LSB = data [0];
flyta tempRead = ((MSB << 8) | LSB); med hjälp av två komplimang
flyta TemperatureSum = tempRead / 16;
återvända TemperatureSum;
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------