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

Ventilasi Paru COVID-19 Sumber Terbuka

Komponen dan persediaan

Arduino UNO
Untuk Versi Dengan Arduino
× 1
Arduino 4 Relay Shield
Untuk Versi Dengan Arduino
× 1
Servo Digital MG995
Untuk semua versi
× 1
modul LM2596S
Untuk semua versi
× 2
potensiometer multi-putaran linier 10k
Untuk semua versi
× 1
Catu Daya 60W PCIe 12V 5A yang cermat
Untuk semua versi
× 1
LED 5 mm:Merah
Untuk semua versi
× 1
LED 5 mm:Hijau
× 1
LCD alfanumerik, 20 x 4
Untuk semua versi
× 1
tombol sakelar 220v
Untuk semua versi
× 1
snorke full face
× 1
Katup Solenoid, 2 Arah
× 1

Alat dan mesin yang diperlukan

Printer 3D (generik)
A8
300-001 - Lightbox, Paparan UV

Aplikasi dan layanan online

Arduino IDE
Keanggunan PCB
Autodesk Fusion 360

Tentang proyek ini

Ventilator non-invasif open source Murah dan mudah dibuat, respirator darurat untuk memerangi krisis kesehatan Covid19 jika tidak ada ventilator yang tersedia dan selama pasien tidak dibius atau diintubasi.

Proyek ini adalah hasil dari tantangan yang diluncurkan oleh mantan guru dan teman saya Serafim Pires yang menghubungi saya untuk menunjukkan proyek Spanyol, mengatakan bahwa akan lebih baik jika saya dapat mengembangkan proyek untuk membantu memerangi krisis dunia ini.

Setelah beberapa penelitian dan studi tentang topik Ventilasi non-invasif saya membangun prototipe fungsional ini berdasarkan 2 teknologi yang ada,

Semua pengujian berhasil dan dengan pengujian fungsional selama lebih dari 20 hari tanpa masalah atau gangguan.

Ventilasi non-invasif diberikan menggunakan masker hidung, yang mendorong sejumlah udara bertekanan ke dalam paru-paru. Ini mendukung proses pernapasan alami ketika penyakit telah menyebabkan gagal paru-paru, memungkinkan tubuh melawan infeksi dan menjadi lebih baik.

Berdasarkan penelitian yang dilakukan di Italia, saya menggunakan teknologi ini Dalam proyek saya yang mengubah masker snorkel Decathlon menjadi ventilator darurat untuk pasien yang menderita COVID-19, untuk membantu mengurangi kekurangan ventilator selama puncak pandemi virus corona.

Masker ini telah diadaptasi dan digunakan di berbagai lokasi di seluruh dunia karena biayanya yang rendah dan adaptasi yang mudah.

Hasilnya terbukti dan, baru-baru ini, teknologi ini juga digunakan di sini, di Portugal, di Rumah Sakit Santarém.

https://www.prosaude.org.br/noticias/hospital-regional-de-santarem-utiliza-mascaras-de-mergulho-no-tratamento-da-covid-19/?fbclid=IwAR36UVLXCztk0zSSJwTCBQ1lgb5iYmY1Ha_tqw P>

Berita di surat kabar di portugal.

Wawancara di radio lokal menjadi viral di jejaring sosial di Portugal.

.

Tes operasi pertama menggunakan volume kecil udara dan menggunakan 15 siklus pernapasan mengubah frekuensi pernapasan dan mengintip untuk demonstrasi.


PERINGATAN:Prototipe ini belum divalidasi oleh badan resmi mana pun dan saya menolak semua tanggung jawab untuk penggunaannya.

Selain itu, peralatan ini akan digunakan sebagai upaya terakhir dan oleh tenaga medis terlatih, peralatan ini dimaksudkan untuk menyelamatkan nyawa dalam situasi puncak yang ekstrem.

Proyek nirlaba dapat direplikasi secara massal, jika disetujui oleh otoritas yang berwenang di Portugal.

Kode

  • INOVT_COVID19_Version_2.2.ino
  • INOVT_COVID19_Version_2.2.rar
INOVT_COVID19_Version_2.2.inoArduino
/* Program pulmonary ventilator INOVT COVID-19 Versi 2.2 * Autor:David Pascoal * Peralatan telah diuji dan terbukti, keamanan dengan sensor tekanan, * Output alarm untuk menyalakan Buzer atau kumbang.*/#termasuk  #termasuk #termasuk LiquidCrystal_I2C lcd (0x27,20,4); #menentukan PIN_SERVO 6 #menentukan PIN_FREQ A1 #menentukan PIN_PEEP A0 #menentukan PIN_LED 2 #menentukan PIN_LED2 3 #menentukan PIN_Alarm_Relay 8 #menentukan PIN_Safety_Valve 9#menentukan SENSOR_FLOW A3#menentukan MAX_LEFINERANDOIN_ANGLE 92 =0;int valInspira =0;int valExpira =0;int valPeep =0; int aux; intx =500; int y =1000;lama tidak ditandatangani;Servo myServo;int frecuencia_ant;int valPeep_ant;int estado;void logo(){ byte a3[8]={ B00011, B00111, B01100, B11000, B10000, B00000, B00000 };byte a2 [8]={B00000, B00000, B00000, B00000, B10001, B11111, B01110};byte a1[8]={B11000, B01100, B00110, B00011, B00001, B00000, B00000};byte a4[9]={ B000000 , B00000, B00000, B00001, B00011, B00110, B01100, B11000 };byte a5[9]={ B00000, B01110, B11111, B10001, B00000, B00000, B00000, B01110, B00000,};byte a6[8]={ B00000, B00000, B00000, B10000, B11000, B01100, B00110, B00011};byte a7[10]={ B00000, B01110, B11111, B10001, B00000, B00000, B00000, B00000, };byte a8[8]={B00100 , B01110, B00100, B00000, B10001, B11111, B01110}; lcd.print("*COVID19*"); lcd.setCursor(0,1); lcd.print("..INOVT.."); lcd.createChar(0,a1); lcd.createChar(1,a2); lcd.createChar(2,a3); lcd.createChar(7,a8); lcd.createChar(3,a4); lcd.createChar(4,a5); lcd.createChar(5,a6); lcd.createChar(6,a7); lcd.setCursor(10,0); lcd.write(byte(3)); lcd.write(byte(4)); lcd.write(byte(5)); lcd.write(byte(3)); lcd.write(byte(6)); lcd.write(byte(5)); lcd.setCursor(10,1); lcd.tulis(byte(0)); lcd.write(byte(1)); lcd.write(byte(2)); lcd.tulis(byte(0)); lcd.write(byte(7)); lcd.write(byte(2)); }void initior() { byte c11[8] ={B00000,B00000,B11111,B11111,B11111,B11111,B00000,B00000};lcd.createChar(3, c11);lcd.setCursor(0, 2); lcd.tulis(3); delay(x);lcd.setCursor(1, 2); lcd.tulis(3); penundaan (x); digitalWrite(PIN_LED,HIGH);lcd.setCursor(2, 2); lcd.tulis(3); delay(x);lcd.setCursor(3, 2); lcd.tulis(3); penundaan (x); digitalWrite(PIN_LED2,HIGH);lcd.setCursor(4, 2); lcd.tulis(3); delay(x);lcd.setCursor(5, 2); lcd.tulis(3); penundaan (x); digitalWrite(PIN_LED,RENDAH);lcd.setCursor(6, 2); lcd.tulis(3); delay(x);lcd.setCursor(7, 2);lcd.write(3); penundaan (x); digitalWrite(PIN_LED2,LOW);lcd.setCursor(8, 2); lcd.tulis(3); penundaan (x); digitalWrite(PIN_LED,TINGGI); digitalWrite(PIN_LED2,HIGH);lcd.setCursor(9, 2); lcd.tulis(3); penundaan (x); myServo.write(100); digitalWrite(PIN_LED,RENDAH); digitalWrite(PIN_LED2,LOW);lcd.setCursor(10, 2); lcd.tulis(3); penundaan (x); digitalWrite(PIN_LED,TINGGI); digitalWrite(PIN_LED2,HIGH);lcd.setCursor(11, 2);lcd.write(3); penundaan (x); myServo.write(110); digitalWrite(PIN_LED,RENDAH); digitalWrite(PIN_LED2,LOW);lcd.setCursor(12, 2); lcd.tulis(3); penundaan (x); digitalWrite(PIN_LED,TINGGI); digitalWrite(PIN_LED2,TINGGI); lcd.setCursor(13, 2); lcd.tulis(3); penundaan (x); myServo.write(115); digitalWrite(PIN_LED,RENDAH); digitalWrite(PIN_LED2,LOW);lcd.setCursor(14, 2); lcd.tulis(3); penundaan (x); digitalWrite(PIN_LED,TINGGI); digitalWrite(PIN_LED2,HIGH);lcd.setCursor(15, 2); lcd.tulis(3); penundaan (x); myServo.write(120); digitalWrite(PIN_LED,RENDAH); digitalWrite(PIN_LED2,RENDAH); lcd.setCursor(16, 2); lcd.tulis(3); penundaan (x); digitalWrite(PIN_LED,TINGGI); digitalWrite(PIN_LED2,TINGGI); lcd.setCursor(17, 2); lcd.tulis(3); delay(x);myServo.write(130); digitalWrite(PIN_LED,RENDAH); digitalWrite(PIN_LED2,LOW);lcd.setCursor(18, 2); lcd.tulis(3); penundaan (x); lcd.setCursor(19, 2); lcd.tulis(3); delay(x);}void maobc() { thumbdownA(); penundaan (x); lcd.clear(); jempolan(); penundaan (x); jempol ke bawahA(); penundaan (x); lcd.clear(); jempolan(); penundaan (x); jempol ke bawahA(); penundaan (x); lcd.clear(); jempolan(); penundaan (x); jempol ke bawahA(); penundaan (x); lcd.clear(); jempolan(); penundaan (1000); lcd.clear();} void thumbdownA() { byte thumb1[8] ={B00001,B00010,B00011,B00100,B00011,B00100,B00011,B00100}; byte thumb2[8] ={B00011,B00000,B00000,B00000,B00000,B00000,B00000,B00000}; byte thumb3[8] ={B11110,B00001,B00000,B00000,B00000,B00000,B00000,B00000}; byte thumb4[8] ={B00000,B11110,B01000,B10001,B10010,B10010,B01100,B000000}; byte thumb5[8] ={B00000,B10000,B01110,B00010,B00010,B00010,B00010,B00010}; byte thumb6[8] ={B00110,B01000,B10000,B00000,B00000,B00000,B00000,B00000}; lcd.createChar(6, ibu jari1); lcd.createChar(1, ibu jari2); lcd.createChar(2, jempol3); lcd.createChar(3, jempol4); lcd.createChar(4, ibu jari5); lcd.createChar(5, ibu jari6); lcd.setCursor(7,0); lcd.tulis(6); lcd.setCursor(7,1); lcd.tulis(1); lcd.setCursor(8,0); lcd.tulis(2); lcd.setCursor(8,1); lcd.tulis(3); lcd.setCursor(9,0); lcd.tulis(4); lcd.setCursor(9,1); lcd.write(5);}void thumbsup() { byte thumb1[8] ={B00100,B00011,B00100,B00011,B00100,B00011,B00010,B00001}; byte thumb2[8] ={B00000,B00000,B00000,B00000,B00000,B00000,B00000,B00011}; byte thumb3[8] ={B00000,B00000,B00000,B00000,B00000,B00000,B00001,B11110}; byte thumb4[8] ={B00000,B01100,B10010,B10010,B10001,B01000,B11110,B00000}; byte thumb5[8] ={B00010,B00010,B00010,B00010,B00010,B01110,B10000,B000000}; byte thumb6[8] ={B00000,B00000,B00000,B00000,B00000,B10000,B01000,B00110}; lcd.createChar(6, ibu jari1); lcd.createChar(1, ibu jari2); lcd.createChar(2, jempol3); lcd.createChar(3, jempol4); lcd.createChar(4, ibu jari5); lcd.createChar(5, thumb6); lcd.setCursor(7,1); lcd.tulis(6); lcd.setCursor(7,0); lcd.tulis(1); lcd.setCursor(8,1); lcd.tulis(2); lcd.setCursor(8,0); lcd.tulis(3); lcd.setCursor(9,1); lcd.tulis(4); lcd.setCursor(9,0); lcd.write(5);}void setServo(){ if ( milis()> time ) { if ( estado ==EXPIRANDO ) { // Pasar inspirandO digitalWrite(PIN_LED2,LOW); digitalWrite(PIN_LED,TINGGI); myServo.write(MIN_ANGLE); waktu =milis() + (valInspira * 100); estado =INSPIRANDO; lcd.setCursor(8, 2); lcd.print("EXPIRANDO> "); } else if ( estado ==INSPIRANDO ) { // P0asar a expirando digitalWrite(PIN_LED2,HIGH); digitalWrite(PIN_LED,RENDAH); myServo.write(MAX_ANGLE - valPeep); waktu =milis() + (valExpira * 100); estado =EXPIRANDO; lcd.setCursor(8, 2); lcd.print("INSPIRANDO <"); } }}pengaturan batal() { myServo.attach(PIN_SERVO); myServo.write(92); //digitalWrite(PIN_LED,RENDAH); pinMode(PIN_FREQ,INPUT_PULLUP); pinMode(PIN_PEEP,INPUT_PULLUP); pinMode(SENSOR_FLOW,INPUT); pinMode(PIN_LED,OUTPUT); pinMode(PIN_LED2,OUTPUT); pinMode(PIN_Alarm_Relay,OUTPUT); pinMode(PIN_Safety_Valve,OUTPUT); lcd.init(); lcd.lampu latar(); lcd.clear(); lcd.setCursor(0,0); logo(); lcd.setCursor(4,2); lcd.print("OPEN-SOURCE"); lcd.setCursor(0,3); lcd.print("Ventilasi Paru"); penundaan (4000); lcd.clear(); lcd.print("...Inisialisasi...."); inisiator(); penundaan (500); lcd.clear(); maobc(); lcd.clear(); if(digitalRead(SENSOR_FLOW) ==RENDAH) { thumbsup(); lcd.setCursor(0,0); lcd.print("SISTEM"); lcd.setCursor(2,1); lcd.print("Oke"); penundaan(5000); lcd.clear(); } else { myServo.write(139); jempol ke bawahA(); lcd.setCursor(0,0); lcd.print("SISTEM"); lcd.setCursor(1,1); lcd.print("GAGAL"); penundaan(5000); lcd.clear(); Serial.begin(9600); waktu =mili(); frecuencia_ant=-1; valPeep_ant=-1; } penundaan (500); estado=EXPIRANDO; }void loop() {digitalRead(SENSOR_FLOW); aux =analogRead(PIN_FREQ); frecuencia =peta(aux,0,1023, 10, 60); valInspira =((1.0 / frecuencia )* 600.0 ) * (1.0/3.0); valExpira =((1.0 / frecuencia ) * 600.0 ) * (2.0/3.0); aux =analogRead(PIN_PEEP); valPeep =peta(aux,0,1023, 0, 10); if ( (frecuencia_ant !=frecuencia) || (valPeep_ant !=valPeep)) { //Pode monitorizar os valores de Frequencia e PEEP sem display usando o Monitor seri lakukan Arduino IDE. Serial.print("Frekuensi:"); Serial.println(frekuensi); Serial.print("Inspirasi :"); Serial.println(valInspira); Serial.print("Kedaluwarsa:"); Serial.println(valExpira); Serial.print("Intip:"); Serial.println(valPeep); lcd.setCursor(1, 0); lcd.print("FREKUENSI:"); lcd.setCursor(13, 0); lcd.print(frekuensi); lcd.setCursor(1, 1); lcd.print("Mengintip:"); lcd.setCursor(13, 1); lcd.print(valPeep); // tunda(500); lcd.setCursor(0, 2); lcd.print("ESTADO:"); lcd.setCursor(0, 3); lcd.print("VENTILADOR D.PASCOAL"); frecuencia_ant =frecuencia; valPeep_ant =valPeep; } if(digitalRead(SENSOR_FLOW) ==TINGGI) { myServo.write(139); digitalWrite(PIN_Alarm_Relay,TINGGI); digitalWrite(PIN_Safety_Valve,TINGGI); lcd.clear(); jempol ke bawahA(); lcd.setCursor(0,0); lcd.print("SISTEM"); lcd.setCursor(1,1); lcd.print("GAGAL"); lcd.setCursor(1,2); lcd.print("******************"); lcd.setCursor(3,3); lcd.print("Periksa aliran AR"); lcd.setCursor(12,1); lcd.print("ALARM"); digitalWrite(PIN_LED,TINGGI); digitalWrite(PIN_LED2,TINGGI); penundaan (500); lcd.setCursor(12,1); lcd.print(""); penundaan (500); lcd.setCursor(12,1); lcd.print("ALARM"); digitalWrite(PIN_LED,RENDAH); digitalWrite(PIN_LED2,RENDAH); penundaan (1000); lcd.clear(); } else { digitalWrite(PIN_Alarm_Relay,RENDAH); digitalWrite(PIN_Safety_Valve,RENDAH); setServo(); delay(10);}}
INOVT_COVID19_Version_2.2.rarC/C++
Tidak ada pratinjau (hanya unduhan).

Suku cadang dan penutup khusus

Mereka harus dicetak pada printer 3D.
Membutuhkan beberapa Presisi. Petunjuk langkah demi langkah lengkap untuk mengganti masker selam dan mengubahnya menjadi masker pernapasan bertekanan Memerlukan ketelitian.
Printer 3d resolusi tinggi inovt_covid19_version_2_0_david_pascoal_0mbFUa0ce1.rar

Skema

Diagram versi otonom,
tidak membutuhkan kolom udara rumah sakit. Versi 2.2 .
Dengan penjaga keamanan dan output alarm. Versi 2.2 .
Dengan penjaga keamanan dan output alarm.

Proses manufaktur

  1. Papan referensi sumber terbuka menargetkan penyebaran ventilator medis yang cepat
  2. Arduino Spybot
  3. FlickMote
  4. TV Buatan Sendiri B-Gone
  5. Jam Master
  6. Temukan Saya
  7. Arduino Power
  8. Tech-TicTacToe
  9. Arduino Quadruped
  10. Arduino Joystick