Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Penghitung Mobil menggunakan Arduino + Pemrosesan + PHP

Komponen dan persediaan

Arduino UNO
× 1
Sensor Gerak PIR (generik)
× 2
LED (generik)
× 1
Kabel jumper (generik)
× 1

Aplikasi dan layanan online

Arduino IDE
Samsung ARTIK Cloud untuk IoT
Memproses
PHP

Tentang proyek ini

Pendahuluan

Proyek ini menunjukkan bagaimana Anda dapat menggunakan Arduino untuk menghitung jumlah mobil yang keluar masuk mall menggunakan dua sensor, mengirim data ke cloud menggunakan Processing &PHP, dan kemudian melihat jumlah slot yang tersedia di tempat parkir. Anda tidak memerlukan pelindung Ethernet atau Wifi untuk proyek ini!

Cara kerjanya

Sensor harus ditempatkan di titik masuk dan keluar tempat parkir agar ini berfungsi sebagaimana dimaksud. Pada dasarnya, Anda menambah hitungan setiap kali mobil masuk dan berkurang saat keluar. LED dalam sistem hanya menunjukkan bahwa kendaraan dihitung dengan benar karena akan menyala setiap kali mobil melewati sensor.

Memproses

Memproses adalah alat pengembangan/bahasa sumber terbuka untuk menulis program di komputer lain. Berguna ketika Anda ingin komputer lain itu "berbicara" dengan Arduino, misalnya untuk menampilkan atau menyimpan beberapa data yang dikumpulkan oleh Arduino.

Untuk proyek ini, kami menggunakan Pemrosesan untuk menerima data (jumlah mobil) dikirim oleh Arduino melalui port serial. Unduh dan instal Processing IDE ke komputer Anda. Anda dapat melihat di sketsa Processing terlampir, baris kode yang sangat sederhana dan lurus ke depan. Di sini, kita memanggil file PHP menggunakan metode loadStrings() .

PHP

File PHP post-message.php adalah file yang sama dalam tutorial yang ditemukan di sini. Kami mengunduh seluruh file zip dari halaman Github dan mengedit beberapa baris kode di file asli sehingga kami dapat menggunakannya tanpa harus masuk ke akun Samsung kami. Agar ini berfungsi, Anda harus mengikuti petunjuk di sini tentang mengubah port server WAMP atau XAMP Anda dan menginstal sertifikat CA untuk ARTIK Cloud. Atau, Anda dapat menggunakan server jarak jauh atau yang dihosting dengan sertifikat SSL yang diinstal.

Salin file ke folder, katakanlah, acdemo sehingga dapat diakses menggunakan URL http://localhost:8000/acdemo/post-message.php atau https://www.yourwebsite.com/acdemo/post-message.php

Hanya ada dua file di PHP SDK yang perlu Anda edit:ArtikCloudProxy.php dan post-message.php . Anda dapat melihat ID klien &perangkat Anda di sini.

Di post-message.php file, Anda perlu mendapatkan token akses dan ID perangkat Anda. Cara termudah untuk mendapatkan token adalah dengan mengikuti langkah-langkah di sini. Perhatikan bahwa satu-satunya data yang kami kirimkan ke cloud adalah jumlah mobil yang masuk dan keluar mall. Kami membuat perangkat di Artik Cloud dan menamakannya Car Counter dengan bidang yang disebut hitung yang menyimpan nilai ini.

Sekarang semuanya sudah diatur, saatnya untuk memulai! Ikuti langkah-langkah sederhana di bawah ini:

Artik Cloud

  • 1. Masuk ke akun Artik Cloud Anda dan buka Aplikasi> Aplikasi Baru
  • 2. Masukkan detail yang diperlukan untuk aplikasi Anda di layar berikutnya.
  • 3. Setelah Anda selesai membuat aplikasi Anda, if akan ditampilkan di dasbor Anda. Klik nama aplikasi dan cari Show Client ID &Secret . Anda memerlukan kode-kode ini untuk file PHP.
  • 4. Dari menu samping, pilih aplikasi Anda dan klik Izin . Tambahkan Konter Mobil dari daftar jenis perangkat dan centang Baca &Tulis izin.

Pengkodean

  • 1. Unggah sketsa ke Arduino UNO Anda. Jika ini pertama kalinya Anda menggunakan Arduino, ikuti langkah-langkah berikut untuk memahami cara melakukan prosedur ini.
  • 2. Jalankan Pemrosesan sketsa di Processing IDE. Pastikan server WAMP Anda aktif saat ini jika Anda menggunakan komputer lokal alih-alih server yang dihosting.
  • 3. Jika Anda telah berhasil menghubungkan bagian-bagian untuk sistem ini berdasarkan diagram koneksi di atas, lewati sensor PIR untuk melihat apakah berfungsi.
  • 4. Login ke akun Artik Cloud Anda untuk melihat apakah data terkirim dengan benar.

Pemecahan masalah

  • 1. Buka tautan di bawah untuk melihat apakah data terkirim dengan benar ke Artik Cloud. Jika tidak ada yang salah, ini akan menampilkan file Json. Jika Anda tidak melihat file Json, Anda mungkin belum menginstal sertifikat SSL seperti yang dijelaskan di atas. Coba kembali dan pastikan untuk mengikuti petunjuk dengan benar.

http://localhost:8000/acdemo/post-message.php?count=10

Apa yang harus dilakukan selanjutnya

Berdasarkan data jumlah mobil di atas, Anda dapat membuat aplikasi untuk mal sehingga pembeli dapat melihat jumlah slot yang tersedia di tempat parkir sebelum pergi ke mal. Anda juga dapat menambahkan indikator lampu lain yang menyala saat parkir penuh atau tidak.

Kode

  • Kode Arduino
  • Memproses Sketsa
  • post-message.php
  • ArtikCloudProxy.php
Kode ArduinoArduino
Ini adalah kode yang menampilkan hitungan mobil ke serial dan menyalakan LED untuk menunjukkan bahwa mobil melewati sensor PIR.
int pirPinIN =7;int pirPinOUT =10;int led =13;static long counter =0;pengaturan batal(){ pinMode(pirPinIN, INPUT); pinMode(pirPinOUT, INPUT); pinMode (dipimpin, OUTPUT); digitalWrite (dipimpin, RENDAH); Serial.begin(9600);} void loop(){ lama sekarang =milis(); if (digitalRead(pirPinIN) ==HIGH) { counter++; Serial.println(penghitung); digitalWrite (dipimpin, TINGGI); penundaan (500); digitalWrite (dipimpin, RENDAH); } if (digitalRead(pirPinOUT) ==HIGH) { counter--; Serial.println(penghitung); digitalWrite (dipimpin, TINGGI); penundaan (500); digitalWrite (dipimpin, RENDAH); }}
Memproses SketsaJava
Sketsa Pemrosesan ini membaca nilai yang masuk pada port analog dan kemudian menggunakan fungsi Komunikasi Serial untuk mengeluarkan nilai.
import processing.serial.*;Serial myPort; // Buat objek dari Serial classString val; // Data diterima dari serial portvoid setup(){ // Saya tahu bahwa port pertama dalam daftar serial di mac saya // adalah Serial.list()[0]. // Pada mesin Windows, ini biasanya membuka COM1. // Buka port apa pun yang Anda gunakan. String portName =Serial.list()[0]; //ubah 0 menjadi 1 atau 2 dst. agar sesuai dengan port Anda myPort =new Serial(this, portName, 9600);}void draw(){ if ( myPort.available()> 0) { // If data is tersedia, val =myPort.readStringUntil('\n'); // baca dan simpan di val int count =parseInt(val); if(hitung>=0){ loadStrings("http://localhost:8000/acdemo/post-message.php?count="+val); } } println(val); //cetak di konsol}
post-message.phpPHP
Kode ini MENDAPATKAN nilai yang diteruskan oleh sketsa Pemrosesan dan POST hitungan ke cloud.
setAccessToken("YOUR_ACCESS_TOKEN");$data ='{"count":'.$count.'}';$payload =array("data"=>$data,"sdid" =>"YOUR_DEVICE_ID","type"=>"message");$payload =json_encode($payload, JSON_HEX_QUOT | JSON_HEX_TAG);$response =$proxy->sendMessage($payload);header('Content-Type:application /json');echo json_encode($response);
ArtikCloudProxy.phpPHP
Ini adalah kelas ArtikCloudProxy yang diperlukan untuk menghubungkan ke Artik cloud. Simpan ke folder yang sama dengan post-message.php di suatu tempat yang dapat diakses web. Lakukan perubahan yang diperlukan pada konfigurasi.
&count="; const API_MESSAGES_POST ="/pesan"; # Anggota publik $token =null; publik $pengguna =null; fungsi publik __construct(){ } /** * Mengatur token akses dan mencari informasi profil pengguna */ fungsi publik setAccessToken($someToken){ $this->token =$someToken; $this->user =$this->getUsersSelf(); } /** * Panggilan API GET */ fungsi publik getCall($url){ $ch =curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPGET, benar); curl_setopt($ch, CURLOPT_RETURNTRANSFER, benar); curl_setopt($ch, CURLOPT_HEADER, salah); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json', 'Authorization:bearer '.$this->token)); $json =curl_exec($ch); $status =curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if($status ==200){ $respons =json_decode($json); } else{ var_dump($json); $tanggapan =$json; } kembalikan $respons; } /** * Panggilan API POST */ fungsi publik postCall($url, $payload){ $ch =curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, benar); curl_setopt($ch, CURLOPT_POSTFIELDS, (String) $payload); curl_setopt($ch, CURLOPT_RETURNTRANSFER, benar); curl_setopt($ch, CURLOPT_HEADER, salah); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json', 'Authorization:bearer '.$this->token)); $json =curl_exec($ch); $status =curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if($status ==200){ $respons =json_decode($json); } else{ var_dump($json); $tanggapan =$json; } kembalikan $respons; } /** * GET /users/self API */ fungsi publik getUsersSelf(){ return $this->getCall(ArtikCloudProxy::API_URL . ArtikCloudProxy::API_USERS_SELF); } /** * POST /message API */ public function sendMessage($payload){ return $this->postCall(ArtikCloudProxy::API_URL . ArtikCloudProxy::API_MESSAGES_POST, $payload); } /** * GET /historical/normalized/messages/last API */ fungsi publik getMessagesLast($deviceCommaSeparatedList, $countByDevice){ $apiPath =ArtikCloudProxy::API_MESSAGES_LAST; $apiPath =str_replace("", $deviceCommaSeparatedList, $apiPath); $apiPath =str_replace("", $countByDevice, $apiPath); return $this->getCall(ArtikCloudProxy::API_URL.$apiPath); }}

Skema

Diagram untuk menghubungkan 2 sensor PIR dan LED

Proses manufaktur

  1. Peredupan Lampu dengan PWM menggunakan Tombol Tekan
  2. Mesin ULTRASONIC LEVITATION Menggunakan ARDUINO
  3. IOT - Smart Jar Menggunakan ESP8266, Arduino dan Sensor Ultrasonik
  4. Iron Man
  5. Temukan Saya
  6. Cara Mengukur Massa Bumi Menggunakan Arduino
  7. Kontrol Humidifier Arduino
  8. Sonar menggunakan arduino dan ditampilkan pada pemrosesan IDE
  9. Ide Hari Valentine - Penghitung Hari yang Dihabiskan Bersama (Foto)
  10. Cara Membuat Kompas menggunakan Arduino dan Mengolah IDE