Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
projects:laura [2022/10/20 07:11]
darron [Software]
projects:laura [2023/09/15 19:01] (current)
darron [STM32]
Line 1: Line 1:
 ====Laura long range radio ==== ====Laura long range radio ====
  
-Laura utilises two [[:interfaces:semtech|LoRa]] radios with one transmitter on an ATMega acting as a sensor and the other as a receiver on a Raspberry Pi running as a processor of the sensor readings. The software has been written to support the 868 MHz EU band only.+Laura utilises [[:interfaces:semtech|LoRa]] radios with at least one transmitter on an ATMega or STM32 acting as a sensor and another as a receiver on a Raspberry Pi running as a processor of the sensor readings. The software has been written to support the 868 MHz EU band only.
  
 This project was designed to monitor the humidity of a remote location and as such has been written to support (initially) one of three humidity sensors boards, namely the DHT11, [[:interfaces:aht10|AHT10]] and SHT3X. This project was designed to monitor the humidity of a remote location and as such has been written to support (initially) one of three humidity sensors boards, namely the DHT11, [[:interfaces:aht10|AHT10]] and SHT3X.
  
-The tranmistter may be either a standard Arduino or [[:boards:rkat28sb|compatible]] else a low power board run from 3 AA cells or equivalent such a [[:boards:moteino|Moteino]] or clone.+The tranmistter can be a standard Arduino or [[:boards:rkat28sb|compatible]] else a low power board run from 3 AA cells or equivalent such a [[:boards:moteino|Moteino]] or clone
 + 
 +A version targeting the STM32 based [[:boards:bl072z|B-L072Z-WRLAN1]] board also exists either powered using libopencm3 or STM32 LL.
  
 The Raspberry Pi has can be any model with a 40 pin header if the recommeneded LoRa board is used. The Raspberry Pi has can be any model with a 40 pin header if the recommeneded LoRa board is used.
Line 75: Line 77:
 43.77% of a common year (365 days) 43.77% of a common year (365 days)
 </code> </code>
 +
 +===STM32===
 +
 +This documentation is work-in-progress, but fully operational code can be found below.
 +
 +==libopencm3 (obsolete)==
 +<code>
 +http://hg.kewl.org/pub/LoRa_stm32/
 +</code>
 +
 +==STM32 LL==
 +<code>
 +http://hg.kewl.org/pub/LoRa_stm/
 +</code>
 +
  
 ===Raspberry Pi=== ===Raspberry Pi===
Line 100: Line 117:
 Along with any sensor reading transmitted (humidity and temperature) the client will also send the current Vcc voltage level of the processor. Along with any sensor reading transmitted (humidity and temperature) the client will also send the current Vcc voltage level of the processor.
  
-Fetch the code+Fetch the code for AVR
  
 <code> <code>
-hg clone http://hg.kewl.org/pub/LoRa_node+hg clone http://hg.kewl.org/pub/LoRa_avr
 </code> </code>
  
Line 109: Line 126:
  
 __Arduino UNO with DHT11__ __Arduino UNO with DHT11__
 +
 +The DHT11 is not an accurate device but is able to measure changes at least.
 +
 <code> <code>
-make -f uno.mk SENSOR=DHT11+make -f Makefile.uno SENSOR=DHT11
 </code> </code>
  
 __Arduino UNO without a sensor__ __Arduino UNO without a sensor__
 +
 +Not using a sensor results in only the MCU Vcc being sent. This can be used
 +for range tests when roaming.
  
 <code> <code>
-make -f uno.mk SENSOR=NONE+make -f Makefile.uno SENSOR=NONE
 </code> </code>
  
 __Arduino MEGA2560 with SHT30__ __Arduino MEGA2560 with SHT30__
 +
 +A more accurate device that has not been test extensively.
 +
 <code> <code>
 make -f mega2560.mk SENSOR=SHT3X make -f mega2560.mk SENSOR=SHT3X
Line 125: Line 151:
  
 __Moteino or generic with AHT10__ __Moteino or generic with AHT10__
 +
 +This device may not share an I2C bus but that is not an issue here. Under
 +test it has been very reliable.
 +
 <code> <code>
 make -f moteino.mk SENSOR=AHT10 make -f moteino.mk SENSOR=AHT10
Line 131: Line 161:
 Program device Program device
 <code> <code>
-make -f uno.mk SENSOR=AHT10 program+make -f Makefile.uno SENSOR=AHT10 program
 </code> </code>
  
Line 140: Line 170:
 </wrap> </wrap>
  
-__Receiver__+__Receive__
  
 The RPi receiver server for Linux listens for messages which are logged and posted to a remote web server for inspection. Later messages will be published to Moquitto MQTT once this component has been written. The RPi receiver server for Linux listens for messages which are logged and posted to a remote web server for inspection. Later messages will be published to Moquitto MQTT once this component has been written.
Line 158: Line 188:
 The service has been written to operate with [[http://smarden.org/runit/|runit]]. The service has been written to operate with [[http://smarden.org/runit/|runit]].
  
-__Web__+__Post__
  
 The htdocs directory contains a PHP MVC application for posted messages. Example configuration if for NGINX (found in the routes subdirectory). The htdocs directory contains a PHP MVC application for posted messages. Example configuration if for NGINX (found in the routes subdirectory).
 +
 +
 +===Schematic===
 +
 +Work in progress AVR schematic.
 +
 +{{:projects:schematic_laura_wip.png?400}}
  
 ===TODO=== ===TODO===
  
-TWI error recovery (not needed in tests).+==Software== 
 + 
 +__Client__
  
-Schematic and PCB layout (stalled).+TWI/I2C error recovery.