# Fatigue sensor
Syrus can communicate with fatigue sensor accessories which help monitor driver's fatigue. Fatigue sensors work as a standalone solution by alerting when a driver is closing his/her eyes, together with Syrus you can get notified whenever one of these fatigue alarms are triggered and view the captured photos associated which each fatigue event.
General Overview
- The way it works is that you instruct the Syrus to use it's RS232 RX & TX cables to work in
fatigue_sensor
mode - Connect one of the compatible fatigue sensors to the Syrus
- Use the apx-serial tool or Syruslang to capture photos
# Installation
For this example we'll connect Caredrive MR688B fatigue sensor to the Syrus.
Serial Wiring Pinout (found in 14-pin molex)
Fatigue Sensor Wires | Signal | Description | Syrus Signal | Syrus Wires |
---|---|---|---|---|
Blue | RX | Fatigue sensor RX (MR688B 232 data receiver), connect to the Syrus orange data transmitter cable. | RS232_TX | Orange | Green | TX | Fatigue sensor TX (MR688B 232 data transmission), connect to the Syrus blue data receiver cable. | RS232_RX | Blue |
Red | PWR | Power for the Fatigue sensor accessory, use the same power source as the Syrus +12-24V DC. | ||
Black | GND | Fatigue sensor's ground, connect to the Syrus 4 electrical ground cable. | GND | Brown |
# Configuration
Once you have the Fatigue Sensor accessory connected to the Syrus you can configure the serial port to fatigue_sensor
mode with the apx-serial tool.
$ sudo apx-serial mode fatigue_sensor
To test the communication with the accessory, you can use the capture command.
$ sudo apx-serial fatigue_sensor capture
a photo is captured and automatically uploaded to the default directory: /data/users/syrus4g/fatigue_sensor
.
Before your first drive it's important to change the default settings, here's some recommended apx commands you can use to program the camera for 'normal' operation.
# Set sensitivity to 2.9 seconds
$ sudo apx-serial fatigue_sensor sensitivity 3
# Set minimum speed to 30kph
$ sudo apx-serial fatigue_sensor min_speed 30
# Set speeding alarm threshold to 135kph
$ sudo apx-serial fatigue_sensor speeding 135
# Set the speaker volume to low
$ sudo apx-serial fatigue_sensor speaker_volume 1
Ensure the changes are saved by turning the fatigue sensor off and back on.
Note that some fatigue sensors include dip switches on the back of the camera that override these settings. Follow the recommended settings in the manual of the fatigue sensor
# FTP configuration
The images that are saved automatically to the default directory can be uploaded via ftp using lftp
An event generated will have a reference to the image:
{
"fatigue_sensor": {
"state": "connected",
"sensitivity": 3,
"speaker_volume": 2,
"min_speed": 10,
"speeding": 50,
"max_photos": 50,
"nbr_photos": 24,
"latest_photo": "1616442180-photo.jpeg"
}
}
On the remote FTP server we recommend creating subdirectories using each device IMEI, followed by a subfolder for images
. Example: ftp://ftp.mysite.com/867698041103030/images
With the above in place you can upload it like this
# upload photo
lftp -u username,password -p 4455 -e 'put /data/users/syrus4g/fatigue_sensor/1616442180-photo.jpeg -o 867698041103030/images/1616442180-photo.jpeg; bye' ftp://ftp.mysite.com
lftp includes a command for mirroring the contents of a source folder with the remote server, make sure to add a -c
option to continue
the file transfer in case there's an interruption.
# reverse mirror contents from source into destination directory
lftp -u username,password -p 4455 -e 'mirror -c --reverse /data/users/syrus4g/fatigue_sensor/ 867698041103030/images/; bye' ftp://ftp.mysite.com
once mirrored you can use the -n
option to upload only newer files
# upload new images only
lftp -u username,password -p 4455 -e 'mirror -n --reverse /data/users/syrus4g/fatigue_sensor/ 867698041103030/images/; bye' ftp://ftp.mysite.com
another useful option is to force ssl, which refuses to send the password in clear when the remote server does not support ssl
# force ssl connection to remote server
lftp -u username,password -p 4455 -e 'set ftp:ssl-force=true put /data/users/syrus4g/fatigue_sensor/1616442180-photo.jpeg 867698041103030/images/1616442180-photo.jpeg; bye' ftp://ftp.mysite.com
# Redis Interaction
Connection Status
To notify the connection status, the serial application publishes
serial/notification/fatigue_s/state connected
when connected, or
serial/notification/fatigue_s/state disconnected
when disconnected.
Fatigue Alarm
To notify a fatigue alarm, the serial application publishes
serial/notification/fatigue_s/photo 1615813683-fatigue_remind.jpeg
serial/notification/fatigue_s/photo 1615813683-fatigue_alarm.jpeg
serial/notification/fatigue_s/photo 1615813683-fatigue_warning.jpeg
Driver Not Detected
To notify when a driver is not detected, the serial application publishes
serial/notification/fatigue_s/photo 1615813683-no_portrait.jpeg
Driver Distracted
To notify when a driver is distracted, the serial application publishes
serial/notification/fatigue_s/photo 1615813683-distraction.jpeg
Manual Photo Captured
To notify when a photo is taken with the captured command, the serial application publishes
serial/notification/fatigue_s/photo 1615813683-photo.jpeg
# Tips
Take note of the amount of space occupied by the photos in the /data/users/syrus4g/fatigue_sensor
folder.
Once your application has received a photo you may want to delete them based on the epoch
$ rm 16158136*
If you lower the buffer size it will delete the oldest photos over the new size limit.
← ECU Monitor iButton →