Sensor ma'lumotlarini arduino dan bazaga qanday yuklay olaman?

Men ko'plab Sensorlarni Arduino UNO ga ulash uchun Libelium qalqoni bilan bog'landim. Sensor ma'lumotlarini (MySQL) ma'lumotlar bazasiga qanday qilib yuklashim mumkinligini aniq bilmasdim. Ma'lumotlar bazasiga ulanish uchun kodim bor, lekin ma'lumotlar bazasiga sensorli ma'lumotni yuklash uchun (Querying) qanday qilib ishlashni aniqlay olmadim.

Bu erda asosiy muammo, arduino ma'lumotlarini ma'lumotlar bazasiga o'rnatish yoki boshqa Xosti yoki Arduino yoki Pushkinga XBee orqali yuborish uchun Sensor ma'lumotlarini qanday tan olishi mumkin.

Ma'lumotlar bazasi ulanishining kodi:

void sendData(){

          Serial.println("Connecting...");
          if (my_conn.mysql_connect(server_addr, 3306, user, password)){
            delay(500);
            Serial.println("Starting SQL!");
            Serial.println(INSERT_SQL);
            my_conn.cmd_query(INSERT_SQL);
            Serial.println("Query Success!");
            my_conn.disconnect();
            Serial.println("\n");
          } 
          else {
            Serial.println("Connection failed!");
          }
}
1
Sizning tashvishlaringiz aralashib ketishi mumkin va sizning vaziyatingizni biroz ruhiy modelingizdan ajratib olishingiz mumkin. Sensorni o'qish elementlari, sensor ma'lumotlarini iste'mol qiluvchi komponent (u bilan bog'liq ishlarni bajaradi, masalan, DB ga tushish) va tarmoq qavatni bo'lishi kerak. Ideal arxitektura (1) Sensorga ulangan Arduino. Atrof muhitni o'lchash va ZigBee (2) orqali ma'lumotlarni o'qib chiqing Arduino yoki ideal, Raspberry Pi ZigBee mash tarmog'idagi xabarlarni tinglaydi. Xabarnomada ma'lumotlarni sanitatsiya qilish va JBga kiritish. Bundan ham yaxshiroq "sanitize ma'lumotlar" va "JBga kiritish"
qo'shib qo'ydi muallif Robert Welain, manba

1 javoblar

Avval MySQL ma'lumotlar bazasida quyidagi jadvalni yaratishingiz kerak:

CREATE TABLE IF NOT EXISTS `table_log` (
  `log_id` int(11) NOT NULL AUTO_INCREMENT,
  `log_date` date NOT NULL,
  `log_time` time NOT NULL,
  `log_t1` float NOT NULL,
  `log_t2` float NOT NULL,
  `log_t3` float NOT NULL,
  `log_t4` float NOT NULL,
  `log_vbatt` float NOT NULL,
  PRIMARY KEY (`log_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1; 

You can execute it in your phpmyadmin page (or create the table manually there). Above we have columns for auto-increment id ('log_id' - necessary), date & time, 4 temperature values and voltage value (modify these according your requirements).

Yangi yozuvni yaratish uchun so'rovdan keyin shunday bo'ladi:

INSERT INTO `table_log` (`log_id`, `log_date`, `log_time`, `log_t1`, `log_t2`, `log_t3`, `log_t4`, `log_vbatt`) VALUES
    (0, '2016-03-04', '01:53:30', 1.0, 2.0, 3.0, 4.0, 3.0);

Ushbu magistralni dinamik (haqiqiy qiymatlar bilan) yaratish va INSERT_SQL o'rniga foydalanish kerak.

1
qo'shib qo'ydi