Mundarija:

Arduino Sensor ma'lumotlarini ishlov berish yordamida MYsql -ga saqlang: 6 qadam
Arduino Sensor ma'lumotlarini ishlov berish yordamida MYsql -ga saqlang: 6 qadam

Video: Arduino Sensor ma'lumotlarini ishlov berish yordamida MYsql -ga saqlang: 6 qadam

Video: Arduino Sensor ma'lumotlarini ishlov berish yordamida MYsql -ga saqlang: 6 qadam
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Noyabr
Anonim
Arduino Sensor ma'lumotlarini ishlov berish yordamida MYsql -ga saqlang
Arduino Sensor ma'lumotlarini ishlov berish yordamida MYsql -ga saqlang

Rostini aytsam, Arduino ma'lumotlarini to'g'ridan -to'g'ri MySQL -da saqlash juda qiyin, shuning uchun Arduino IDE -ga qaram bo'lganimda, Arduino IDE -ga o'xshash, lekin juda ko'p ishlatiladigan va uni java -da kodlash mumkin bo'lgan Processing IDE -ni ishlatardim.

Eslatma: ishlov berish kodini ishlatayotganda Arduino ketma -ket monitorini ishga tushirmang, chunki port ziddiyatlari yuzaga keladi, chunki ikkalasi ham bitta portdan foydalanishlari kerak

Senga kerak:

  1. Arduino Uno/Mega yoki klon
  2. Wamp server
  3. IDE 2.2.1ni qayta ishlash (bundan kattaroq ishlatmang)
  4. Qayta ishlash uchun BezierSQLib-0.2.0 kutubxonasi (Quyidagi havolani yuklab oling)
  5. Sensor (yorug'lik va haroratni o'lchash uchun LDR va LM35 ishlatardim)

1 -qadam: Arduino -ni sozlash

Arduino -ni sozlash
Arduino -ni sozlash

Quyidagi oddiy demo kodni yuboruvchi vazifasini bajaradigan arduino -ga yozing., void setup () {Serial.begin (9600); }

bo'sh halqa ()

{int i = 0, j = 0; i = analogRead (A0); j = analogRead (A1); Serial.print (i); Serial.print (","); Serial.println (i); }

2 -qadam: MySQL -ni sozlash

MySQL -ni sozlash
MySQL -ni sozlash
  1. MySQL uchun Wamp serverini o'rnating va ma'lumotlarni saqlash uchun sozlang
  2. Wamp serverini ishga tushiring
  3. MySQL konsolini oching
  4. ma'lumotlar bazasini tanlang
  5. Keyin ma'lumotlaringiz uchun jadval yarating

jadval ma'lumotlarini yaratish (sno int (4) boshlang'ich kalit auto_increment, LDR int (4), TEMP int (4));

jadval tafsilotlarini ko'rsatish uchun desc your_table_name dan foydalaning

tushirish ma'lumotlari;

Hammasi JB uchun, endi biz qayta ishlashga o'tishimiz mumkin …

3 -qadam: IDE -ni qayta ishlashni sozlash

IDE ishlov berishni sozlash
IDE ishlov berishni sozlash
  1. Processing IDE 2.2.1 -ni yuklab oling va o'rnating
  2. Yuqoridagi ZIP -ni MyDocuments/Processing/Libraries -ga chiqaring
  3. Endi IDE protsessorini oching va kutubxonaning yuqoridagi rasmdagidek to'g'ri yoki to'g'ri o'rnatilmaganligini tekshiring
  4. Keyin quyidagi kodni qayta ishlash uchun nusxa ko'chiring va uni o'zingiz nomlang

/* ARDUINO MYSQL -ga ishlov berish orqali Arduino -dan ketma -ket xabarlarni o'qing va MySQL -da yozing. Muallif: J. V. JohnsonSelva sentyabr 2016 */

import de.bezier.data.sql.*; // MySQL kutubxonasini import qilish

importni qayta ishlash.serial.*; // Serial kutubxonasini import qilish

MySQL msql; // MySQL ob'ektini yarating

Satr a; int end = 10; // 10 raqami lineFeed uchun ASCII (serial.println oxiri), keyinchalik biz buni individual xabarlarni uzish uchun qidiramiz String serial; // "ketma -ket" deb nomlangan yangi qatorni e'lon qiling. String - bu belgilar ketma -ketligi (ma'lumotlar turi "char" deb nomlanadi) Seriyali port; // Seriyali port, bu Serial sinfining yangi namunasi (ob'ekt)

bo'sh o'rnatish () {

String user = "root"; String pass = ""; String ma'lumotlar bazasi = "iot_database"; msql = yangi MySQL (bu, "localhost", ma'lumotlar bazasi, foydalanuvchi, o'tish); port = new Serial (this, Serial.list () [0], 9600); // port va bod tezligini belgilash orqali ob'ektni ishga tushirish (Arduino tezligiga mos kelishi kerak) port.clear (); // Arduino serial = port.readStringUntil (oxiri) dan satr o'rtasida o'qishni boshlagan bo'lsak, birinchi o'qishni tashlaydigan ketma -ket kutubxonadan funktsiya; // funktsiyani ketma -ket portdan printlngacha o'qiydi va keyin string o'zgaruvchisiga ('ketma -ket' deb nomlanadi) string belgilaydi serial = null; // dastlab mag'lubiyat bo'sh bo'ladi (bo'sh)}

bo'sh tortish ()

{while (port.available ()> 0) {// ketma -ket portdan keladigan ma'lumotlar bo'lsa, uni o'qing va saqlang serial = port.readStringUntil (end); } if (serial! = null) {// agar satr bo'sh bo'lmasa, quyidagilarni chop eting // Eslatma: agar bitta o'zgaruvchi yuborilsa, quyida ishlatiladigan ajratish funktsiyasi shart emas. Biroq, Arduino -dagi bir nechta kirishdan // o'qish paytida xabarlarni tahlil qilish (ajratish) uchun foydalidir. Quyida a = split (ketma -ket, ',') Arduino eskizining namunaviy kodi keltirilgan; // qiymatlarni alohida kataklarga saqlaydigan yangi qator ("a" deb nomlanadi) (Arduino dasturida ko'rsatilgan vergul bilan ajratilgan) println (a [0]); // print LDR qiymati println (a [1]); // LM35 qiymat funktsiyasini chop etish (); }}

void funktsiyasi ()

{if (msql.connect ()) {msql.query ("ma'lumotlarni kiritish (LDR, Temp) qiymatlari ("+a [0]+","+a [1]+")"); } boshqa {// ulanish muvaffaqiyatsiz tugadi! } msql.close (); // Ishdan keyin MySQL ulanishi yopilishi kerak}

4 -qadam: Dasturni bajarish

Dasturni bajarish
Dasturni bajarish

Dasturni ishga tushirish tugmachasini bosish orqali ishga tushiring, qalqib chiquvchi oynani yopmang, bajarishni to'xtatadi va MySQL -da saqlangan ma'lumotlarni ko'rish uchun so'rov ostida bo'ladi …

ma'lumotlardan * ni tanlang;

Kiritilgan ma'lumotlar sonini ko'rish uchun quyidagi so'rovdan foydalaning.

ma'lumotlardan hisoblash (*) ni tanlang;

5 -qadam: Xulosa

Qo'llanmani o'qiganingiz uchun sizga rahmat aytmoqchiman. Agar siz buni foydali deb topsangiz va yoqtirishni yoqtirsangiz yoki menga biror narsa so'rasangiz, minnatdor bo'lardim, chunki bu menga ko'rsatmalarni bajarishga turtki beradi. bilishingiz kerak bo'lgan har qanday savolni berishingiz mumkin …

Baxtli kodlash Arduino …

Tavsiya: