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

Sistem Pemantauan Sampah dan Kualitas Udara Dalam Ruangan

Komponen dan persediaan

Raspberry Pi 3 Model B
× 1
Arduino UNO
× 1
NodeMCU ESP8266 Breakout Board
× 1
Sensor Suhu &Kelembaban DHT11 (4 pin)
× 1
Seed Grove - Sensor Gas(MQ2)
× 1
Sensor gas CO MQ-7 (generik)
× 1
Sensor Ultrasonik - HC-SR04 (Generik)
× 1
Suplai daya Raspberry Pi
× 1
kabel HDMI
× 1
Kabel USB-A ke B
× 1
Kabel jumper (generik)
× 1
Baterai 5V (generik)
× 1

Aplikasi dan layanan online

IOTA Kusut
Node.js
Raspberry Pi Raspbian
Arduino IDE
MQTT

Tentang proyek ini

1. Pendahuluan

Otomasi bangunan adalah kontrol terpusat otomatis dari pemanas, ventilasi dan pendingin udara gedung, pencahayaan dan sistem lainnya melalui sistem manajemen gedung atau sistem otomatisasi gedung (BAS). Tujuan dari otomatisasi gedung adalah peningkatan kenyamanan penghuni, pengoperasian sistem gedung yang efisien, pengurangan konsumsi energi dan biaya operasi, serta peningkatan siklus hidup utilitas.

IOTA adalah teknologi akuntansi terdistribusi open source, yang tujuannya adalah untuk bertukar informasi dan nilai secara aman di Internet of Things. Salah satu inovasi utama IOTA adalah, alih-alih Blockchain tradisional, ia menggunakan arsitekturnya sendiri (Tangle) berdasarkan konsep matematika yang disebut Directed Acyclic Graph (DAG). Arsitektur ini memungkinkan bahwa tidak ada komisi, bahwa latensi jaringan rendah dan perspektif skalabilitas yang lebih baik. Saat ini IOTA sedang dalam tahap pengembangan dan diharapkan sepanjang tahun 2019, teknologi tersebut sudah siap untuk diadopsi secara besar-besaran.

Spesifikasi untuk Raspberry Pi 3 B termasuk:

  • CPU:Quad-core 64-bit ARM Cortex A53 clock pada 1,2 GHz.
  • GPU:400MHz VideoCore IV multimedia.
  • Memori:1 GB LPDDR2-900 SDRAM (yaitu 900MHz)
  • Port USB:4.
  • Output video:HDMI, video komposit (PAL dan NTSC) melalui jack 3,5 mm.
  • Jaringan:Ethernet 10/100 Mbps dan LAN Nirkabel 802.11n.

Fitur Arduino UNO papan:

  • Mikrokontroler:ATmega328.
  • Tegangan Operasi:5V.
  • Tegangan Masukan (disarankan):7-12V.
  • Tegangan Masukan (batas):6-20V.
  • Pin I/O Digital:14 (di antaranya 6 menyediakan output PWM)
  • Pin Input Analog:6.
  • Arus DC per Pin I/O:40 mA.
  • Arus DC untuk 3.3V Pin:50 mA.

NodeMCU , fitur:

  • Terakhir, modul WiFi yang dapat diprogram.
  • IO perangkat keras seperti Arduino (ditentukan perangkat lunak).
  • Dapat diprogram dengan Arduino IDE.
  • Termasuk USB-TTL, pasang &mainkan.
  • 10 GPIO D0-D10, fungsionalitas PWM, komunikasi IIC dan SPI, 1-Wire dan ADC A0 dll. semuanya dalam satu papan.

Proyek ini dibagi menjadi tiga versi. Untuk pemahaman yang lebih baik tentang proyek ini, kami telah membaginya menjadi beberapa bab berikut:

  • 1. Pendahuluan
  • 2. Instalasi Perangkat Lunak
  • 3. Sistem Pemantauan Kualitas Udara Dalam Ruangan v1
  • 4. Sistem Pemantauan Kualitas Udara Dalam Ruangan v2
  • 5. Sistem Pemantauan Sampah
  • 6. Kesimpulan

2. Instalasi Perangkat Lunak

a) Instal Raspbian di Raspberry PI 3 B

Saya menginstal NOOBS , link download dan petunjuknya ada di:https://www.raspberrypi.org/downloads/

b) Instal Node.JS

$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs

c) Unduh dan bangun perpustakaan BCM2835 di Raspberry Pi. Pustaka ini membantu kami bekerja dengan sensor DHT11.

$ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.56.tar.gz
$ tar zxvf bcm2835-1.56.tar.gz
$ cd bcm2835 -1.56
$ ./configure
$ make
$ sudo make check
$ sudo make install

d) Unduh dan instal proyek iota kualitas udara dalam ruangan di Raspberry Pi

$ cd ~
$ git clone https://github.com/guilengap/indoor-air-quality-and-garbage-monitoring-system.git
$ cd indoor-air -sistem pemantauan-kualitas-dan-sampah
$ npm install

e) Unduh dan instal port serial

$ nmp install serialport 

f) Unduh dan instal Arduino IDE:

https://www.arduino.cc/en/Main/Software

3. Sistem Pemantauan Kualitas Udara Dalam Ruangan v1

Data sensor DHT11 dibaca dan dipublikasikan ke Tangle menggunakan MAM.

Bagaimana cara kerjanya?

a) Proyek iota kualitas udara dalam ruangan memiliki 3 file skrip java:

  • sensor.js :Data sensor DHT11 dibaca dan ditampilkan:suhu dan kelembapan.
  • mam_sensor.js :Data sensor DHT11 dibaca dan dipublikasikan ke IOTA Tangle menggunakan MAM.
  • mam_receive.js :Ekstrak data yang tersimpan dari IOTA Tangle menggunakan MAM dan tampilkan datanya.

b) Titik akhir simpul penuh dan kunci samping keduanya di-hardcode dalam file javascript. Untuk menghentikan skrip agar tidak berjalan, tekan CTRL+Z .

c) Hubungkan ke papan Arduino UNO, sensor DHT11.

d) Jalankan nodesensor.js untuk memeriksa apakah Raspberry Pi dapat membaca data suhu dan kelembaban dari modul sensor DHT11.

$ node sensor.js 

Disini kita bisa melihat data kelembaban dan suhu yang ditangkap oleh sensor DHT11. Jika semuanya baik-baik saja, maka kita lanjutkan ke langkah berikutnya.

e) Jalankan simpul mam_sensor.js . Script ini akan menyimpan data suhu dan kelembaban dari modul sensor DHT11 ke Tangle.

$ node mam_sensor.js 

Kami menguji dengan tiga node dan mendapatkan hasil yang lebih baik dengan:https://potato.iotasalad.org:14265

//const iota =new IOTA({ provider:'https://nodes.testnet.iota.org:443' });
const iota =new IOTA({ provider:'https ://potato.iotasalad.org:14265' });
//const iota =new IOTA({ provider:'https://peanut.iotasalad.org:14265' });

Anda dapat berkonsultasi dengan beberapa node yang tersedia di:https://iotasalad.org/nodes

Kami mengirimkan informasi berikut:

  • Kota:MEKSIKO
  • Gedung:65
  • Tanggal dan Waktu (UTC):TAHUN. BULAN, HARI, JAM. MENIT DAN DETIK
  • Data:Suhu dalam derajat Celcius dan Fahrenheit dan Persentase Kelembaban Relatif

f) Buka terminal lain dan ketik:node mam_receive.js your_root dan data sensor yang disimpan ditampilkan. Misalnya:

$ node mam_receive.js AMBTIKZKEVEEQFCUGIDUOLDOXL9OZQ9GOMNBFYHVRAUCAMHDQQJBSNAMFZYRLTUVAHFDINHTTFKIPELIG 

Kode yang mengelola data yang diterima adalah:

// MENERIMA DATA DARI TANGLE
const executeDataRetrieval =fungsi asinkron(rootVal, keyVal) {
let resp =menunggu Mam.fetch(rootVal, MODE, keyVal, function(data) {
biarkan json =JSON.parse(iota.utils.fromTrytes(data));
console.log(`Kota:${json.city}, Bangunan:${json.building}, Waktu :${json.dateTime} UTC, Data:${json.data}`);
});
}

Uji

Gambar

4. Sistem Pemantauan Kualitas Udara Dalam Ruangan v2

Data sensor DHT11, MQ-2, dan MQ-7 dibaca dan dipublikasikan ke Tangle menggunakan MAM

Bagaimana cara kerjanya?

a) Proyek iota kualitas udara dalam ruangan memiliki 5 file:

  • sensorArduino.ino :Kode ini untuk menangkap data dari tiga sensor:sensor kelembaban dan suhu DHT11, sensor gas LPG MQ-2, dan sensor gas MQ-7 CO.
  • listportsArduino.ino :Ini menunjukkan kepada kita port yang tersedia dari papan Arduino UNO.
  • sensorArduino.js :Data sensor DHT11, MQ-2, dan MQ-7 dibaca dan ditampilkan.
  • mam_sensorArduino.js :Data sensor DHT11, MQ-2, dan MQ-7 dibaca dan dipublikasikan ke Tangle menggunakan MAM.
  • mam_receiveArduino.js :Ekstrak data yang tersimpan dari Tangle menggunakan MAM dan tampilkan datanya.

b) Titik akhir simpul penuh dan kunci samping keduanya di-hardcode dalam file javascript. Untuk menghentikan skrip agar tidak berjalan, tekan CTRL+Z .

c) Hubungkan ke papan Arduino UNO, sensor:DHT11, MQ-2 dan MQ-7.

d) Di folder "sensorArduino", yang ditemukan di proyek iota kualitas udara dalam ruangan, kami memiliki perpustakaan sensor:DHT11, MQ-2 dan MQ7. Kita harus menginstalnya di perpustakaan Arduino.

e) Unggah sketsa sensorArduino.ino , ke papan Arduino UNO dan jalankan. Pilih port komunikasi dengan board Arduino UNO, dalam kasus saya adalah:Tools> Port> / dev / ttyACM0

f) Buka terminal dan jalankan node listportsArduino.js untuk memverifikasi bahwa port kami aktif.

$ node listportsArduino.js 

g) Jalankan node mam_sensorArduino.js . Script ini akan menyimpan data dari board Arduino UNO ke Tangle.

$ node mam_sensorArduino.js 

Kami mengirimkan informasi berikut:

  • Kota:NY
  • Gedung:13
  • Tanggal dan Waktu (UTC):TAHUN. BULAN, HARI, JAM. MENIT DAN DETIK
  • Data:Gas LPG dalam ppm, gas CO dalam ppm, Suhu dalam derajat Celcius, Persentase Kelembaban Relatif,

h) Buka terminal lain dan ketik:node mam_receiveArduino.js your_root dan data sensor yang disimpan ditampilkan. Misalnya:

Kode yang mengelola data yang diterima adalah:

// MENERIMA DATA DARI TANGLE
const executeDataRetrieval =fungsi asinkron(rootVal, keyVal) {
let resp =menunggu Mam.fetch(rootVal, MODE, keyVal, function(data) {
biarkan json =JSON.parse(iota.utils.fromTrytes(data));
console.log(`Kota:${json.city}, Bangunan:${json.building}, Waktu :${json.time} UTC, Data:${json.data}`);
});
executeDataRetrieval(resp.nextRoot, keyVal);
}

Uji

Gambar

5. Sistem Pemantauan Sampah

Kirim data sensor SRF05 menggunakan NodeMCU dan MQTT ke IOTA Tangle menggunakan MAM

Bagaimana cara kerjanya?

a) Proyek ini memiliki 3 file:

  • tempat sampah.ino :Kode ini menghitung jumlah sampah, di dalam tempat sampah dalam %. Kemudian, kirim data ke board Raspberry Pi 3B, menggunakan protokol MQTT.
  • nodemcu_mqtt_mam .js :Data sensor SRF05 dibaca dan dipublikasikan ke Tangle menggunakan MAM.
  • nodemcu_mam_receive.js :Ekstrak data yang tersimpan dari Tangle menggunakan MAM dan tampilkan datanya.

b) Titik akhir simpul penuh dan kunci samping keduanya di-hardcode dalam file javascript. Untuk menghentikan skrip agar tidak berjalan, tekan CTRL+Z .

c) Hubungkan ke NodeMCUboard, sensor ultrasonik SRF05.

d) Instal paket esp8266 menggunakan Boards Manager. Buka jendela preferensi Arduino IDE dan masukkan di bidang URL Manajer Papan Tambahan:http://arduino.esp8266.com/stable/package_esp8266com_index.json

Pilih menu:Tools> Board> Board Manager... Di kolom pencarian, ketik:esp8266 dan instal versi terbaru.

e) Sekarang mari buat NodeMCU berkomunikasi dengan server mosquitto. Pertama mulai dengan menambahkan library PubSubClient ke Arduino IDE. Pustaka ini untuk pesan MQTT dan mendukung NodeMCU.

  • Pilih menu:Sketsa> Sertakan Perpustakaan> Kelola Perpustakaan
  • Telusuri:PubSub
  • Pilih PubSubClient (Nick O'Leary) dan instal versi terbaru

f) Selanjutnya pasang Mosquitto (MQTT) pada RaspberryPi 3B. Protokol MQTT menyediakan metode ringan untuk melakukan pengiriman pesan menggunakan model publish/subscribe. Ini membuatnya cocok untuk pesan Internet of Things seperti dengan sensor daya rendah atau perangkat seluler seperti telepon, komputer tertanam, atau mikrokontroler. Masuk ke Raspberry Pi Anda, buka terminal dan ketik:

$ cd~ 
$ wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
$ apt-key add mosquitto-repo.gpg.key
$ cd /etc/apt/sources.list.d/$ wget http://repo.mosquitto.org/debian/mosquitto-stretch.list

Sekarang instal yang berikut ini:

$ cd~
$ wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u11_armhf .deb
$ sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u11_armhf.deb
$ wget http://ftp.nz.debian.org/debian/pool/main/libw/ libwebsockets/libwebsockets3_1.2.2-1_armhf.deb
$ sudo dpkg -i libwebsockets3_1.2.2-1_armhf.deb

Versi terbaru libss... dapat Anda temukan di sini:http://security.debian.org/debian-security/pool/updates/main/o/openssl/

Instal broker MQTT dan klien nyamuk.

$ sudo apt-get install mosquitto mosquitto-clients 

Jika Anda memiliki masalah dengan instalasi MQTT, Anda dapat mencoba:

$ npm install mqtt --save 

Reboot Raspberry Pi. Buka terminal dan verifikasi versi nyamuk:

$ nyamuk -v 

Anda dapat memulai dan menghentikan server nyamuk:

$ sudo /etc/init.d/mosquitto start
$ sudo /etc/init.d/mosquitto stop

Kami memverifikasi IP Raspberry Pi:

$ ifconfig 

g) Unggah sketsa trashcan.ino , ke papan NodeMCU. Verifikasi data berikutnya:

  • Papan NodeMCU 1.0
  • Port Serial
  • Serial.begin(115200);
  • const char* wifi_ssid ="ARRIS-WXYZ";
  • const char* wifi_password ="XXXXXXXXXXXX";
  • const char* mqtt_server ="192.168.0.12"; // IP RASPBERRY
  • int tempat sampah =25;// SAMPAH SAYA MEMILIKI PANJANG 25 CM

h) Jalankan nodemcu_mqtt_mam.js , skrip ini akan menyimpan data dari papan NodeMCU ke Tangle.

$ nodemcu_mqtt_mam.js 

Kami mengirimkan informasi berikut:

  • Kota:BERLIN
  • Gedung:7
  • Tanggal dan Waktu (UTC):TAHUN. BULAN, HARI, JAM. MENIT DAN DETIK
  • Data:persentase tempat sampah.

i) Buka terminal lain dan ketik:node mam_receiveArduino.js your_root dan data sensor yang disimpan ditampilkan. Misalnya:

Kode yang mengelola data yang diterima adalah:

// MENERIMA DATA FRON THE TANGLE
const executeDataRetrieval =fungsi asinkron(rootVal, keyVal) {
let resp =menunggu Mam.fetch(rootVal, MODE, keyVal, function(data) {
let json =JSON.parse(iota.utils.fromTrytes(data));
console.log(`City:${json.city}, Building:${json.building}, dateTime :${json.dateTime} UTC, Data:${json.data}`);
});
executeDataRetrieval(resp.nextRoot, keyVal);
}

Pada kesempatan ini node yang tersedia berbeda:https://iotasalad.org/nodes

const iota =new IOTA({ provider:'https://durian.iotasalad.org:14265' }); 

Uji

Gambar

6. Kesimpulan

Sistem Pemantauan Kualitas Udara Dalam Ruangan v1:

Proyek ini telah berjalan dengan baik dan kami memantau kualitas udara di dalam suatu gedung, seperti yang dapat kita lihat pada hasil yang diperoleh. Kami mensimulasikan proyek ini di sebuah bangunan yang terletak di Mexico City. Ini adalah pengujian dasar menggunakan sensor Kelembaban dan Suhu DHT11 dan papan Raspberry Pi 3B, kode Java Script, dan protokol IOTA.

Sistem Pemantauan Kualitas Udara Dalam Ruangan v2:

Dalam proyek ini kami telah menggunakan Sensor DHT11, MQ-2 (LPG) dan MQ-7 (CO). Pada kesempatan ini. kami mensimulasikan pengambilan data di gedung yang berlokasi di New York City, dan kami mengirim data ini menggunakan papan Arduino UNO dan Raspberry Pi, ke IOTA Tangle menggunakan Masked Authenticated Messaging (MAM). Ini adalah cara praktis dan cepat untuk menambahkan lebih banyak sensor. Versi ini dapat digunakan di gedung pintar dan industri di mana gas LP digunakan dan di mana karbon monoksida dihasilkan oleh kebakaran.

Sistem Pemantauan Sampah:

Tujuan dari proyek ini adalah untuk mengendalikan timbunan sampah di gedung pintar yang terletak di kota Berlin atau Distrik mana pun. Penumpukan sampah, dapat menghasilkan bau tidak sedap dari produk yang didekomposisi, tetapi sekarang kita dapat mengetahui, berapa lama kapal sampah dengan sampah dan persentase sampah ini.


Kode

  • sensor.js
  • mam_sensor.js
  • mam_receive.js
  • mam_sensorArduino.js
  • mam_receiveArduino.js
sensor.jsJavaScript
Sistem Pemantauan Kualitas Udara Dalam Ruangan v1
Kode untuk menguji sensor DHT11
const sensor =require('node-dht-sensor');const TIMEINTERVAL =10; // SECONDSconst SENSORTYPE =11; // 11=DHT11, 22=DHT22konst GPIOPIN =4; // PIN GPIO RASPBERRY DARI SENSOR DHT11fungsi readSensor(){ sensor.read(SENSORTYPE, GPIOPIN, function(err, temperatur, kelembaban) { if (!err) { console.log('temp:' + temperature.toFixed(1 ) + 'C, ' + 'humidity:' + moisture.toFixed(1) + '%'); } else { console.log(err); } });}readSensor();// OTOMATIS UPDATE SENSOR NILAI SETIAP 10 SECONDSsetInterval(readSensor, TIMEINTERVAL*1000);
mam_sensor.jsJavaScript
Sistem Pemantauan Kualitas Udara Dalam Ruangan v1
Kode ini menyimpan data suhu dan kelembaban dari modul sensor DHT11 ke Tangle
const sensor =require('node-dht-sensor');const Mam =require('./lib/mam.client.js');const IOTA =membutuhkan('iota.lib.js');const momen =membutuhkan('moment');//const iota =new IOTA({ penyedia:'https://nodes.testnet.iota.org:443 ' });const iota =new IOTA({ provider:'https://potato.iotasalad.org:14265' });//const iota =new IOTA({ provider:'https://peanut.iotasalad.org :14265' });const MODE ='dibatasi'; // PUBLIK, SWASTA ATAU TERBATASconst SIDEKEY ='rahasiaku'; // DIGUNAKAN HANYA DALAM MODE TERBATAS, TINGKAT KEAMANAN =3; const INTERVAL WAKTU =30; // SECONDSconst SENSORTYPE =11; // 11=DHT11, 22=DHT22konst GPIOPIN =14; // PIN GPIO RASPBERRY DARI SENSOR DHT11// INITIALIZE MAM STATElet mamState =Mam.init(iota, undefined, SECURITYLEVEL);// CHANNEL MODEif (MODE =='restricted') { const key =iota.utils.toTrytes(SIDEKEY); mamState =Mam.changeMode(mamState, MODE, key);} else { mamState =Mam.changeMode(mamState, MODE);}// PUBLISH TO TANGLEconst publish =async function(packet) { // CREATE MAM PAYLOAD const trytes =sedikit .utils.toTrytes(JSON.stringify(paket)); const pesan =Mam.create(mamState, trytes); // SIMPAN MAMSTATE BARU mamState =message.state; console.log('Akar:', pesan.root); console.log('Alamat:', pesan.alamat); // Lampirkan PAYLOAD menunggu Mam.attach(message.payload, message.address); return message.root;}function readSensor(){ sensor.read(SENSORTYPE, GPIOPIN, async function(err, temperature, moisture) { if (!err) { const city =('MEKSIKO'); const building =('65 '); const dateTime =momen().utc().format('YYYY/MM/DD jj:mm:ss'); const data =`{Suhu:${temperature.toFixed(1)}°C ($ {(temperature.toFixed(1)*1.8)+32}°F), Kelembaban:${humidity.toFixed(1)}%}`; const json ={"data":data, "dateTime":dateTime, " building":building, "city":city}; const root =menunggu publish(json); console.log(`City:${json.city}, Building:${json.building}, Time:${json. dateTime} UTC, Data:${json.data}, root:${root}`); } else { console.log(err); } });}// MULAI ITreadSensor();// AUTOMATICALLY UPDATE SENSOR NILAI SETIAP 30 DETIKsetInterval(readSensor, TIMEINTERVAL*1000);
mam_receive.jsJavaScript
Sistem Pemantauan Kualitas Udara Dalam Ruangan v1
Data sensor yang disimpan ditampilkan.
const Mam =require('./lib/mam.client.js');const IOTA =require('iota.lib.js');//const iota =new IOTA( { penyedia:'https://nodes.testnet.iota.org:443' });const iota =new IOTA({ penyedia:'https://potato.iotasalad.org:14265' });//const iota =new IOTA({ provider:'https://peanut.iotasalad.org:14265' });const MODE ='restricted'; // PUBLIK, SWASTA ATAU TERBATASconst SIDEKEY ='rahasiaku'; // HANYA DIGUNAKAN DALAM MODE TERBATAS root;let key;// PERIKSA ARGUMENTSconst args =process.argv;if(args.length !=3) { console.log('Missing root as argument:node mam_receive.js  '); process.exit();} else if(!iota.valid.isAddress(args[2])){ console.log('Anda telah memasukkan root yang tidak valid:'+ args[2]); process.exit();} else { root =args[2];}// INITIALISE MAM STATElet mamState =Mam.init(iota);// SET CHANNEL MODEif (MODE =='restricted') { key =iota.utils .toTrytes(SIDEKEY); mamState =Mam.changeMode(mamState, MODE, key);} else { mamState =Mam.changeMode(mamState, MODE);}// MENERIMA DATA DARI TANGLEconst executionDataRetrieval =async function(rootVal, keyVal) { let resp =menunggu Mam .fetch(rootVal, MODE, keyVal, function(data) { biarkan json =JSON.parse(iota.utils.fromTrytes(data)); console.log(`City:${json.city}, Building:${json .building}, Waktu:${json.dateTime} UTC, Data:${json.data}`); }); }executeDataRetrieval(root, kunci);
mam_sensorArduino.jsJavaScript
Sistem Pemantauan Kualitas Udara Dalam Ruangan v2
Data sensor DHT11, MQ-2, dan MQ-7 dibaca dan dipublikasikan ke Tangle menggunakan MAM.
const SerialPort =require('serialport');const moment =require('moment');const IOTA =memerlukan ('iota.lib.js');const Mam =require('./lib/mam.client.js');//const iota =new IOTA({ provider:'https://nodes.testnet.iota. org:443' });const iota =new IOTA({ provider:'https://potato.iotasalad.org:14265' });const MODE ='restricted'; // PUBLIC, PRIVATE, RESTRICTEDconst SIDEKEY ='rahasiaku'; // HANYA ASCII CHARACTERSconst SECURITYLEVEL =3; // 1, 2, 3const PORTNAME ='/dev/ttyACM1'; // ENTER VALID PORT const port =new SerialPort(PORTNAME, { baudRate:9600, autoOpen:true});const Readline =SerialPort.parsers.Readline;const parser =port.pipe(new Readline({ pembatas:'\r\ n' }));// INITIALIZE MAM STATElet mamState =Mam.init(iota, undefined, SECURITYLEVEL);// SET CHANNEL MODEif (MODE =='restricted') { const key =iota.utils.toTrytes(SIDEKEY); mamState =Mam.changeMode(mamState, MODE, key);} else { mamState =Mam.changeMode(mamState, MODE);}// PUBLISH TO TANGLEconst publish =async function(packet) { // CREATE MAM PAYLOAD const trytes =sedikit .utils.toTrytes(JSON.stringify(paket)); const pesan =Mam.create(mamState, trytes); // SIMPAN MAMSTATE BARU mamState =message.state; console.log('Akar:', pesan.root); console.log('Alamat:', pesan.alamat); // Lampirkan PAYLOAD menunggu Mam.attach(message.payload, message.address); return message.root;}// SERIAL PORT LIBRARY EVENTSport.on('open', showPortOpen);parser.on('data', readSerialData);port.on('close', showPortClose);port.on('error ', showError);// CALLBACK FUNCTIONSfunction showPortOpen() { console.log('Serial port open. Data rate:' + port.baudRate);}fungsi async readSerialData(data){ let json ={}; const waktu =momen().utc().format('YYYY/MM/DD jj:mm:dd'); const kota =('NY'); bangunan const =('13'); json['waktu'] =waktu; json['kota'] =`${kota}`; json['bangunan'] =`${bangunan}`; json['data'] =`{${data}}`; console.log('json =',json); const root =await publish(json);}function showPortClose() { console.log('Serial port closed.');}function showError(error) { console.log('Serial port error:' + error);}
mam_receiveArduino.jsJavaScript
Indoor Air Quality Monitoring System v2
Extract the stored data from the Tangle using MAM and display the data.
const Mam =require('./lib/mam.client.js');const IOTA =require('iota.lib.js');//const iota =new IOTA({ provider:'https://nodes.testnet.iota.org:443' });const iota =new IOTA({ provider:'https://potato.iotasalad.org:14265' });const MODE ='restricted'; // PUBLIC, PRIVATE OR RESTRICTEDconst SIDEKEY ='mysecret'; // ENTER ONLY ASCII CHARACTERSlet root;let key;// CHECK THE ARGUMENTSconst args =process.argv;if(args.length !=3) { console.log('Missing root as argument:node mam_receive.js '); process.exit();} else if(!iota.valid.isAddress(args[2])){ console.log('You have entered an invalid root:'+ args[2]); process.exit();} else { root =args[2];}// INITIALIZE MAM STATElet mamState =Mam.init(iota);// SET CHANNEL MODEif (MODE =='restricted') { key =iota.utils.toTrytes(SIDEKEY); mamState =Mam.changeMode(mamState, MODE, key);} else { mamState =Mam.changeMode(mamState, MODE);}// RECEIVE DATA FROM THE TANGLEconst executeDataRetrieval =async function(rootVal, keyVal) { let resp =await Mam.fetch(rootVal, MODE, keyVal, function(data) { let json =JSON.parse(iota.utils.fromTrytes(data)); console.log(`City:${json.city}, Building:${json.building}, Time:${json.time} UTC, Data:${json.data}`); }); executeDataRetrieval(resp.nextRoot, keyVal);}executeDataRetrieval(root, key);

Skema

Schematic diagram Schematic diagram Schematic diagram

Proses manufaktur

  1. Pemantau Lingkungan dan Kualitas Udara DIY
  2. Memantau Suhu Kamar dengan Raspberry Pi dan Nagios
  3. Sensor Suhu Python dan Raspberry Pi
  4. Memantau Suhu Kamar dengan Moteino dan Raspberry Pi
  5. Sistem Sensor Gerak Inframerah DIY untuk Raspberry Pi
  6. Log fotosel Raspberry Pi dan sistem peringatan
  7. Sensor Suhu dan Cahaya Raspberry Pi
  8. Suara– dan SMS–Sensor Cahaya yang Diaktifkan Menggunakan Raspberry Pi dan Twilio
  9. Sensor Pi Raspberry dan Kontrol Aktuator
  10. Aeroponik dengan Raspberry Pi dan sensor kelembapan