Skip to content

Instantly share code, notes, and snippets.

View gantrim's full-sized avatar

Greg Antrim gantrim

View GitHub Profile
// This #include statement was automatically added by the Particle IDE.
#include <Adafruit_DHT_Particle.h>
#define DHTTYPE DHT22
#define DHTPIN D4
DHT dht(DHTPIN, DHTTYPE);
double serverTempMax = 85;
double serverHumidityMax = 60;
@gantrim
gantrim / fullCode.ino
Created March 26, 2019 22:21
Server Room Temperature Monitor - Full Code
#include <PietteTech_DHT.h>
#define DHTTYPE DHT22
#define DHTPIN D4
PietteTech_DHT DHT(DHTPIN, DHTTYPE);
double serverTempMax = 81;
double serverHumidityMax = 60;
@gantrim
gantrim / events.ino
Created March 26, 2019 22:07
Server Room Temp Monitor - Particle Events
int result = DHT.acquireAndWait(2000);
serverTemp = DHT.getFahrenheit();
serverHumidity = DHT.getHumidity();
if(serverTemp>=serverTempMax && !overheatDetected){
Particle.publish("server_temp", "overheat");
overheatDetected = true;
}
else if(serverTemp<serverTempMax && overheatDetected){
@gantrim
gantrim / variables.ino
Created March 26, 2019 21:54
Server Room Temp Monitor - Variables
Particle.variable("serverTemp", &serverTemp, DOUBLE);
Particle.variable("serverHumidity", &serverHumidity, DOUBLE);
@gantrim
gantrim / declarations.ino
Created March 26, 2019 21:39
Server Room Temp Monitor - Declarations
#define DHTTYPE DHT22
#define DHTPIN D4
PietteTech_DHT DHT(DHTPIN, DHTTYPE);
double serverTempMax = 81;
double serverHumidityMax = 60;
double serverTemp;
double serverHumidity;
bool overheatDetected = false;
@gantrim
gantrim / index.js
Created March 6, 2019 16:57
Arduino Request Router Routes
const express = require('express');
const router = express.Router();
const rp = require('request-promise');
/* GET home page. */
router.get('/', function (req, res, next) {
res.render('index');
});
// Forward request directly to arduino on local network
@gantrim
gantrim / lockedUserRule.bolt
Created February 3, 2019 19:31
Firebase Part 6 - Locker User Rule
get(/databases/$(database)/documents/users/$(request.auth.uid)).data.locked == false
@gantrim
gantrim / blurImage.ts
Created February 3, 2019 19:22
Firebase Part 6 - Blur Image
function blurImage(object, userDocRef) {
const filePath = object.name;
const bucket = gcs.bucket(object.bucket);
const fileName = filePath.split('/').pop();
const tempLocalFile = `/tmp/${fileName}`;
// Download file from bucket.
return bucket.file(filePath)
.download({
destination: tempLocalFile
@gantrim
gantrim / moderateUserProfileImage.ts
Created February 3, 2019 19:18
Firebase Part 6 - Moderate User Profile Image
module.exports.moderateUserProfileImage = function(object) {
const userId = object.name.split('/')[1];
const userDocRef = admin.firestore().collection('users').doc(userId);
return userDocRef.get()
.then(doc => {
const user = doc.data();
// The image has already been moderated.
if (user.locked === true) {
console.log('already moderated!');
@gantrim
gantrim / saveAndDeleteReview.ts
Created February 3, 2019 18:57
Firebase Part 6 - Save and Delete User Reviews
saveReview(review) {
this.reviewsRef.doc(review.id.update({
...review
}));
}
deleteReview(id) {
this.reviewsRef.doc(id).delete();
}