Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Real-time COVID-19 Case Tracker met Alarm Systeem

Onderdelen en Benodigdheden

Arduino UNO 1
Bolt IoT WiFi Module 1
Adafruit RGB Backlight LCD 16x2 1

Over dit Project

Dit project toont het wereldwijde aantal COVID-19 gevallen op een LCD en activeert een buzzer (op Bolt pin 0) als het aantal gevallen binnen 10 minuten met meer dan 100 (code) / 500 (beschrijving) stijgt. De Bolt WiFi-module haalt data op via Python-script op een PC/cloud (Google Colab).

Let op: De data-bron (worldometers.info) en de Bolt IoT-platform zijn mogelijk verouderd. Het project dient als voorbeeld voor IoT-data-weergave.

Bolt Module Instellen

  1. Account aanmaken op boltiot.com.
  2. Device ID en API Key noteren (Settings → API → Enable).
  3. Python bibliotheek installeren: pip install boltiot (van GitHub).

Python Script (op PC/Colab)

Het script scrapet worldometers.info met BeautifulSoup, stuurt het aantal gevallen via Bolt UART naar Arduino, en checkt iedere ~100 seconden (code) of de toename > 10 is. Bij alarm: Bolt pin 0 HIGH voor 5s (buzzer).

from bs4 import BeautifulSoup as bs
import requests, time
from boltiot import Bolt
import ssl

a = []

def check_increase(x, count):
    a.insert(count, x)
    if count == 1:
        print(a)
        if a[1] - a[0] > 10:  # drempel
            a.clear()
            return 1
        else:
            a.clear()
            return 0

def get_cases():
    html = requests.get("https://www.worldometers.info/coronavirus/")
    soup = bs(html.text, 'html.parser')
    tag = soup.find_all("span")
    # Let op: HTML structuur kan veranderd zijn!
    cases_str = tag[4].contents[0]
    # Verwijder komma's, haal getal
    return int(cases_str.replace(',', ''))

api_key = input("API Key: ")
device_id = input("Device ID: ")
device = Bolt(api_key, device_id)

for i in range(1000):
    print(device.isOnline())
    device.serialBegin(9600)
    x = get_cases()
    z = check_increase(x, 0)
    device.serialWrite(str(x))
    time.sleep(100)
    y = get_cases()
    z = check_increase(y, 1)
    device.serialWrite(str(y))
    if z == 1:
        device.digitalWrite('0', 'HIGH')
        time.sleep(5)
        device.digitalWrite('0', 'LOW')

Arduino Code

Ontvangt data via UART (Bolt TX → Arduino RX, Bolt RX → Arduino TX) en toont op LCD.

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.home();
  Serial.setTimeout(50);
  lcd.print("Total affected:");
}

void loop() {
  String x;
  lcd.setCursor(0, 1);
  if (Serial.available() > 0) {
    x = Serial.readString();
  }
  lcd.print(x);
}

Aansluiting

  • Bolt TX → Arduino RX (pin 0)
  • Bolt RX → Arduino TX (pin 1)
  • LCD: RS=2, E=3, D4=4, D5=5, D6=6, D7=7
  • Buzzer op Bolt GPIO 0 (niet Arduino!)
  • Gemeenschappelijke GND

Schema

Fritzing-afbeelding bijgevoegd (Arduino-LCD + Bolt-Arduino verbinding).

Productieproces

  1. Een robuuste temperatuur- en sensor-API bouwen op Raspberry Pi met de GY-91-module
  2. Een Live IP-camera Instellen op Raspberry Pi met Motion – Stap-voor-Stap Gids
  3. Schroeven en Bouten: Typen, Toepassingen en Optimale Montage
  4. Schroef vs. Bout: Belangrijkste Verschillen, Typen en Toepassingen
  5. Praktische Gids voor Boutokoppen voor Veilige Bevestiging
  6. Bus-sleutels (box wrenches) begrepen: ontwerp, gebruik en voordelen
  7. Machinebouten Uitgelegd: Types, Toepassingen en Installatiehandleiding
  8. Kliksloten Begrepen: Functie, Types en Veiligheidsvoordelen
  9. Java 9 (JDK 9) – Belangrijkste kenmerken & voordelen
  10. Java 9 Multi-Resolution Image API: Responsive Graphics vereenvoudigen
  11. Java Concurrency verbeteren: Belangrijke verbeteringen aan de CompletableFuture API