Merge pull request #551 from cyberman54/master

sync sds011 to master
This commit is contained in:
Verkehrsrot 2020-02-10 09:29:57 +01:00 committed by GitHub
commit 6e66d6a296
7 changed files with 80 additions and 28 deletions

View File

@ -3,7 +3,7 @@
Tutorial (in german language): https://www.heise.de/select/make/2019/1/1551099236518668
**#36C3 attendees: i am on site (27th - 30th)! You might contact me via twitter @RecumbentTravel**
<img src="img/Paxcounter-title.jpg">
<img src="img/Paxcounter-ttgo.jpg">
@ -39,7 +39,7 @@ This can all be done with a single small and cheap ESP32 board for less than $20
- WeMos: LoLin32 + [LoraNode32 shield](https://github.com/hallard/LoLin32-Lora),
LoLin32lite + [LoraNode32-Lite shield](https://github.com/hallard/LoLin32-Lite-Lora)
- Adafruit ESP32 Feather + LoRa Wing + OLED Wing, #IoT Octopus32 (Octopus + ESP32 Feather)
- M5Stack: [Basic Core*](https://m5stack.com/collections/m5-core/products/basic-core-iot-development-kit) + [Lora Module RA-01H](https://m5stack.com/collections/m5-module/products/lora-module-868mhz)
- M5Stack: [Basic Core IoT*](https://m5stack.com/collections/m5-core/products/basic-core-iot-development-kit) + [Lora Module RA-01H](https://m5stack.com/collections/m5-module/products/lora-module-868mhz), [Fire IoT*](https://m5stack.com/collections/m5-core/products/fire-iot-development-kit)
*) supports microSD-card

View File

@ -31,7 +31,8 @@ halfile = generic.h
;halfile = octopus32.h
;halfile = tinypico.h
;halfile = tinypicomatrix.h
;halfile = m5stack.h
;halfile = m5core.h
;halfile = m5fire.h
[platformio]
; upload firmware to board with usb cable
@ -44,7 +45,7 @@ description = Paxcounter is a device for metering passenger flows in realtime. I
[common]
; for release_version use max. 10 chars total, use any decimal format like "a.b.c"
release_version = 1.9.89
release_version = 1.9.90
; DEBUG LEVEL: For production run set to 0, otherwise device will leak RAM while running!
; 0=None, 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Verbose
debug_level = 3
@ -56,10 +57,9 @@ platform_espressif32 = espressif32@1.11.1
monitor_speed = 115200
upload_speed = 115200
lib_deps_lora =
;MCCI LoRaWAN LMIC library@>=3.1.0 ; MCCI LMIC by Terrill Moore
https://github.com/mcci-catena/arduino-lmic.git#98a1b35
MCCI LoRaWAN LMIC library@>=3.1.0 ; MCCI LMIC by Terrill Moore
lib_deps_display =
ss_oled@3.3.0 ; simple and small OLED lib by Larry Bank
ss_oled@>=3.3.0 ; simple and small OLED lib by Larry Bank
BitBang_I2C@>=1.3.0
QRCode@>=0.0.1
lib_deps_matrix_display =

View File

@ -68,21 +68,11 @@ void init_display(bool verbose) {
ESP_LOGV(TAG, "[%0.3f] i2c mutex lock failed", millis() / 1000.0);
else {
// is we have display RST line we toggle it to re-initialize display
#ifdef MY_OLED_RST
pinMode(MY_OLED_RST, OUTPUT);
digitalWrite(MY_OLED_RST, 0); // initialization of SSD1306 chip is executed
delay(1); // keep RES low for at least 3us according to SSD1306 datasheet
digitalWrite(MY_OLED_RST, 1); // normal operation
#endif
// init display
#ifndef DISPLAY_FLIP
oledInit(OLED_128x64, false, false, -1, -1,
MY_OLED_RST == NOT_A_PIN ? -1 : MY_OLED_RST, 400000L);
oledInit(OLED_128x64, false, false, -1, -1, MY_OLED_RST, 400000L);
#else
oledInit(OLED_128x64, true, false, -1, -1,
MY_OLED_RST == NOT_A_PIN ? -1 : MY_OLED_RST, 400000L);
oledInit(OLED_128x64, true, false, -1, -1, MY_OLED_RST, 400000L);
#endif
// set display buffer

View File

@ -1,11 +1,11 @@
// clang-format off
// upload_speed 921600
// board M5Stack-Core-ESP32
// board m5stack-core-esp32
// EXPERIMENTAL VERSION - NOT TESTED ON M5 HARDWARE YET
#ifndef _M5STACK_H
#define _M5STACK_H
#ifndef _M5CORE_H
#define _M5CORE_H
#include <stdint.h>
@ -57,6 +57,6 @@
#define MY_OLED_RST GPIO_NUM_33
#define MY_OLED_BL GPIO_NUM_32
#define MY_OLED_MOSI GPIO_NUM_23
#define MY_OLED_MISO GPIO_NUM_23
#define MY_OLED_MISO GPIO_NUM_19
#endif

64
src/hal/m5fire.h Normal file
View File

@ -0,0 +1,64 @@
// clang-format off
// upload_speed 921600
// board m5stack-fire
// EXPERIMENTAL VERSION - NOT TESTED ON M5 HARDWARE YET
#ifndef _M5FIRE_H
#define _M5FIRE_H
#include <stdint.h>
// #define HAS_LORA 1 // comment out if device shall not send data via LoRa or has no M5 RA01 LoRa module
// Pins for LORA chip SPI interface, reset line and interrupt lines
#define LORA_SCK SCK
#define LORA_CS SS
#define LORA_MISO MISO
#define LORA_MOSI MOSI
#define LORA_RST GPIO_NUM_36
#define LORA_IRQ GPIO_NUM_26
#define LORA_IO1 GPIO_NUM_34 // must be externally wired on PCB!
#define LORA_IO2 LMIC_UNUSED_PIN
// enable only if you want to store a local paxcount table on the device
#define HAS_SDCARD 1 // this board has an SD-card-reader/writer
// Pins for SD-card
#define SDCARD_CS GPIO_NUM_4
#define SDCARD_MOSI MOSI
#define SDCARD_MISO MISO
#define SDCARD_SCLK SCK
// user defined sensors
//#define HAS_SENSORS 1 // comment out if device has user defined sensors
#define CFG_sx1276_radio 1 // select LoRa chip
#define BOARD_HAS_PSRAM // use if board has external PSRAM
#define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature
//#define HAS_DISPLAY 1
#define HAS_TFT 1
//#define DISPLAY_FLIP 1 // use if display is rotated
//#define BAT_MEASURE_ADC ADC1_GPIO35_CHANNEL // battery probe GPIO pin -> ADC1_CHANNEL_7
//#define BAT_VOLTAGE_DIVIDER 2 // voltage divider 100k/100k on board
#define HAS_LED NOT_A_PIN // no on board LED (?)
#define HAS_RGB_LED SmartLed rgb_led(LED_SK6812, 10, GPIO_NUM_15) // LED_SK6812 RGB LED on GPIO15
#define HAS_BUTTON (39) // on board button A
// GPS settings
#define HAS_GPS 0 // use on board GPS
#define GPS_SERIAL 9600, SERIAL_8N1, RXD2, TXD2 // UBlox NEO 6M RX, TX
// #define GPS_INT GPIO_NUM_35 // 30ns accurary timepulse, to be external wired on pcb: shorten R12!
// Pins for interface of LC Display
#define MY_OLED_CS GPIO_NUM_14
#define MY_OLED_DC GPIO_NUM_27
#define MY_OLED_CLK GPIO_NUM_18
#define MY_OLED_RST GPIO_NUM_33
#define MY_OLED_BL GPIO_NUM_32
#define MY_OLED_MOSI GPIO_NUM_23
#define MY_OLED_MISO GPIO_NUM_19
#endif

View File

@ -46,11 +46,9 @@ void start_ota_update() {
#ifdef HAS_DISPLAY
#ifndef DISPLAY_FLIP
oledInit(OLED_128x64, false, false, -1, -1,
MY_OLED_RST == NOT_A_PIN ? -1 : MY_OLED_RST, 400000L);
oledInit(OLED_128x64, false, false, -1, -1, MY_OLED_RST, 400000L);
#else
oledInit(OLED_128x64, true, false, -1, -1,
MY_OLED_RST == NOT_A_PIN ? -1 : MY_OLED_RST, 400000L);
oledInit(OLED_128x64, true, false, -1, -1, MY_OLED_RST, 400000L);
#endif
// set display buffer

View File

@ -77,7 +77,7 @@
#define TIME_SYNC_INTERVAL_RETRY 10 // retry time sync after lost sync each .. minutes [default = 10], 0 means off
#define TIME_SYNC_COMPILEDATE 0 // set to 1 to use compile date to initialize RTC after power outage [default = 0]
#define TIME_SYNC_LORAWAN 0 // set to 1 to use LORA network as time source, 0 means off [default = 0]
#define TIME_SYNC_LORASERVER 1 // set to 1 to use LORA timeserver as time source, 0 means off [default = 0]
#define TIME_SYNC_LORASERVER 0 // set to 1 to use LORA timeserver as time source, 0 means off [default = 0]
// settings for syncing time with timeserver applications
#define TIME_SYNC_SAMPLES 1 // number of time requests for averaging